Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия | |||
— | dopolnitelnye_vozmozhnosti_klienta_psql [2025/07/06 12:38] (текущий) – внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Дополнительные возможности клиента psql ====== | ||
+ | |||
+ | ~~Title: psql интерактивный терминал PostgreSQL ~~ | ||
+ | {{htmlmetatags> | ||
+ | metatag-description=(Использование psql интерактивный терминал PostgreSQL. Ключи psql, примеры использования.) | ||
+ | }} | ||
+ | |||
+ | **psql** (PostgreSQL interactive terminal) — интерактивный терминал PostgreSQL. | ||
+ | |||
+ | Программа psql — это терминальный клиент для работы с [[PostgreSQL]]. Она позволяет интерактивно вводить запросы, | ||
+ | |||
+ | * [[pgAdmin]] - графический клиент для работы с PostgreSQL. | ||
+ | * [[phpPgAdmin]] позволяет через браузер осуществлять администрирование сервера PostgreSQL, запускать команды SQL и просматривать содержимое таблиц и баз данных. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ===== Параметры командной строки ===== | ||
+ | |||
+ | Все параметры соединения psql записываются следующим образом: | ||
+ | psql -h hostname -p 5432 -d dbname -U username -W | ||
+ | </ | ||
+ | Полная команда запуска psql имеет следующий синтаксис:< | ||
+ | psql [OPTION]... [DBNAME [USERNAME]] | ||
+ | </ | ||
+ | |||
+ | Необязательный параметр DBNAME определяет базу данных, | ||
+ | |||
+ | В командной строке также могут задаваться дополнительные ключи. По умолчанию psql поддерживает как стандартные короткие ключи в стиле Unix (например, | ||
+ | < | ||
+ | # psql --help | ||
+ | psql is the PostgreSQL interactive terminal. | ||
+ | |||
+ | Usage: | ||
+ | psql [OPTION]... [DBNAME [USERNAME]] | ||
+ | |||
+ | General options: | ||
+ | -c, --command=COMMAND | ||
+ | -d, --dbname=DBNAME | ||
+ | -f, --file=FILENAME | ||
+ | -l, --list | ||
+ | -v, --set=, --variable=NAME=VALUE | ||
+ | set psql variable NAME to VALUE | ||
+ | -X, --no-psqlrc | ||
+ | -1 (" | ||
+ | | ||
+ | --help | ||
+ | --version | ||
+ | |||
+ | Input and output options: | ||
+ | -a, --echo-all | ||
+ | -e, --echo-queries | ||
+ | -E, --echo-hidden | ||
+ | -L, --log-file=FILENAME | ||
+ | -n, --no-readline | ||
+ | -o, --output=FILENAME | ||
+ | -q, --quiet | ||
+ | -s, --single-step | ||
+ | -S, --single-line | ||
+ | |||
+ | Output format options: | ||
+ | -A, --no-align | ||
+ | -F, --field-separator=STRING | ||
+ | set field separator (default: " | ||
+ | -H, --html | ||
+ | -P, --pset=VAR[=ARG] | ||
+ | -R, --record-separator=STRING | ||
+ | set record separator (default: newline) | ||
+ | -t, --tuples-only | ||
+ | -T, --table-attr=TEXT | ||
+ | -x, --expanded | ||
+ | |||
+ | Connection options: | ||
+ | -h, --host=HOSTNAME | ||
+ | -p, --port=PORT | ||
+ | -U, --username=USERNAME | ||
+ | -w, --no-password | ||
+ | -W, --password | ||
+ | |||
+ | For more information, | ||
+ | commands) from within psql, or consult the psql section in the PostgreSQL | ||
+ | documentation. | ||
+ | |||
+ | Report bugs to < | ||
+ | </ | ||
+ | |||
+ | * **Общие параметры(General options):** | ||
+ | * -c, --command=COMMAND Вместо запуска в интерактивном режиме psql выполняет всего одну команду. Команда должна иметь правильный синтаксис [[SQL]], причем в ней не могут использоваться специфические команды psql. Например:< | ||
+ | psql -U postgres -d mydb --command=" | ||
+ | VALUES (' | ||
+ | </ | ||
+ | * -d, --dbname=DBNAME База данных, | ||
+ | * -f, --file=FILENAME Вместо запуска в интерактивном режиме psql читает код SQL из файла с заданным именем и выполняет его так, как если бы он был введен непосредственно в командной строке. После обработки файла psql завершает работу. Например:< | ||
+ | # sudo -u postgres psql -d mbillcz5054 -f / | ||
+ | BEGIN | ||
+ | DELETE 636 | ||
+ | DELETE 1 | ||
+ | COMMIT | ||
+ | </ | ||
+ | * -l, --list Вывод списка баз данных, | ||
+ | # psql -U postgres -l | ||
+ | </ | ||
+ | * -v, --set=, --variable=NAME=VALUE | ||
+ | * -X, --no-psqlrc | ||
+ | * -1 (" | ||
+ | |||
+ | * **Входные и выходные параметры(Input and output options):** | ||
+ | * -a, --echo-all | ||
+ | * -e, --echo-queries | ||
+ | * -E, --echo-hidden укажет psql выводить текст [[SQL]] запроса для выполнения заданных вами команд, | ||
+ | * -a, --echo-all. Включение режима полного вывода эха для всех строк, полученных psql. Ключ обычно используется при написании сценариев и эквивалентен команде \set ECHO all клиента psql. | ||
+ | * -e, --echo-queries. Включение режима вывода эха для запросов. | ||
+ | * -A, --no-align. Клиент psql выводит результаты без выравнивания. Если ключ не задан, по умолчанию выбирается режим вывода с выравниванием. | ||
+ | * -F, --field-separator=STRING. Заданный символ используется psql в качестве разделителя нолей. По умолчанию используется символ " | ||
+ | - h хост, - - host хост. Имя компьютера, | ||
+ | * -H, -html. Запуск psql в режиме вывода в формате HTML. | ||
+ | * -Т атрибут, | ||
+ | * -о файл, -output файл. Выходные данные psql направляются в заданный файл. | ||
+ | * -р порт, -port порт. Порт TCP/IP (или числовой доменный сокет Unix), на котором в данный момент ведется прослушивание. Совпадает со значением переменной PGPORT (по умолчанию — 5432). | ||
+ | * -Р имя=значение, | ||
+ | * -q, --quiet. Режим минимального вывода, | ||
+ | * -R разделитель, | ||
+ | * -s, --single-step. Пошаговый режим работы. После выполнения команды SQL пользователю предлагается продолжить или завершить работу. | ||
+ | * -S, --single-line. Строчный режим работы. В этом режиме символ новой строки интерпретируется как символ точки с запятой (;), завершающий команду SQL. | ||
+ | * -t, --tuples-only. Подавление вывода дополнительных данных (например, | ||
+ | * -U пользователь, | ||
+ | * -v имя=значение, | ||
+ | * -V, - -version. Вывод информации о версии. | ||
+ | * -w, --no-password | ||
+ | * -W, --password. Запрос пароля перед подключением к базе данных. Введенный пароль продолжает действовать в течение всего сеанса psql. | ||
+ | * -x, --expanded. Расширенный режим форматирования записей. Активизируется в psql командой \х. | ||
+ | * -?, - -help. Вывод краткой справки по аргументам командной строки psql. | ||
+ | |||
+ | ====== Управляющие команды psql ====== | ||
+ | В psql существуют особые команды, | ||
+ | |||
+ | |||
+ | * **Вывод информации о PostgreSQL и psql**. | ||
+ | В psql существует небольшая группа команд, | ||
+ | < | ||
+ | postgres=# help | ||
+ | You are using psql, the command-line interface to PostgreSQL.</ | ||
+ | * \copyright Команда выводит информацию об авторских правах на PostgreSQL. | ||
+ | * \h или \help Общая команда получения справочной информации SQL. При вызове без аргумента выводится список всех команд, | ||
+ | * \? Команда выводит список управляющих команд psql, описанных ниже. | ||
+ | * \g or terminate with semicolon to execute query | ||
+ | * \q (или комбинация клавиш Ctrl+D) Выйти из PostgreSQL | ||
+ | |||
+ | ===== Системные команды : PostgreSQL как выбрать базу данных ===== | ||
+ | |||
+ | Следующая группа команд относится к общесистемным функциям psql — подключению к другой базе данных, | ||
+ | * \c[onnect] [DBNAME|- USER|- HOST|- PORT|-] Смена текущей базы данных. Аргументы команды определяют базу данных и имя пользователя, | ||
+ | <file sql> | ||
+ | postgres=# \c testdb; | ||
+ | </ | ||
+ | * \encoding [ENCODING] | ||
+ | * \password [USERNAME] | ||
+ | |||
+ | * **Команды ввода-вывода**. | ||
+ | |||
+ | Команды ввода-вывода psql предназначены для импортирования и экспортирования данных, | ||
+ | * \р. Вывод текущего содержимого буфера psql (история запросов). Если с момента выполнения последней команды новые данные не поступали, | ||
+ | |||
+ | |||
+ | \edit [ файл ]. Запуск внешнего редактора, | ||
+ | |||
+ | \set [ переменная [ значение ] ]. Присваивание значений переменным среды. При вызове без аргументов команда выводит список всех текущих значений переменных среды, а при вызове с аргументами заданной переменной присваивается новое значение. При передаче нескольких значений переменной присваивается результат их конкатенации. | ||
+ | \unset переменная. Сброс, то есть удаление из памяти, | ||
+ | \! [ команда ]. Выполнение внешних команд. При вызове без аргументов запускается сеанс командного интерпретатора, | ||
+ | |||
+ | ====== Команды форматирования ====== | ||
+ | |||
+ | * **Команды форматирования** | ||
+ | Команды \pset, \а, \С, \f, \H, \t, \T и \х управляют форматированием выходных данных. Каждая команда (за исключением \pset) управляет отдельным аспектом форматирования. Команда \pset, появившаяся позже других, | ||
+ | < | ||
+ | Основная команда настройки параметров форматирования, | ||
+ | * \pset format [значение]. Устанавливает формат вывода aligned, unaligned, html или latex. По умолчанию используется вывод с выравниванием (aligned), самый наглядный из всех вариантов. При сплошном выводе (unaligned) все данные выводятся в одной строке и разделяются текущим символом-разделителем. В режимах html и latex данные выводятся в виде таблиц, | ||
+ | * \pset border. Изменяет толщину рамки таблиц в зависимости от выбранного формата вывода. Например, | ||
+ | * \pset expanded. Переключение между обычным и расширенным форматами вывода. Если у вас возникают проблемы с выводом данных на экран (например, | ||
+ | * \pset null. Параметр задает строку, | ||
+ | \pset null ' ***null*** ' | ||
+ | </ | ||
+ | * \pset fieldsep. Параметр задает символ, | ||
+ | * \pset recordsep. Разделитель записей в режиме сплошного вывода. По умолчанию используется символ новой строки (\п). | ||
+ | * \pset tuples_only. Параметр указывает, | ||
+ | * \pset title. Параметр задает заголовок — строку, | ||
+ | * \pset tab! eattr. Используется в режиме форматирования HTML для определения атрибутов тега < | ||
+ | * \pset pager. Параметр разрешает или запрещает использование программы постраничного вывода содержимого таблиц. Если вы хотите использовать вместо тоге другую программу постраничного вывода (например, | ||
+ | * \а. Переключение между режимом вывода с выравниванием и сплошным выводом. Эквивалент последовательного выполнения команд \pset format al igned и \pset format unaligned. | ||
+ | * \С. Заголовок запроса, | ||
+ | * \f. Разделитель полей, используемый в режиме сплошного вывода. Эквивалент команды \pset fieldsep. | ||
+ | * \Н. Переключение между выводом в формате HTML и стандартным режимом вывода с выравниванием. Эквивалент последовательного выполнения команд \pset format HTML и \pset format aligned. | ||
+ | * \t. Признак вывода дополнительной информации таблиц. Эквивалент команды \pset tuples_only. | ||
+ | * \Т. Дополнительные атрибуты таблиц, | ||
+ | * \х. Переключение режима расширенного вывода. Эквивалент команды \pset expanded. | ||
+ | ====== Команды вывода информации о БД и объектах ====== | ||
+ | **Команды вывода информации о базе данных и различных объектах внутри нее.** | ||
+ | |||
+ | Большинство этих команд снабжается префиксом \d (от слова " | ||
+ | |||
+ | Дополнительные опции: S = show system objects, + = additional detail) | ||
+ | |||
+ | < | ||
+ | \d[S+] | ||
+ | \da[+] | ||
+ | \db[+] | ||
+ | \dc[S] | ||
+ | \dC | ||
+ | \dd[S] | ||
+ | \dD[S] | ||
+ | \des[+] [PATTERN] | ||
+ | \deu[+] [PATTERN] | ||
+ | \dew[+] [PATTERN] | ||
+ | \df[antw][S+] [PATRN] | ||
+ | \dF[+] | ||
+ | \dFd[+] [PATTERN] | ||
+ | \dFp[+] [PATTERN] | ||
+ | \dFt[+] [PATTERN] | ||
+ | \dg[+] | ||
+ | \di[S+] [PATTERN] | ||
+ | \dl list large objects, same as \lo_list | ||
+ | \dn[+] | ||
+ | \do[S] | ||
+ | \dp | ||
+ | \ds[S+] [PATTERN] | ||
+ | \dt[S+] [PATTERN] | ||
+ | \dT[S+] [PATTERN] | ||
+ | \du[+] | ||
+ | \dv[S+] [PATTERN] | ||
+ | \z [PATTERN] | ||
+ | </ | ||
+ | * \d[S+] вывести все таблицы (list tables, views, and sequences) | ||
+ | * \l[+] вывести все базы данных | ||
+ | * \d [ имя_отношения ]. Общая команда для получения различных сведений о заданном отношении — индексе, | ||
+ | * \da [ агрегатная_фупкция ]. Команда выводит список агрегатных функций текущей базы данных и поддерживаемые ими типы данных. Если команда вызывается с параметром, | ||
+ | * \dd [ имя ]. Общая команда для получения информации об объектах базы данных. Параметр может быть именем любой агрегатной или обычной функции, | ||
+ | * \df [ имя_фунщии ]. Команда выводит информацию о функции, | ||
+ | * \d[istvS] [ имя ]. Общая команда вывода информации об отношениях с возможностью уточнения. Символы в квадратных скобках имеют следующий смысл: | ||
+ | * i — индексы; | ||
+ | * s — последовательности; | ||
+ | * t — таблицы; | ||
+ | * v — представления; | ||
+ | * S — системные таблицы. | ||
+ | * \dl. Команда выводит информацию о больших объектах текущей базы данных; | ||
+ | * \do [ имя_оператора ]. Команда выводит список всех операторов, | ||
+ | * \dp [ имя_объекта ]. Команда выводит список всех объектов текущей базы данных (или объектов, | ||
+ | * \dT [ имя_типа ]. Команда выводит список всех доступных типов данных. Можно задать полное или частичное имя типа или получить информацию обо всех доступных типах. | ||
+ | * \l[+] Команда выводит список всех баз данных на сервере с информацией о владельцах и типе расширенной кодировке. | ||
+ | * \lo_list. Команда выводит список всех больших объектов текущей базы данных с комментариями. | ||
+ | * \z [ имя_объекта ]. Команда выводит информацию о правах доступа; | ||
+ | ====== Загрузка запросов из внешних файлов ====== | ||
+ | Кроме непосредственного ввода запросов в приглашении, | ||
+ | Пусть файл содержащий SQL запрос называется 1.sql и содержит в себе запрос< | ||
+ | select * from pg_shadow; | ||
+ | </ | ||
+ | |||
+ | * Пример. Загрузка файла в текущий буфер psql< | ||
+ | postgres-# \set ECHO all | ||
+ | postgres-# | \i / | ||
+ | select * from pg_shadow; | ||
+ | | ||
+ | ----------+----------+-------------+----------+-----------+---------+-------------------------------------+----------+----------- | ||
+ | | ||
+ | | ||
+ | (2 rows) | ||
+ | </ | ||
+ | ====== Библиотеки readline и history ====== | ||
+ | Клиент psql обладает некоторыми возможностями режима командной строки, | ||
+ | |||
+ | Если конфигурационный сценарий находит в системе библиотеку readline, то поддержка обратного поиска, | ||
+ | |||
+ | ====== Работа с переменными ====== | ||
+ | Клиент psql также позволяет работать с переменными. **Команда \set** создает и модифицирует переменные, | ||
+ | |||
+ | < | ||
+ | |||
+ | Новое значение переменной задается командой \set, за которой указываются имя и значение, | ||
+ | |||
+ | * Присваивание значения переменной.< | ||
+ | testdb=# \set myvariable 'There are many like it. but this one is mine.' | ||
+ | </ | ||
+ | testdb-# \set | ||
+ | VERSION = ' | ||
+ | DBNAME = ' | ||
+ | USER = ' | ||
+ | PORT = ' | ||
+ | ENCODING = ' | ||
+ | PROMPT1 = ' | ||
+ | PROMPT2 = ' | ||
+ | PROMPTS = '» ' | ||
+ | HISTSIZE = ' | ||
+ | myvariable = 'There are many like it. but this one is mine.' | ||
+ | </ | ||
+ | |||
+ | После определения переменной ее можно включать как во внутренние управляющие команды psql, так и в команды SQL. Подстановка значения переменной вместо ее имени называется интерполяцией. Механизм интерполяции открывает много полезных возможностей — например, | ||
+ | |||
+ | Чтобы подставить значение переменной, | ||
+ | |||
+ | * Интерполяция в командах SQL< | ||
+ | testdb=# \set manager_id 150 | ||
+ | testdb=# INSERT INTO employees VALUES ( | ||
+ | testdb(# ' | ||
+ | testdb(# :manager_id | ||
+ | testdb(# ): | ||
+ | testdb=# SELECT * FROM employees WHERE id = : | ||
+ | firstname I lastname I id | ||
+ | Kevin | Murphy | 150 | ||
+ | (1 row) | ||
+ | </ | ||
+ | |||
+ | Как упоминалось выше, в переменную можно загрузить содержимое файла, а затем интерполировать ее в другую команду. Для этого присвойте переменной результат выполнения команды cat (команда Unix, предназначенная для вывода содержимого файла), | ||
+ | |||
+ | * Чтение данных из файла в переменную< | ||
+ | testdb=# \set data 'cat tabledata' | ||
+ | testdb=# \echo :data | ||
+ | ' | ||
+ | </ | ||
+ | |||
+ | * Интерполяция переменной в команде INSERT< | ||
+ | testdb=# INSERT INTO employees VALUES (-.data): | ||
+ | </ | ||
+ | ===== Команды copy echo ===== | ||
+ | * **\copy** таблица { FROM | ТО }файл \ stdin | stdout. Команда позволяет скопировать данные, | ||
+ | |||
+ | <note important> | ||
+ | * \echo строка. Заданная строка передается в стандартный вывод. Команда часто используется при написании сценариев, | ||
+ | * \д [ файл ]. Команда выполнения буфера. Как и символ точки с запятой (:) в конце команды SQL, передает текущее содержимое буфера запроса серверу для обработки. Аргумент позволяет сохранить итоговый набор в заданном файле или передать его следующей программе для дальнейшей обработки. | ||
+ | * \i файл. Чтение входных данных из файла с заданным именем. Содержимое файла интерпретируется так, словно оно было введено непосредственно в приглашении psql. | ||
+ | * \1o_export old файл. Экспортирование больших объектов с заданным идентификатором объекта (OID) в локальную файловую систему. Отличается от функции сервера 1o_export() так же, как команда \copy в psql отличается от команды COPY в SQL. | ||
+ | * \lo_import файл [ комментарий ]. Импортирование больших объектов из локальной файловой системы в базу данных. К объекту можно присоединить необязательный комментарий; | ||
+ | * \о [ файл \ / | ||
+ | * \qecho строка. Заданная строка направляется в канал вывода, | ||
+ | * \w файл \ / | ||
📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.
📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Nginx простые примеры конфигурации
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах
7 Самых Популярных Обзоров
- Хостинг для Python-скриптов и приложений
- ТОП 4 лучших антидетект браузеров (Бесплатные & Платные)
- Подборка купонов (промокоды) на хостинг, антидетект браузеры
- Обзор THE.Hosting (PQ Hosting): надежный хостинг с профессиональной поддержкой
- Хостинг в России
- Хостинг в Европе
- Обзор браузера Dolphin {anty} для мультиаккаунтинга