Как выполнить SQL запрос в консоли PostgreSQL

Чтобы выполнить SQL в PostgreSQL, запустите консольный клиент psql, подключитесь к базе данных и введите SQL-запрос, завершив его точкой с запятой ;.

Как подключиться к базе

Откройте терминал или командную строку.
Введите команду для входа: psql -U имя_пользователя -d имя_базы
Введите пароль, если система его запросит.

Как выполнять команды

Внутри клиента psql: просто напишите SQL-запрос, например SELECT * FROM users; и нажмите Enter.

Одной строкой из ОС: используйте ключ -c: psql -U имя_пользователя -d имя_базы -c "SELECT * FROM users;"

Из SQL-файла: запустите файл с помощью ключа -f: psql -U имя_пользователя -d имя_базы -f путь_к_файлу.sql

Полезные команды для просмотра структуры

  • \dt — выводит список всех таблиц в текущей базе данных
  • \dt+ — показывает таблицы с дополнительными деталями (размер, описание)
  • \d имя_таблицы — показывает список колонок, их типы и индексы конкретной таблицы
  • \dt схема.* — выводит таблицы из конкретной схемы (по умолчанию отображается схема public)
  • \dn — показывает только пользовательские схемы (скрывает системные)
  • \dn+ — выводит схемы с подробностями (права доступа и описание)
  • \dnS — показывает абсолютно все схемы, включая системные (например, pg_catalog, information_schema)

Альтернативный вариант (через SQL-запрос)

Если вам обязательно нужен SQL-запрос, а не внутренняя команда psql, выполните: SELECT table_name FROM information_schema.tables WHERE table_schema='public';

Если вы хотите получить список схем обычным SQL-запросом, выполните: SELECT schema_name FROM information_schema.schemata;

Чтобы при этом отсечь системные схемы, добавьте фильтр: SELECT schema_name FROM information_schema.schemata WHERE schema_name NOT LIKE 'pg_%' AND schema_name <> 'information_schema';