Зарегистрируйтесь, чтобы продолжить обучение

Подключение к БД с помощью psql Основы SQL

SQL — это структурированный язык запросов. В этом уроке научимся подключаться к базе данных и работать с ней используя утилиту psql.

Psql — это интерактивная консольная утилита, которая позволяет взаимодействовать с базой данных через командную строку. Клиент psql это стандартный способ для подключения к БД и его можно установить вместе с СУБД.

Для начала, чтобы подключиться к базе данных с помощью psql, необходимо выполнить команду:

psql -h server_address -U username -d dbname

Где server_address - адрес сервера СУБД, username - это ваше имя пользователя, а dbname - название базы данных, к которой вы хотите подключиться. После выполнения этой команды вам будет предложено ввести пароль.

psql -h 65.108.223.44 -d coursesdb -U student
Password for user student:
# вводим пароль student

После успешного подключения, вы увидите приглашение psql для ввода команд и название текущей базы данных. Например:

Password for user student:
psql (14.11 (Ubuntu 14.11-0ubuntu0.22.04.1), server 12.18)
Type "help" for help.

coursesdb=>

Утилита PSQL имеет команды, которые позволяют изучить структуру базы данных. Посмотрим, какие таблицы есть в этой БД:

psql (14.11 (Ubuntu 14.11-0ubuntu0.22.04.1), server 12.17)
Type "help" for help.

coursesdb=> \dt
             List of relations
 Schema |      Name      | Type  |  Owner
--------+----------------+-------+----------
 public | course_members | table | postgres
 public | course_reviews | table | postgres
 public | courses        | table | postgres
 public | topics         | table | postgres
 public | users          | table | postgres
(5 rows)

coursesdb=>

\dt - это специальная команда в psql. С ее помощью мы вывели список всех таблиц в этой базе данных. Список всех доступных команд можно посмотреть с помощью справки \?.

Мы видим, что после вывода списка таблиц снова вывелось приглашение coursesdb⇒ Это и есть REPL. После выполнения команды печатается её результат и снова выводится приглашение о вводе новой команды.

Мы подключились к базе данных и изучили ее структуру. Теперь попробуем выполнить запросы.

Работа с SQL

Сделаем запрос с помощью psql:

coursesdb=> SELECT id, first_name, last_name FROM users ORDER BY first_name ASC LIMIT 5;
 id | first_name | last_name
----+------------+-----------
 16 | Abe        | Funk
  8 | Abigale    | Turner
 34 | Alejandrin | Nicolas
 13 | Alfreda    | Hermann
 33 | Alfredo    | Sipes
(5 rows)

coursesdb=>

Утилита вывела 5 записей из таблицы users. Выведены поля id, first_name, last_name. Записи отсортированы по имени в алфавитном порядке.

Все запросы в psql выполняются только если их отправить клавишей Enter

Чтобы запрос выполнился, нужно соблюсти два условия.

  1. В конце запроса должна быть точка с запятой

  2. В конце запроса необходимо нажать Enter для его отправки.

coursesdb=> SELECT id, first_name, last_name FROM users ORDER BY first_name ASC LIMIT 5
coursesdb-> ;
 id | first_name | last_name
----+------------+-----------
 16 | Abe        | Funk
  8 | Abigale    | Turner
 34 | Alejandrin | Nicolas
 13 | Alfreda    | Hermann
 33 | Alfredo    | Sipes
(5 rows)

coursesdb=>

Если запрос можно вводить не целиком, а построчно, то утилита будет ожидать ввода точки с запятой для завершения построения запроса.

coursesdb=> SELECT
coursesdb->     id,
coursesdb->     first_name,
coursesdb->     last_name
coursesdb-> FROM users
coursesdb-> ORDER BY first_name
coursesdb-> LIMIT 5;
 id | first_name | last_name
----+------------+-----------
 16 | Abe        | Funk
  8 | Abigale    | Turner
 34 | Alejandrin | Nicolas
 13 | Alfreda    | Hermann
 33 | Alfredo    | Sipes
(5 rows)

coursesdb=>

Psql — это базовый клиент для работы с СУБД PostgreSQL. Рассмотрим графические клиенты на примере DBeaver.

Клиент DBeaver

DBeaver — бесплатный универсальный клиент для работы с различными СУБД. Его основные преимущества — распространенный, бесплатный и доступен на множестве платформ. Установить его можно по инструкции

Интерфейс программы DBeaver

Повторим те же действия, что выполняли psql

Подключаемся к базе данных. Здесь нужно выбрать нужную СУБД. Потребуется указать адрес сервера, базу данных, имя пользователя и пароль. С помощью Test Connection можно проверить подключение

Подключение к базе данных в DBeaver

Структура база данных. DBeaver показывает структуру БД в своем интерфейсе

Структура таблиц в базе данных

Создание базы данных и выполнения запросов. Создать Базу и таблицу можно как через интерфейс DBeaver, так и с помощью SQL. Для выполнения SQL запросов необходимо в верхнем меню выбрать SQL Editor - New SQL Script. Под полем ввода SQL находится поле вывода результата. Если запрос что-то возвращает, то результат появится здесь. Сам результат можно скопировать в один из популярных текстовых форматов данных

Выполнение запроса

Выводы

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

Все SQL запросы в psql должны содержать в конце точку запятой. Запрос не выполняется до того, как мы его отправим на сервер.

Помимо psql существуют и другие клиенты для работы с СУБД, например DBeaver. Они позволяют работать с базами данных через графический интерфейс и имеют те же возможности, что и psql.


Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы
профессия
Программирование на Python, Разработка веб-приложений и сервисов используя Django, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Тестирование веб-приложений, чек-листы и тест-кейсы, этапы тестирования, DevTools, Postman, SQL, Git, HTTP/HTTPS, API
4 месяца
с нуля
Старт 26 декабря
профессия
Программирование на Java, Разработка веб-приложений и микросервисов используя Spring Boot, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Google таблицы, SQL, Python, Superset, Tableau, Pandas, визуализация данных, Anaconda, Jupyter Notebook, A/B-тесты, ROI
9 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на PHP, Разработка веб-приложений и сервисов используя Laravel, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на JavaScript в браузере и на сервере (Node.js), разработка бекендов на Fastify и фронтенда на React
16 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на JavaScript, разработка веб-приложений, bff и сервисов используя Fastify, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Git, JavaScript, Playwright, бэкенд-тесты, юнит-тесты, API-тесты, UI-тесты, Github Actions, HTTP/HTTPS, API, Docker, SQL
8 месяцев
c опытом
Старт 26 декабря

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»