COLUMNS #
Если \pset columns равно нулю, управляет шириной wrapped формат и ширина для определения того, требуется ли для широкого вывода программа постраничного просмотра или следует ли переключиться на вертикальный формат в автоматическом расширенном режиме.
PGDATABASEPGHOSTPGPORTPGUSER #Параметры соединения по умолчанию (см. Раздел 4.1.15).
PG_COLOR #
Определяет, следует ли использовать цвет в диагностических сообщениях. Допустимые значения: всегда, auto и
never.
PSQL_EDITOREDITORVISUAL #
Редактор, используемый командами \e, \ef,
и \ev командами.
Данные переменные проверяются в указанном порядке;
используется первая установленная переменная.
Если ни одна из них не задана, по умолчанию используется vi
в системах Unix или notepad.exe в системах Windows.
PSQL_EDITOR_LINENUMBER_ARG #
Когда \e, \ef, или
\ev используется
с аргументом номера строки, данная переменная определяет
аргумент командной строки, используемый для передачи начального номера строки
в редактор пользователя. Для таких редакторов, как Emacs или
vi, это знак «плюс». Включите завершающий пробел в значение переменной, если между именем параметра и номером строки требуется пробел. Примеры:
PSQL_EDITOR_LINENUMBER_ARG='+' PSQL_EDITOR_LINENUMBER_ARG='--line '
По умолчанию используется + в системах Unix
(что соответствует редактору по умолчанию vi, и полезно для многих других распространенных редакторов); однако в системах Windows значение по умолчанию отсутствует.
PSQL_HISTORY #
Альтернативное расположение файла истории команд. Выполняется раскрытие тильды (~) expansion is performed.
PSQL_PAGERPAGER #
Если результаты запроса не помещаются на экране, они передаются по конвейеру этой команде. Типичными значениями являются more
или less.
Использование пейджера можно отключить, установив значение PSQL_PAGER
или PAGER равным пустой строке или настроив связанные с пейджером параметры команды \pset .
Данные переменные проверяются в указанном порядке;
используется первая из установленных.
Если ни одна из них не задана, по умолчанию используется more на большинстве
платформ, за исключением less в среде Cygwin.
PSQL_WATCH_PAGER #
При многократном выполнении запроса с помощью команды \watch
, пейджер по умолчанию не используется. Это поведение можно изменить,
установив для переменной PSQL_WATCH_PAGER значение команды пейджера в системах
Unix. Программа pspg pager (не входит в состав
Digital Q.DataBase , но доступна во многих дистрибутивах программного обеспечения с открытым исходным кодом) может выводить результаты
\watch , если запущен с параметром
--stream.
PSQLRC #
Альтернативное расположение пользовательского файла .psqlrc . Тильда (~) expansion is performed.
SHELL #
Команда, выполняемая \! командой.
TMPDIR #
Каталог для хранения временных файлов. По умолчанию используется
/tmp.
Данная утилита, как и большинство других Digital Q.DataBase утилит, также использует переменные окружения, поддерживаемые libpq (см. Раздел 4.1.15).
psqlrc и ~/.psqlrc #
Если не передан -X параметр,
psql выполняется попытка чтения и выполнения команд
из общесистемного файла автозапуска (psqlrc) и затем
личного файла автозапуска пользователя (~/.psqlrc), после
подключения к базе данных, но до начала приема стандартных команд.
Данные файлы могут использоваться для настройки клиента и (или) сервера в соответствии с предпочтениями,
как правило, с помощью \set и SET
команд.
Общесистемный файл автозапуска называется psqlrc. По умолчанию поиск выполняется в каталоге установки «системной конфигурации» установки,
путь к которому наиболее достоверно определяется при запуске pg_config
--sysconfdir.
Обычно этим каталогом является ../etc/
относительно каталога, содержащего Digital Q.DataBase исполняемые файлы. Каталог для поиска можно задать явно через PGSYSCONFDIR environment variable.
Личный файл автозапуска пользователя называется .psqlrc
и поиск этого файла осуществляется в домашнем каталоге пользователя.
В Windows файл личных настроек называется
%APPDATA%\postgresql\psqlrc.conf. В любом случае этот путь к файлу по умолчанию может быть переопределен путем установки PSQLRC environment variable.
Как общесистемный файл запуска, так и личный файл запуска пользователя могут быть привязаны к версии psql-version-specific
путем добавления через дефис Digital Q.DataBase
идентификатора основного или минорного выпуска к имени файла,
например ~/.psqlrc-17 или
~/.psqlrc-17.4.
Файл с наиболее точным соответствием версии будет иметь приоритет при чтении
перед файлом без указания версии.
Данные суффиксы версии добавляются после определения пути к файлу,
как описано выше.
.psql_history #
История командной строки хранится в файле
~/.psql_history, или
%APPDATA%\postgresql\psql_history в ОС Windows.
Расположение файла истории может быть задано явно с помощью
переменной HISTFILE psql переменной или PSQL_HISTORY environment variable.
psql лучше всего работает с серверами той же
или более ранней основной версии. Команды с обратной косой чертой особенно склонны
к сбоям, если версия сервера новее, чем версия psql
самой программы. Тем не менее, команды с обратной косой чертой \d семейства должны
работать с серверами версий вплоть до 9.2, хотя и не обязательно с
серверами новее, чем psql сама программа. Общая
функциональность выполнения SQL-команд и отображения результатов запроса
также должна работать с серверами более новой основной версии, но это не может
быть гарантировано во всех случаях.
Если вы хотите использовать psql для подключения к нескольким серверам различных основных версий, рекомендуется использовать новейшая версия psql. Кроме того, вы можете хранить экземпляр psql каждой основной версии и использовать версию, соответствующую соответствующему серверу. Однако на практике данное дополнительное усложнение не должно потребоваться.
Ранее Digital Q.DataBase 9.6,
параметром -c параметр подразумевал -X
(--no-psqlrc); более это не так.
Ранее Digital Q.DataBase 8.4, psql допускалось начало первого аргумента однобуквенной команды с обратной косой чертой непосредственно после команды, без разделяющего пробела. Теперь наличие пробела является обязательным.
psql собрано как «консольное приложение». Поскольку в окнах консоли Windows используется кодировка, отличная от кодировки остальной части системы, необходимо соблюдать особую осторожность при использовании 8-битных символов в psql. Если psql обнаруживает проблемную кодовую страницу консоли, при запуске выдается предупреждение. Для изменения кодовой страницы консоли необходимо выполнение двух условий:
Установите кодовую страницу, введя cmd.exe /c chcp
1252. (1252 — это кодовая страница, подходящая для немецкого языка; замените ее своим значением.) Если вы используете Cygwin, вы можете поместить эту команду в /etc/profile.
Установите шрифт консоли Lucida Console, так как растровый шрифт не работает с кодовой страницей ANSI.
В первом примере показано, как распределить команду на несколько строк ввода. Обратите внимание на изменение вида приглашения:
testdb=>CREATE TABLE my_table (testdb(>first integer not null default 0,testdb(>second text)testdb->;CREATE TABLE
Теперь снова рассмотрим определение таблицы:
testdb=> \d my_table
Таблица "public.my_table"
Столбец | Тип | Сопоставление | Допустимость NULL | По умолчанию
--------+---------+-----------+----------+---------
first | integer | | not null | 0
second | text | | |
Теперь изменим приглашение на более информативное:
testdb=> \set PROMPT1 '%n@%m %~%R%# '
peter@localhost testdb=>
Предположим, что таблица заполнена данными и их необходимо просмотреть:
peter@localhost testdb=> SELECT * FROM my_table;
first | second
-------+--------
1 | one
2 | two
3 | three
4 | four
(4 строки)
Выводить таблицы можно различными способами, используя
\pset команду:
peter@localhost testdb=>\pset border 2Стиль границ: 2. peter@localhost testdb=>SELECT * FROM my_table;+-------+--------+ | first | second | +-------+--------+ | 1 | one | | 2 | two | | 3 | three | | 4 | four | +-------+--------+ (4 строки) peter@localhost testdb=>\pset border 0Стиль границ: 0. peter@localhost testdb=>SELECT * FROM my_table;first second ----- ------ 1 one 2 two 3 three 4 four (4 строки) peter@localhost testdb=>\pset border 1Стиль границ: 1. peter@localhost testdb=>\pset format csvФормат вывода: csv. peter@localhost testdb=>\pset tuples_onlyВывод только строк включён. peter@localhost testdb=>SELECT second, first FROM my_table;one,1 two,2 three,3 four,4 peter@localhost testdb=>\pset format unalignedФормат вывода — невыровненный. peter@localhost testdb=>\pset fieldsep '\t'Разделитель полей — " ". peter@localhost testdb=>SELECT second, first FROM my_table;one 1 two 2 three 3 four 4
Кроме того, можно использовать сокращённые команды:
peter@localhost testdb=>\a \t \xФормат вывода — выровненный. Режим вывода только кортежей (tuples only) выключен. Расширенный режим вывода (expanded display) включён. peter@localhost testdb=>SELECT * FROM my_table;-[ RECORD 1 ]- first | 1 second | one -[ RECORD 2 ]- first | 2 second | two -[ RECORD 3 ]- first | 3 second | three -[ RECORD 4 ]- first | 4 second | four
Кроме того, эти параметры формата вывода можно установить для одного запроса с помощью
\g:
peter@localhost testdb=>SELECT * FROM my_tablepeter@localhost testdb->\g (format=aligned tuples_only=off expanded=on)-[ RECORD 1 ]- first | 1 second | one -[ RECORD 2 ]- first | 2 second | two -[ RECORD 3 ]- first | 3 second | three -[ RECORD 4 ]- first | 4 second | four
Ниже приведен пример использования \df команды для
поиска только тех функций, имена которых соответствуют шаблону int*pl
и второй аргумент которых имеет тип bigint:
testdb=> \df int*pl * bigint
Список функций
Schema | Name | Result data type | Argument data types | Type
------------+---------+------------------+---------------------+------
pg_catalog | int28pl | bigint | smallint, bigint | func
pg_catalog | int48pl | bigint | integer, bigint | func
pg_catalog | int8pl | bigint | bigint, bigint | func
(3 строки)
При необходимости результаты запроса могут быть представлены в виде сводной таблицы
с помощью команды \crosstabview команду:
testdb=>SELECT first, second, first > 2 AS gt2 FROM my_table;first | second | gt2 -------+--------+----- 1 | one | f 2 | two | f 3 | three | t 4 | four | t (4 строки) testdb=>\crosstabview first secondfirst | one | two | three | four -------+-----+-----+-------+------ 1 | f | | | 2 | | f | | 3 | | | t | 4 | | | | t (4 строки)
В данном втором примере представлена таблица умножения со строками, отсортированными в обратном числовом порядке, и столбцами, имеющими независимый возрастающий числовой порядок.
testdb=>SELECT t1.first as "A", t2.first+100 AS "B", t1.first*(t2.first+100) as "AxB",testdb->row_number() over(order by t2.first) AS ordtestdb->FROM my_table t1 CROSS JOIN my_table t2 ORDER BY 1 DESCtestdb->\crosstabview "A" "B" "AxB" ordA | 101 | 102 | 103 | 104 ---+-----+-----+-----+----- 4 | 404 | 408 | 412 | 416 3 | 303 | 306 | 309 | 312 2 | 202 | 204 | 206 | 208 1 | 101 | 102 | 103 | 104 (4 строки)