PostgresSQL CLI command cheatsheet
|
|
Connect to PostgreSQL database
|
|
Создание юзера
|
|
Права на создание БД
|
|
Создание БД с параметрами локали и кодировки1
По факту команда CREATE DATABASE
выполняет копирование существующей базы данных. По умолчанию копируется стандартная системная база template1
. Таким образом, template1
это шаблон, на основе которого создаются новые базы. Если добавить объекты в template1
, то впоследствии они будут копироваться в новые базы данных. Это позволяет внести изменения в стандартный набор объектов. Например, если в template1
установить процедурный язык PL/Perl
, то он будет доступен в новых базах без дополнительных действий.
Также существует вторая системная база template0
. При инициализации она содержит те же самые объекты, что и template1
, предопределённые в рамках устанавливаемой версии Postgres Pro. Не нужно вносить никаких изменений в template0
после инициализации кластера. Если в команде CREATE DATABASE
указать на необходимость копирования template0
вместо template1
, то на выходе можно получить «чистую» пользовательскую базу данных без изменений, внесённых в template1
. Это удобно, когда производится восстановление из дампа данных с помощью утилиты pg_dump
: скрипт дампа лучше выполнять в чистую базу, во избежание каких-либо конфликтов с объектами, которые могли быть добавлены в template1
.
Другая причина, для копирования template0
вместо template1
заключается в том, что можно указать новые параметры локали и кодировку при копировании template0
, в то время как для копий template1
они не должны меняться. Это связано с тем, что template1
может содержать данные в специфических кодировках и локалях, в отличие от template0
.
|
|
Создание БД
|
|
Экспорт таблицы (столбцов) в .csv
|
|
Экспорт результатов запроса в .csv файл
|
|
\du – список пользователей
\dp (или \z) – список таблиц, представлений, последовательностей, прав доступа к ним
\di – индексы
\ds – последовательности
\dt – список таблиц
\dt+ — список всех таблиц с описанием
\dt s — список всех таблиц, содержащих s в имени
\dv – представления
\dS – системные таблицы
\d+ – описание таблицы
\o – пересылка результатов запроса в файл
\l – список баз данных
\i – читать входящие данные из файла
\e – открывает текущее содержимое буфера запроса в редакторе (если иное не указано в окружении переменной EDITOR, то будет использоваться по умолчанию vi)
\d “table_name” – описание таблицы
\i запуск команды из внешнего файла, например \i /my/directory/my.sql
\pset – команда настройки параметров форматирования
\echo – выводит сообщение
\set – устанавливает значение переменной среды. Без параметров выводит список текущих переменных (\unset – удаляет)
? – справочник psql
\help – справочник SQL
\q (или Ctrl+D) – выход из программы
\timing - Turn on query execution time
Полезное:
Backup/Restore a dockerized PostgreSQL database
Установка и настройка PostgreSQL в Docker