Программы
Полезные, но неочевидные команды PostgreSQL

Полезные, но неочевидные команды PostgreSQL

Часто новичку в PostgreSQL сложно просто от того, что многие команды, к которым он привык в других СУРБД называются по-другому, и вообще выглядят странно

Для тех, кто переходит с MySQL / MariaDB на PostgreSQL часто неочевидно, как можно банально посмотреть имеющиеся базы данных, таблицы и поля таблиц.

Речь тут идёт не о различии HeidiSQL и PgAdmin, а о работе в командной строке, то есть mysql и psql.

Довольно просто в psql подключиться к нужному хосту, под нужным пользователем:

psql -U {{ user }} -d {{ dbname }} -h {{ host }}

А вот USE {{ dbname }} для смены базы данных уже не прокатит. Смена базы данных в Postgres делается с помощью команды \c (connect):

\c {{ dbname }}

Аналог SHOW DATABASES для PostgreSQL – \l (list):

\l

Если же мы хотим посмотреть список таблиц в базе данных, то вместо SHOW TABLES пишем \dt (display tables):

\dt

Структуру таблицы мы смотрим не через DESCRIBE {{ table }}, а через \d:

\d {{ table }}

– что важно, тут же будут показаны созданные для таблицы индексы и внешние ключи.

Реже используемые:

  • \du - список всех пользователей и их привилегий.
  • \dt+ - список всех таблиц с описанием.
  • \dt *s* - список всех таблиц, содержащих s в имени.
  • \i {{ file }} - выполнить команды из файла.
  • \o {{ file }} - сохранить результат запроса в файл.
  • \a - переключение между режимами выравнивания.

Ну и самое важное – выйти из psql можно с помощью отправки символа окончания ввода (EOF) – через Ctrl+D, или же командой \q.

Изображение Шпаргалка по командам Linux, FreeBSD и MacOS