Мы собрали список удобных команд и запросов PostgreSQL при работе с базами данных PostgreSQL. Пишите нам @ForestAdmin, если хотите что-то добавить в шпаргалку!

Начало работы с PostgreSQL

Войдите в систему и введите утилиту командной строки PostgreSQL psql

$ sudo su - postgres psql

Список баз данных postgres

\l

Подключиться к базе данных postgres

\c databaseName

Выход из утилиты командной строки postgreSQL psql

\q

Управление PostgreSQL

Проверить версию PostgreSQL

SELECT version();

Проверьте, установлен ли PostgreSQL

$ which psql

Проверьте, запущен ли PostgreSQL.

$ pgrep -fa -- -D | grep postgres

Перезапустите PostgreSQL в Linux.

# systemctl restart postgresql
// or
# service postgresql restart
// or
# /etc/init.d/postgresql restart
// or
# /sbin/service postgresql restart

Перезапустите PostgreSQL в OSX.

# brew services restart postgres
// or
# pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log restart

Перезапустите PostgreSQL в Windows.

Winkey + R
Type "services.msc"
Click "restart"

Изменить пароль пользователя PostgreSQL

$ sudo -u postgres psql
\password postgres

Выход из psql

\q

Взаимодействие с базами данных в PostgreSQL

Список баз данных postgres

\l

Подключиться или переключиться на базу данных postgres

\c databaseName

Создать новую базу данных postgres

CREATE DATABASE databaseName

Удалить базу данных постгрес

DROP DATABASE databaseName

Переименовать базу данных postgres

ALTER DATABASE old_databaseName TO new_databaseName

Запросить данные postgres в формате JSON

SELECT *
FROM mytable
WHERE myfield @> '{"key1":"valueA"}'

Взаимодействие с таблицами в PostgreSQL

Список таблиц postgres

\dt

Описать таблицу postgres

\d tableName

Создать таблицу постгрес

CREATE TABLE tableName(	
	columnName columnType,
	columnName columnType
);

Удалить таблицу постгрес

DROP TABLE tableName CASCADE

Резервное копирование и восстановление базы данных PostgreSQL

Резервное копирование базы данных postgres

$ pg_dump -d databaseName -U userName > backupFile

Восстановить базу данных postgres

psql databaseName < backupFile

Управление ролями и разрешениями в PostgreSQL

Список ролей postgres

SELECT rolname FROM pg_roles;

Создать пользователя постгрес

CREATE USER userName WITH PASSWORD 'userPassword';

Удалить пользователя постгрес

DROP USER userName;

Изменить пароль пользователя postgres

ALTER ROLE userName WITH PASSWORD 'userPassword';

Список всех назначенных ролей postgres

SELECT
	r.rolname,
	r.rolsuper,
	r.rolinherit,
	r.rolcreaterole,
	r.rolcreatedb,
	r.rolcanlogin,
	r.rolconnlimit,
	r.rolvaliduntil,
	ARRAY(SELECT b.rolname
		FROM pg_catalog.pg_auth_members m
		JOIN pg_catalog.pg_roles b ON (m.roleid = b.oid)
		WHERE m.member = r.oid) as memberof,
	r.rolreplication
FROM pg_catalog.pg_roles r
ORDER BY 1;

Предоставьте все разрешения для базы данных postgres

GRANT ALL PRIVILEGES ON DATABASE databaseName TO userName;

Предоставить разрешения на подключение к базе данных postgres

GRANT CONNECT ON DATABASE databaseName TO userName;

Список разрешений для определенной роли postgres

SELECT table_catalog, table_schema, table_name, privilege_type
FROM   information_schema.table_privileges
WHERE  grantee = userName ORDER BY table_name;

Обзор команд psql для ProstgreSQL

\?

Список всех доступных команд psql

\ч КОМАНДА

Получить помощь по конкретной команде

\l

Список баз данных

\c имя_базы_данных

Подключиться к базе данных

\dt

Список таблиц

\d имя_таблицы

Описать таблицу

\d+ имя_таблицы

Опишите таблицу с деталями

\dn

Список схем

\df

Список функций

\dv

Представления списка

\du

Список пользователей

\dy

Список событий

\di

Список индексов

\q

Выход

Нужно создать панели администратора или инструмент с графическим интерфейсом для PostgreSQL? Познакомьтесь с администратором леса для PostgreSQL