Гид по технологиям

psql: команды, обзор и практические приёмы

5 min read Базы данных Обновлено 11 Dec 2025
psql: команды и практическое руководство
psql: команды и практическое руководство

Графическое изображение базы данных

psql — это стандартная утилита командной строки для взаимодействия с серверами PostgreSQL. Она совмещает две возможности:

  • выполнить любые SQL-запросы (CREATE, INSERT, SELECT и т.д.);
  • использовать специальные «мета‑команды» psql (начинаются с обратной косой черты) для быстрой инспекции, навигации и выполнения вспомогательных задач.

Важно: термины

  • psql — клиентская программа командной строки. Одним предложением: простой текстовый клиент для работы с PostgreSQL.

Как запустить psql

Если PostgreSQL установлен, запустите psql из терминала командой:

psql

Если вы видите ошибку psql: command not found, PostgreSQL либо не установлен, либо путь к исполняемому файлу не добавлен в переменную PATH. В последнем случае добавьте путь к bin-дереву PostgreSQL в PATH.

Чтобы подключиться к конкретной базе данных, укажите её имя:

psql orders

По умолчанию сервер слушает порт 5432. Если используется нестандартный порт, добавьте опцию -p:

psql -p 1234

Вы также можете указать имя пользователя (-U) и хост (-h):

psql -h db.example.local -U alice -d orders -p 5432

Список баз данных и переключение между ними

После запуска интерактивной оболочки вы увидите приглашение, показывающее текущую базу, например:

postgres=#

Быстрая команда для просмотра всех баз:

\l

Она выводит таблицу с именами баз, владельцами, кодировкой и привилегиями.

Список баз данных в формате таблицы

Чтобы переключиться на другую базу, используйте:

\c postgres

Если вызвать просто \c без аргументов, psql выведет текущую базу и пользователя.

Вывод команды c с указанием текущей базы

Инспекция таблиц и метаданных

Команды для получения информации о таблицах, представлениях и последовательностях:

  • Показать все объекты (таблицы, представления, последовательности):
\d
  • Описать конкретную таблицу (структура, столбцы, индексы):
\d employees
  • Показать только таблицы:
\dt
  • Показать только представления:
\dv

Эти команды выводят данные в удобном табличном текстовом формате.

Информация о структуре базы и таблице

Список таблиц в текущей базе

Пример вывода для представления

Совет: для больших схем используйте фильтры схемы или регулярные выражения в командах psql.

Полезные мета‑команды psql

Ниже — краткая подборка часто используемых команд. Они удобнее для быстрого изучения базы, чем выполнение SQL-запросов к системным каталогам.

  • \? — список всех мета‑команд psql и синопсис.
  • \h — справка по SQL-операторам (например, \h CREATE TABLE).
  • \s — история введённых команд.
  • \e — открыть последний SQL-запрос в редакторе по умолчанию (редактировать длинные запросы).
  • \x — переключить расширенный режим вывода (удобно для широких строк).
  • \timing — показывать время выполнения команд.
  • \set AUTOCOMMIT off/on — управлять автокоммитом в сессии.

Примеры:

\?            -- список мета-команд
\h SELECT     -- справка по оператору SELECT
\x            -- включить/выключить расширенный вывод
\timing       -- показывать время выполнения

Быстрая методология проверки базы (мини-метод)

  1. Подключитесь к серверу безопасным способом (ssh + psql или прямой psql при локальном доступе).
  2. Просмотрите список баз: \l. Выберите целевую базу и переключитесь на неё: \c .
  3. Список таблиц: \dt. Описание структуры важной таблицы: \d .
  4. Включите \timing и выполните ключевые SELECT-запросы для проверки объёма данных и индексов.
  5. Используйте \x при длинных записях, чтобы легче читать вывод.
  6. Закройте сессию командой \q.
  7. Критерии приёмки

    • Удалось подключиться к базе и получить список таблиц.
    • Получено описание структуры ключевых таблиц.
    • Проверена производительность через \timing для одного тестового запроса.

    Шпаргалка: быстрые команды (cheat sheet)

    psql -h host -U user -d dbname       -- подключиться к конкретной базе
    \l                                   -- список баз
    \c dbname                            -- подключиться к dbname
    \d                                   -- список таблиц/представлений/последовательностей
    \dt                                  -- список только таблиц
    \dv                                  -- список только представлений
    \d+ table                            -- подробная информация о таблице (включая размер)
    \i filename.sql                      -- выполнить SQL-скрипт из файла
    \o filename                          -- перенаправить вывод в файл
    \q                                   -- выйти из psql

    Краткое пояснение: команды с обратной косой чертой — это не SQL; их интерпретирует клиент psql.

    Чек‑листы по ролям

    DBA:

    • Убедиться, что сервер работает и слушает ожидаемый порт.
    • Проверить список баз (\l) и владельцев.
    • Описать структуру критичных таблиц (\d+ table).
    • Проверить индексы и планы запросов (EXPLAIN ANALYZE).

    Разработчик:

    • Подключиться к нужной базе (\c dbname).
    • Просмотреть структуру таблицы (\d table) перед изменениями.
    • Использовать \e для редактирования больших SQL-запросов.
    • Запускать миграции через файлы: \i migrations/001_init.sql.

    DevOps/инженер CI:

    • Автоматически запускать psql с параметрами -h -U -d для скриптов в пайплайне.
    • Логировать вывод \o в артефакты сборки.
    • Проверять время выполнения запросов (\timing) в тестах производительности.

    Отладка и распространённые ошибки

    Ошибка: psql: command not found

    • Причина: клиент не установлен или PATH не настроен.
    • Решение: установить пакет postgresql-client или добавить путь к psql в PATH.

    Ошибка аутентификации (FATAL: password authentication failed)

    • Проверьте правильность имени пользователя и пароля, а также настройки pg_hba.conf на сервере.

    Если соединение отклоняется (connection refused)

    • Проверьте, запущен ли сервер PostgreSQL, и слушает ли он нужный интерфейс и порт.

    Если вывод слишком длинный или нечитабелен

    • Включите расширенный вывод (\x) или перенаправьте результаты в файл (\o filename).

    Decision flow: как быстро определить, что нужно делать

    flowchart TD
      A[Начало: не подключены?] -->|нет| B{Есть доступ к psql?}
      A -->|да| C[Запустить psql -h -U -d]
      B -->|да| C
      B -->|нет| D[Установить клиент или настроить PATH]
      C --> E{Какая задача?}
      E -->|Просмотр баз| F[\l]
      E -->|Просмотр таблиц| G[\dt -> \d table]
      E -->|Выполнение скрипта| H[\i script.sql]
      F --> I[Дальше: переключиться \c dbname]
      G --> I
      H --> I
      I --> J[Завершить: \q]

    Короткий словарь

    • Метa‑команда (psql): команда клиента psql, начинающаяся с обратной косой черты (например, \d, \l).
    • Расширенный вывод: режим \x, который форматирует строки вертикально для удобства чтения.
    • EXPLAIN ANALYZE: SQL-команда для получения плана выполнения и реального времени.

    Когда psql не подходит (кратко)

    • Для автоматизированных сценариев часто удобнее использовать libpq/psycopg2/pgx и запускать SQL напрямую из приложения или скрипта.
    • Для графического анализа схемы лучше применять GUI (pgAdmin, DBeaver).

    Итог и рекомендации

    psql — лёгкий и мощный инструмент для интерактивной работы с PostgreSQL: от быстрой инспекции метаданных до прототипирования SQL. Запомните ключевые мета‑команды (\l, \c, \d, \dt, \dv, \?) и используйте \e и \timing при работе с длинными запросами и производительностью. Для автоматизации интегрируйте psql в CI/CD скрипты или переходите на библиотечные драйверы, если требуется программный контроль.

    Важно: всегда тестируйте изменения структуры в средах разработки и используйте контроль версий для скриптов миграции.

    Поделиться: X/Twitter Facebook LinkedIn Telegram
    Автор
    Редакция

    Похожие материалы

    Режим гостя в Chrome и Chromebook: руководство
    Браузеры

    Режим гостя в Chrome и Chromebook: руководство

    Как прикрепить папку к email — ZIP и альтернативы
    Электронная почта

    Как прикрепить папку к email — ZIP и альтернативы

    LimeSurvey: установка и создание опроса
    Инструкции

    LimeSurvey: установка и создание опроса

    Зеркалирование iPhone на ПК по USB
    How-to

    Зеркалирование iPhone на ПК по USB

    Как освежить станции Pandora и управлять Thumbs
    Музыка

    Как освежить станции Pandora и управлять Thumbs

    Как стримить на Twitch с Xbox
    Игры

    Как стримить на Twitch с Xbox