Содержание

Полезная информация по 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)