Базовый инструментарий
Использование psql
13
Авторские права
© Postgres Professional, 2015–2022
Авторы: Егор Рогов, Павел Лузанов, Илья Баштанов
Использование материалов курса
Некоммерческое использование материалов курса (презентации,
демонстрации) разрешается без ограничений. Коммерческое
использование возможно только с письменного разрешения компании
Postgres Professional. Запрещается внесение изменений в материалы
курса.
Обратная связь
Отзывы, замечания и предложения направляйте по адресу:
Отказ от ответственности
Компания Postgres Professional не несет никакой ответственности за
любые повреждения и убытки, включая потерю дохода, нанесенные
прямым или непрямым, специальным или случайным использованием
материалов курса. Компания Postgres Professional не предоставляет
каких-либо гарантий на материалы курса. Материалы курса
предоставляются на основе принципа «как есть» и компания Postgres
Professional не обязана предоставлять сопровождение, поддержку,
обновления, расширения и изменения.
2
Темы занятия
Запуск psql и подключение к БД
Получение справочной информации
Работа в psql
Настройка
3
Назначение
Терминальный клиент для работы с PostgreSQL
Поставляется вместе с СУБД
Используется администраторами и разработчиками
для интерактивной работы и выполнения скриптов
Для работы с СУБД PostgreSQL существуют различные сторонние
инструменты, рассмотрение которых не входит в рамки курса.
В курсе мы будем использовать терминальный клиент psql. Этот
клиент может показаться непривычным тем, кто привык работать
с графическими инструментами; тем не менее, он весьма удобен, если
к нему привыкнуть.
Это единственный клиент, поставляемый вместе с СУБД. Навыки
работы c psql пригодятся разработчикам и администраторам БД вне
зависимости от того, с каким инструментом они будут работать дальше.
4
Подключение
Запуск
$ psql -d база -U пользователь -h узел -p порт
Новое подключение в psql
=> \c[onnect] база пользователь узел порт
Информация о текущем подключении
=> \conninfo
При запуске psql нужно указать параметры подключения.
К обязательным параметрам подключения относятся: имя базы данных,
имя пользователя, имя сервера, номер порта. Если эти параметры не
указаны, psql попробует подключиться, используя значения по
умолчанию:
база — совпадает с именем пользователя;
пользовательсовпадает с именем пользователя ОС;
узел — локальное соединение;
портобычно 5432.
Если требуется выполнить новое подключение не выходя из psql, нужно
выполнить команду \connect.
Команда \conninfo выдает информацию о текущем подключении.
Дополнительная информация о возможностях настройки подключения:
5
Получение справки
В командной строке ОС
$ psql --help
$ man psql
В psql
=> \? список команд psql
=> \? variables переменные psql
=> \h[elp] список команд SQL
=> \h команда синтаксис команды SQL
=> \q выход
Справочную информацию по psql можно получить не только
в документации, но и прямо в системе.
psql с ключом --help выдает справку по запуску. А если в системе
была установлена документация, то справочное руководство можно
получить командой man psql.
psql умеет выполнять команды SQL и свои собственные команды.
Внутри psql есть возможность получить список и краткое описание
команд psql. Все команды psql начинаются с обратной косой черты.
Команда \help выдает список команд SQL, которые поддерживает
сервер, а также синтаксис конкретной команды SQL.
И еще одна команда, которую полезно знать, хоть она и не имеет
отношения к справке: это \q — выход из psql. В качестве альтернативы
для выхода можно также использовать команды exit и quit.
7
Итоги
psql — терминальный клиент для работы с СУБД
При запуске требуются параметры подключения
Выполняет команды SQL и psql
Содержит инструменты для интерактивной работы, а также
для подготовки и выполнения скриптов
8
Практика
1. Запустите psql и проверьте информацию о текущем
подключении.
2. Выведите все строки таблицы pg_tables.
3. Установите команду «less -XS» для постраничного
просмотра и еще раз выведите все строки pg_tables.
4. Приглашение по умолчанию показывает имя базы данных.
Настройте приглашение так, чтобы дополнительно
выводилась информация о пользователе: роль@база=#
5. Настройте psql так, чтобы для всех команд выводилась
длительность выполнения. Убедитесь, что при повторном
запуске эта настройка сохраняется.
1. При запуске psql можно не указывать параметры подключения, будут
действовать значения по умолчанию.
3. Настройку переменной окружения PSQL_PAGER можно сделать в
файле .psqlrc. Используйте команду \setenv, чтобы установить
переменную окружения ОС. Это позволит использовать значение «less -
XS» только при работе в psql. Для всех остальных команд ОС будут
использоваться настройки в ОС (например, из .profile).
4. Описание настройки приглашения в документации:
5. Команду psql для вывода длительности выполнения запросов можно
найти в документации или с помощью команды \?.
9
Практика+
1. Откройте транзакцию и выполните команду, которая
завершается любой ошибкой. Убедитесь, что продолжить
работу в этой транзакции невозможно.
2. Установите переменной ON_ERROR_ROLLBACK значение
on и убедитесь, что после ошибки можно продолжать
выполнять команды внутри транзакции.
1. Для открытия транзакции выполните команду
BEGIN;
2. Установка переменной ON_ERROR_ROLLBACK заставляет psql
устанавливать точку сохранения (SAVEPOINT) перед каждой командой
SQL в открытой транзакции и в случае ошибки откатываться к этой
точке сохранения.