Skip to content

Основы PostgreSQL: начала работы с psql

Пересказ статьи Ryan Booz. PostgreSQL Basics Getting started with psql


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

Знание того, как установить и использовать основные команды psql, является важным навыком для каждого, кто будет подключаться к PostgreSQL.

Краткая история psql


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



Почему вам следует использовать psql


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

Однако спустя некоторое время я понял, что зачастую много проще запрыгнуть в базу данных с помощью psql, когда мне просто необходимо подключиться, взглянуть на схему и выполнить простые запросы. Использование мета-команд становится второй натурой при получении подробной информации об объектах базы данных. Это подобно инструменту с сотнями эффективных примочек для быстрой работы с базой данных.

Более привлекательно то, что вы можете так сконфигурировать psql, что наряду с результатами будет возвращаться SQL, который она выполняет для каждой команды. Это может стать окном в изучение многих лежащих в основе каталога PostgreSQL таблиц, которые управляют тем, как используется база данных.

И последнее, важно, что во многих (многих!) статьях, руководствах, книгах и видео, которые показывают, как использовать функции PostgreSQL, демонстрация понятий будет происходить с помощью psql. Знание того, как подключиться с помощью этого инструмента и выполнить основные мета-команды, быстро помогут вам двигаться вперед.

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

Установка psql


Инструмент командной строки (CLI) psql имеется для Linux, MacOS и Windows. Он идет вместе с установочным пакетом сервера PostgreSQL или может быть установлен отдельно как автономное приложение CLI.

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

Проверка наличия Psql


Поскольку psql поступает вместе с сервером PostgreSQL, возможно, эта утилита уже имеется на вашем компьютере, если вы устанавливали PostgreSQL. Из терминала или командной строки Windows наберите следующее:

$> psql --version
psql (PostgreSQL) 15.0 (Ubuntu 15.0-1.pgdg20.04+1)

Если в ответ вы увидите версию psql, то psql у вас уже установлена. Если версия устарела, рассмотрите возможность ее обновления.

Хорошим правилом является постараться иметь такую версию psql, которая соответствует самой новой версии PostgreSQL в вашем рабочем окружении. Для основных команд, которые мы рассмотрим ниже, весьма вероятно, что будет работать любая ваша версия, но хорошей практикой является обновление psql.

Установка на Linux


Все основные дистрибутивы Linux должны иметь пакет для postgresql-client. Он может использоваться только для установки инструментов PostgreSQL, а не самого сервера, включая psql, pg_dump, pg_restore и других.

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

Из строки терминала выполните следующие команды:

$> sudo apt-get update
$> sudo apt-get install postgresql-client

По завершению проверьте установку с помощью получения версии psql, как было показано ранее.

Установка на Windows


Для Windows у вас имеется два варианта.

Если вы хотите использовать psql в командной строке Windows, вам необходмо установить PostgreSQL и все инструменты, используя пакет установки на PostreSQL.org. В процессе установки вы сможете решить, какие компоненты сервера и инструментов устанавливать.

На Windows 10 и выше есть возможность установки инструментов в среде Windows Subsystem для Linux 2 (WSL2) и использовать обычное управление пакетами Linux для установки компонентов, как показано выше. Опять, в зависимости от используемого дистрибутива для хоста WSL, команды пакета могут несколько отличаться.

Установка на MacOS


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

Самый быстрый способ установки PostgreSQL на MacOS - использование Postgres.app. Он обеспечивает полную установку сервера PostgreSQL, которая может быть запущена и остановлена по желанию, а простые инструкции на их домашней странице покажут вам, как убедиться, что инструменты командной строки PostgreSQL готовы к использованию из терминала.

Как альтернативу, вы можете просто установить PostgreSQL, используя Homebrew. Пакет libpq устанавливает только инструментарий (не сервер).

ryan@mba-laptop % brew doctor
ryan@mba-laptop % brew update
ryan@mba-laptop % brew install libpq

Поскольку это не полный сервер PostgreSQL, вам также потребуется корректно установить пути, чтобы вы могли использовать psql из терминала. Наиболее простой способ это сделать - позволить Homebrew обновить связи следующим образом.

ryan@mba-laptop % brew link --force libpq


Docker


Наконец, это будет упущением, если я не упомяну альтернативный вариант - Docker. Может быть использован любой из официальных контейнеров PostgreSQL через интерактивную оболочку Docker для подключения и использования psql. Пытаетесь ли вы подключиться к PostgreSQL на самом экземпляре Docker или удаленно, может использоваться установленное приложение psql (при корректно установленной сети).
Как пример, следующие команды могут использоваться для загрузки и запуска контейнера PostgreSQL Docker, подключения к выполняющейся оболочке и использования psql внутри контейнера.

ryan@redgate-laptop:~$ docker run --name pg15 -p 5432:5432 -e POSTGRES_PASSWORD=password -d postgres
ryan@redgate-laptop:~$ docker exec -it pg15 bash
root@80049acea1c0:/# psql -h localhost -U postgres

Подключение к PostgreSQL


После установки psql имеется два способа указать основные параметры подключения для целевой базы данных. Вам потребуется следующая информация для подключения к PostgreSQL.

  • Имя хоста

  • Порт (по умолчанию 5432)

  • Имя пользователя

  • Пароль

  • Имя базы данных

Задание отдельных параметров


Подключитесь к базе данных, используя описанные выше параметры. Если сервер PostgreSQL запущен на порте по умолчанию 5432, вы можете опустить переключатель -p и psql попытается подключиться к этому порту автоматически.

psql -h [hostname] -p [port] -U [username] -d [database name]

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

Использование URI для подключения к PostgreSQL


Как альтернатива, вы можете использовать параметры подключения для создания URI подключения к базе данных PostgreSQL.

psql postgresql://[имя пользователя]:[пароль]@[имя хоста]:[порт]/[имя базы данных]

При использовании этой формы вы можете указать пароль в строке подключения, если он не содержит точки с запятой (;) или амперсанда (&), т.к. они помешают парсингу URI-подключения. Если опустить пароль, то PostgreSQL запросит его.

Заключение


Приложение командной строки psql является полезным инструментом для каждого, кто работает с PostgreSQL. За десятилетия разработки появились сотни встроенных мета-команд, помогающих разработчикам и администраторам работать с PostgreSQL быстро и эффективно. Знания о том, как установить и использовать его для подключения к базам данных, является важным навыком для пользователей PostgreSQL.Дополнительным преимуществом является то, что последние версии psql могут использоваться, по крайней мере, с пятью последними основными релизами PostgreSQL из-за неустанной работы сообщества по поддержанию обратной совместимости.

Конечно, эти знания являются только частью пазла. В следующей статье мы проведем экскурс по основным мета-командам, которые вам следует знать, чтобы ускорить разработку баз данных PostgreSQL.

Обратные ссылки

Нет обратных ссылок

Комментарии

Показывать комментарии Как список | Древовидной структурой

Нет комментариев.

Автор не разрешил комментировать эту запись

Добавить комментарий

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

Form options

Добавленные комментарии должны будут пройти модерацию прежде, чем будут показаны.