Практическое применение команды psql

  • Михаил
  • 12 мин. на прочтение
  • 170
  • 23 Feb 2023
  • 23 Feb 2023

psql — это терминальный интерфейс для PostgreSQL . Он позволяет вводить запросы в интерактивном режиме, отправлять их в PostgreSQL и просматривать результаты запросов. В качестве альтернативы ввод может быть из файла или из аргументов командной строки. Кроме того, psql предоставляет ряд метакоманд и различные функции оболочки, облегчающие написание сценариев и автоматизацию широкого круга задач.

Подключиться к базе данных PostgreSQL
Следующая команда подключается к базе данных под определенным пользователем. После нажатия  EnterPostgreSQL запросит пароль пользователя.

psql -d postgres -U  user -W

Например, чтобы подключиться к postgres базе данных под postgres пользователем, вы используете следующую команду:

C:\"Program Files"\PostgreSQL\14\bin\psql -d postgres -U postgres -W
Password for user postgres:
postgres=#

Если вы хотите подключиться к базе данных, которая находится на другом хосте, вы добавляете параметр -h следующим образом:

C:\"Program Files"\PostgreSQL\14\bin\psql -h 10.10.11.18 -d postgres -U postgres -W

Если вы хотите использовать режим SSL для подключения, просто укажите его, как показано в следующей команде:

C:\"Program Files"\PostgreSQL\14\bin\psql -U postgres -h host "dbname=postgres sslmode=require"

 

Переключить подключение к новой базе данных

После подключения к базе данных вы можете переключить подключение на новую базу данных под пользователем, указанным в user.  Предыдущее соединение будет закрыто. Если вы опустите параметр, предполагается user

\c dbname username

Следующая команда подключается к jira базе данных под postgres пользователем:

postgres=# \c jira
You are now connected to database "jira" as user "postgres".
jira=#

 

Список доступных баз данных
Чтобы вывести список всех баз данных на текущем сервере баз данных PostgreSQL, используйте \lкоманду:

\l

 

Список доступных таблиц

Чтобы вывести список всех таблиц в текущей базе данных, используйте \dtкоманду:

\dt

 

Опишите таблицу
Чтобы описать таблицу, такую ​​как столбец, тип, модификаторы столбцов и т. д., вы используете следующую команду:

\d table_name

 

Список доступных схем

Чтобы вывести список всех схем текущей подключенной базы данных, используйте \dnкоманду.

\dn

 

Список доступных функций

Чтобы перечислить доступные функции в текущей базе данных, вы используете  \dfкоманду.

\df

 

Список доступных представлений

Чтобы вывести список доступных представлений в текущей базе данных, используйте  \dv команду.

\dv

 

Список пользователей и их ролей

Чтобы вывести список всех пользователей и назначенных им ролей, используйте \duкоманду:

\du

 

Выполнить предыдущую команду

Чтобы получить текущую версию сервера PostgreSQL, вы используете version()следующую функцию:

SELECT version();

Теперь, если вы хотите сэкономить время, снова вводя предыдущую команду, вы можете использовать \g команду для выполнения предыдущей команды:

\g

psql снова выполняет предыдущую команду, которая является оператором SELECT .

 

История команд
Чтобы отобразить историю команд, вы используете  \s команду.

\s

Если вы хотите сохранить историю команд в файл, вам нужно указать имя файла после команды  \sследующим образом:

\s filename

 

Выполнение команд psql из файла

Если вы хотите выполнять команды psql из файла, используйте \iкоманду следующим образом:

\i filename

 

Получить помощь по командам psql

Чтобы узнать все доступные команды psql, вы используете  \? команду.

\?

Чтобы получить справку по конкретному оператору PostgreSQL, используйте  \h команду.

Например, если вы хотите узнать подробную информацию об операторе ALTER TABLE , вы используете следующую команду:

\h ALTER TABLE

 

Включите время выполнения запроса

Чтобы включить время выполнения запроса, вы используете  \timing команду.

zabbix=# \timing
Timing is on.
zabbix=# select count(*) from functions;

 



Вы используете ту же команду \timing, чтобы отключить его.

zabbix=# \timing
Timing is off.
zabbix=#

 

Отредактируйте команду в своем собственном редакторе

Очень удобно, если вы можете ввести команду в своем любимом редакторе. Чтобы сделать это в psql, вы \eкомандуете. После ввода команды psql откроет текстовый редактор, определенный вашей переменной среды EDITOR, и поместит в редактор самую последнюю команду, введенную вами в psql.

После того, как вы наберете команду в редакторе, сохраните ее и закроете редактор, psql выполнит команду и вернет результат.

Это более полезно, когда вы редактируете функцию в редакторе.

\ef [function name]

Функция редактирования команды psql ef

 

Переключить параметры вывода
psql поддерживает некоторые типы форматов вывода и позволяет на лету настраивать формат вывода.

\a - команда переключается с выровненного на не выровненный вывод столбца.
\H - команда форматирует вывод в формат HTML.
 

Выйти из psql
Чтобы выйти из psql, вы используете \qкоманду и нажмите enterдля выхода из psql.

\q

Из этого руководства вы узнали, как использовать команды psql для выполнения различных часто используемых задач в PostgreSQL.