Стандартным клиентом для PostgreSQL является консольный psql. Именно он идет в комплекте при установке данной СУБД. Но, естественно, можно установить какой-то другой клиент, например, pgAdmin или DBeaver, либо что-то подобное. Но уметь работать в psql все-такие желательно.
Выглядит psql — как обычная консоль, черный экран и текст:
Есть у него метакоманды (которые начинаются с обратного слэша \). Минимум функциональности, зато работу свою выполняет.
Захотелось мне найти подобную же программу, но с возможностью автокомплита. Нашел только одну, но сильно долго не искал — на этом и успокоился. Программа называется pgcli. У нее и оф.сайт есть (с помощью данной программы можно подключаться и к другим СУБД). Исходный код открыт, все это на сайте можете посмотреть-почитать. И про другие возможности программы.
Чтобы установить её (в Ubnutu) необходимо ввести простую команду:
sudo apt install pgcli
Установка занимает несколько секунд.
На официальном сайте расписано, как установить под Windows (большая инструкция из нескольких шагов), а еще есть описание возможностей данной утилиты, много скриншотов. Хороший сайт.
Итак, pgcli установилась, теперь нужно ее запустить. Естественно, PostgreSQL должен быть установлен.
Я зашел под пользователя postgres (он был создан автоматически, при установке PostgreSQL из пакета). От имени этого пользователя выполняю следующую команду:
pgcli -U postgres
Первый раз нужно указать пользователя (и, если нужно, другие параметры подключения). При последующих подключениях я уже имя пользователя не указывал, pgcli заходил под именем postgres.
Видимо, у меня что-то то ли не доустановилось, то ли конфиг нужно какой-то подкрутить (разбираться не стал), появляются сообщения разные при входе:
Проверяем работу автокомплита — работает! Прикольно даже, необычно:
Даже метакоманды может дописывать:
Чтобы выбрать какой-то пункт из подсказки — нужно воспользоваться стрелками либо клавишей tab.
А теперь — тест. Решил взять большой запрос и посмотреть, как он будет отображаться в pgcli. Вот с этой страницы документации взял запрос:
WITH regional_sales AS ( SELECT region, SUM(amount) AS total_sales FROM orders GROUP BY region ), top_regions AS ( SELECT region FROM regional_sales WHERE total_sales = (SELECT SUM(total_sales)/10 FROM regional_sales) ) SELECT region, product, SUM(quantity) AS product_units, SUM(amount) AS product_sales FROM orders WHERE region IN (SELECT region FROM top_regions) GROUP BY region, product;
И добавил его в pgcli:
Ничего так, прикольно отображается.
Естественно, у pgcli есть man-страница, на которой расписаны параметры этой утилиты:
Вот такая вот программка. Пока не знаю, буду ли ей регулярно пользоваться. Но ознакомиться с ней все-таки можно.
И бонус — гифка с работой pgcli:
Leave a Reply