psql | Как получить первую строку нужной таблицы из СУБД PostgreSQL в Debian? — efim360.ru

psql | Как получить первую строку нужной таблицы из СУБД PostgreSQL в Debian?

Задача

У нас есть ОС Debian без графической оболочки. Управляем ОС при помощи терминала (консоли) для подачи команд.

Мы хотим вытащить самую первую строку из определённой таблицы, которая лежит в определённой базе данных, которая управляется СУБД PostgreSQL. Нам нужно написать SQL-запрос.

Как это сделать? Как будет выглядеть SQL-запрос?

 

Подготовка

Первым делом нужно изменить пользователя ОС Debian, от имени которого будем подключаться к "терминальному клиенту" для работы с PostgreSQL - psql.

ВНИМАНИЕ ! ! ! Если мы работаем от root пользователя, то мы не сможем подключиться к psql. Мы получим ошибку вида.

psql: ошибка: подключиться к серверу через сокет "/var/run/postgresql/.s.PGSQL.5432" не удалось: ВАЖНО: роль "root" не существует
PostgreSQL - роль root не существует
PostgreSQL - роль root не существует

Нам нужно изменить пользователя в терминале Debian. Меняем root на кого? После установки PostgreSQL в систему, вместе с ней устанавливается и новый пользователь. Его зовут postgres. По умолчанию он не имеет пароля для входа.

Команда смены пользователя root на postgres в Debian:

su - postgres

Обратите внимание на терминальную оболочку. В ней изменилась запись пользователя:

Сменили пользователя root на postgres в Debian
Сменили пользователя root на postgres в Debian

Теперь мы сможем работать с утилитой psql. Подключаемся к СУБД при помощи терминального клиента:

psql

Нам возвращаются версии ПО.

Вызвали psql от имени postgres в Debian
Вызвали psql от имени postgres в Debian

Обратите внимание на самую низкую запись:

postgres=#

Она говорит о том, что теперь мы находимся в самом интерфейсе СУБД PostgreSQL. Ещё она говорит о том, что мы сразу подключились к базе данных, которая тоже называется postgres. Есть пользователь postgres, а есть база данных postgres. Оба они устанавливаются по умолчанию. Не путайте! С этого момент мы можем начать вводить команды.

 

Решение

Что у нас есть?

Таблица из пяти строк и трёх столбцов - скрин из pgAdmin4
Таблица из пяти строк и трёх столбцов - скрин из pgAdmin4

В PostgreSQL мы создали базу данным с именем "efim2022db". В этой базе данных мы создали одну таблицу с именем "efim2022db_fio".

Сейчас мы подключены к базе данных, которая называется postgres. Эта БД создаётся по умолчанию после установки PostgreSQL в Debian.

Подключаемся к нужной базе данных при помощи метакоманды :

\с efim2022db
Сменили подключение от бд postgres на бд efim2022db
Сменили подключение от бд postgres на бд efim2022db

 

или \connect [ -reuse-previous=on|off ] [ имя_бд [ имя_пользователя ] [ компьютер ] [ порт ] | строка_подключения ]

Устанавливает новое подключение к серверу PostgreSQL. Параметры подключения можно указывать как позиционно (один или несколько по списку: база данных, пользователь, компьютер и порт), так и передавая аргумент строка_подключения . Если аргументы отсутствуют, новое подключение устанавливается с теми же параметрами, что и предыдущее.

С этого момента мы подключены к нужной базе данных.

Теперь сам SQL-запрос:

SELECT * FROM efim2022db_fio LIMIT 1;
Получили первую строку конкретной таблицы из PostgreSQL через утилиту psql в Debian
Получили первую строку конкретной таблицы из PostgreSQL через утилиту psql в Debian

Задача решена. "Иванов | Иван | Иванович" был первым в нашей таблице. Результат получен верно.

 

Как получить вторую строку?

Чтобы получить вторую строку из нашей таблицы, нам нужно воспользоваться дополнительным элементом синтаксиса SQL-команды SELECT. Этот дополнительный элемент называется OFFSET. На русском - это СДВИГ.

ЛИМИТ у нас задан в значение 1. Значит нам нужно сделать СДВИГ на 1.

SELECT * FROM efim2022db_fio LIMIT 1 OFFSET 1;
Получили вторую строку конкретной таблицы из PostgreSQL через утилиту psql в Debian
Получили вторую строку конкретной таблицы из PostgreSQL через утилиту psql в Debian

 

Информационные ссылки

Синтаксис SQL-команды SELECT на русском языке - https://postgrespro.ru/docs/postgresql/14/sql-select

Команды SQL в PostgreSQL 14 - https://postgrespro.ru/docs/postgresql/14/sql-commands

Список команд терминального клиента PSQL - https://postgrespro.ru/docs/postgresql/14/app-psql

Официальный сайт PostgreSQL - https://www.postgresql.org

Графический веб-интерфейс для управления СУБД PostgreSQL - https://www.pgadmin.org

Операционная система Debian - https://www.debian.org