====== Полезная информация по Postgres SQL ======
===== Соеденение c БД =====
Управлять Postgres можно через утилку psql запускается она так
Для локалки : sudo -u postgres psql --cluster=9.5/main --dbname=БАЗА
Для удаленки : psql --host=127.0.0.1 --port=5432 --user=ПОЛЬЗОВАТЕЛЬ --password --dbname=БАЗА
===== Пользователи и Роли PGSQL =====
-- Список пользователей
\du
-- Создать пользователя с паролем
CREATE ROLE "ПОЛЬЗОВАТЕЛЬ" WITH PASSWORD 'ПАРОЛЬ';
-- Разрешить ему логиниться
ALTER ROLE "ПОЛЬЗОВАТЕЛЬ" WITH LOGIN;
-- Сделать его суперпольователем
ALTER ROLE "ПОЛЬЗОВАТЕЛЬ" WITH SUPERUSER;
-- Удалить пользователя
DROP ROLE "ПОЛЬЗОВАТЕЛЬ"
===== Раздача прав пользователям ======
-- Разрешить пользователю заходить в Базу
GRANT ALL ON DATABASE ИМЯБАЗЫ TO ПОЛЬЗОВАТЕЛЬ;
-- Отобрать права у пользователя
REVOKE ALL PRIVILEGES ON DATABASE ИМЯБАЗЫ FROM ПОЛЬЗОВАТЕЛЬ;
===== Базы данных ======
-- Посмотреть список баз
\l
-- Сменить Базу
\c ИМЯБАЗЫ
-- Создать базу данных
CREATE DATABASE ИМЯБАЗЫ;
===== Индексы =====
-- Посмотреть список всех индексов
SELECT tablename, indexname, indexdef FROM pg_indexes WHERE schemaname = 'public' ORDER BY tablename, indexname
-- Создать первичный ключ
ALTER TABLE таблица ADD PRIMARY KEY (id)
-- Создать обычный BTREE ключ
CREATE INDEX ON таблица (id) USING BTREE
-- Создать уникальный lowercase индекс
CREATE UNIQUE INDEX users_username_lower ON users ((lower(username)));
===== Битовые операции =====
-- Где содержит бит 1
WHERE "flags" | 1 = "flags"
-- Где не сожержит бит 2
WHERE "flags" | 2 != "flags"
-- Установить 1й бит
SET "flags" = "flags" & 1
-- Снять 2й бит
SET "flags" = "flags" & ~(2)