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