Добавить в корзинуПозвонить
Найти в Дзене

10 psql команд, которые облегчат вашу жизнь

psql поставляется со многими встроенными мета-командами, которые могут облегчить вашу жизнь, но только если вы знаете о них. Мета-команда - это все, что вы запускаете в psql, начинающееся с обратной косой черты (на самом деле, их часто называют командами с косой чертой), обычно либо выполняющее серию SQL-команд за кулисами, либо изменяющее способ psql отображения выходных данных. Давайте рассмотрим 10 моих самых часто используемых мета-команд. \d Описание отношений Мета-команда \d psql отображает список связей (таблиц, представлений или последовательностей), которые ваш текущий сеанс может видеть в базе данных. На самом деле существует множество более специфичных вариантов этой команды, с \dt простым отображением таблиц, \di отображением индексов, \du отображением ролей и \dn отображением схем. По какой-то странной причине databases - это \l (возможно, как \db уже было взято для табличных пространств). В качестве дополнительного бонуса вы можете использовать команду \d+, которая также
Оглавление

psql поставляется со многими встроенными мета-командами, которые могут облегчить вашу жизнь, но только если вы знаете о них. Мета-команда - это все, что вы запускаете в psql, начинающееся с обратной косой черты (на самом деле, их часто называют командами с косой чертой), обычно либо выполняющее серию SQL-команд за кулисами, либо изменяющее способ psql отображения выходных данных.

Давайте рассмотрим 10 моих самых часто используемых мета-команд.

\d Описание отношений

Мета-команда \d psql отображает список связей (таблиц, представлений или последовательностей), которые ваш текущий сеанс может видеть в базе данных.

-2

На самом деле существует множество более специфичных вариантов этой команды, с \dt простым отображением таблиц, \di отображением индексов, \du отображением ролей и \dn отображением схем. По какой-то странной причине databases - это \l (возможно, как \db уже было взято для табличных пространств).

В качестве дополнительного бонуса вы можете использовать команду \d+, которая также покажет вам размер для каждой таблицы (\l+ также отличная команда для отображения размера каждой базы данных).

\d table Описание отношений

Эта команда покажет вам подробную информацию об отдельном отношении (таблице, представлении, последовательности или индексе). Сюда входят столбцы, первичные ключи и индексы для таблицы.

-3

\e Редактировать буфер запросов

Каждый раз, когда вы запускаете запрос в psql, он попадает в ваш буфер запросов. При использовании команды \e открывается ваш редактор по умолчанию ($EDITOR в Linux) с загруженным буфером запросов. Вы можете отредактировать запрос, затем сохранить и завершить его выполнение.

Это единственный выход, когда вы работаете над длинными запросами!

\ef function Редактировать функцию

Аналогично предыдущей команде, эта команда откроет редактор, но загрузит определение функции, которую вы передаете. При сохранении и выходе будет запущен SQL (не забудьте включить CREATE OR REPLACE, если вы хотите обновить функцию).

\x Переключить Расширенный вывод

Эта psql мета-команда переключает результаты запроса с отображения столбцов по экрану на отображение блока для каждой строки с вертикальным расположением столбцов.

-4

Когда вы получаете данные из большой таблицы или таблицы с длинным столбцом (возможно, геопространственные данные, JSON или текст), это бесценно.

\timing Переключить команду timing

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

-5

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

\c database Подключаться к базе данных

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

\copy Выполнить копирование

В PostgreSQL есть команда COPY для массовой загрузки или экспорта данных, но есть одно предостережение: она выполняется на стороне сервера, и вы часто не можете получить CSV-файлы на свой сервер базы данных (особенно в облаке). \copy это почти полный клон, который работает на стороне клиента, поэтому у него есть доступ к файлам на компьютере, с которого вы запускались psql.

Опять же, остерегайтесь времени отключения от сети. Если вы пытаетесь загрузить CSV-файл размером 2 ГБ и используете коммутируемое соединение, у вас будут плохие времена.

\i file Считывает SQL-команды из файла

Используйте \i если у вас есть несколько команд SQL (любого типа!) вы хотите запускать из psql. Вы можете указать на файл, а не копировать и вставлять. Они будут выполняться одна за другой; ошибки будут видны, но это не остановит выполнение всех команд.

\? Шпаргалка по мета-командам PSQL!

\? покажет вам все доступные мета-команды, что очень удачно, потому что мы здесь о многом не упомянули. Удачной охоты!

Следующий шаг

Итак, вот 10 psql мета-команд, которые облегчат вам жизнь. Если

вам нужны дополнительные быстрые советы, ознакомьтесь со шпаргалкой по взаимодействию с вашей базой данных PostgreSQL.