Пошук уроків, статей та іншого контенту
Ознайомимося з pgAdmin і GUI-клієнтами для підключення, виконання SQL-запитів та керування базами даних.
GUI-клієнт — це програма з графічним інтерфейсом для роботи з базами даних. Замість введення всіх команд у терміналі можна:
підключатися до сервера PostgreSQL;
переглядати бази даних, схеми й таблиці;
виконувати SQL-запити;
створювати та змінювати об’єкти бази даних;
переглядати й редагувати дані;
аналізувати результати запитів.
GUI-клієнт не замінює PostgreSQL. PostgreSQL залишається сервером бази даних, а GUI-клієнт лише підключається до нього та надсилає SQL-команди.
pgAdmin — офіційний графічний інструмент для роботи з PostgreSQL. Він поширюється окремо від сервера PostgreSQL і часто встановлюється разом із ним.
Основні частини інтерфейсу pgAdmin:
Object Explorer — дерево серверів, баз даних, схем і таблиць;
Query Tool — редактор і виконання SQL-запитів;
Data Output — результати виконання запитів;
Properties — властивості вибраного об’єкта;
Dashboard — загальна інформація про сервер і його активність.
pgAdmin підходить для навчання, адміністрування та виконання повсякденних операцій із PostgreSQL.
спеціально розроблений для PostgreSQL;
підтримує всі основні об’єкти PostgreSQL;
дозволяє працювати як через меню, так і через SQL;
має інструменти для перегляду структури бази даних;
доступний для основних операційних систем.
Для PostgreSQL також використовують універсальні клієнти:
DBeaver — підтримує багато різних СУБД;
DataGrip — IDE для роботи з базами даних;
TablePlus — легкий клієнт із простим інтерфейсом.
Принцип роботи в них подібний: потрібно створити підключення, вибрати базу даних і виконувати SQL-запити.
Після запуску pgAdmin потрібно додати сервер PostgreSQL.
У дереві об’єктів:
Натисніть правою кнопкою на Servers.
Виберіть Register → Server.
На вкладці General введіть назву підключення, наприклад Local PostgreSQL.
Відкрийте вкладку Connection.
Заповніть параметри підключення.
Типові параметри локального сервера:
Host name/address: localhost
Port: 5432
Maintenance database: postgres
Username: ім’я користувача PostgreSQL
Password: пароль користувача
Порт 5432 є стандартним портом PostgreSQL, але під час встановлення сервера його могли змінити.
Після збереження pgAdmin спробує підключитися до сервера. Якщо підключення успішне, у дереві з’явиться сервер із розділами:
Databases;
Login/Group Roles;
Tablespaces.
Один сервер PostgreSQL може містити кілька баз даних. SQL-запити виконуються в контексті конкретної бази даних.
Щоб відкрити Query Tool для бази:
Розгорніть потрібний сервер.
Розгорніть розділ Databases.
Натисніть правою кнопкою на потрібну базу даних.
Виберіть Query Tool.
Назва вибраної бази зазвичай відображається у верхній частині вікна редактора запитів.
У Query Tool SQL-код вводиться в редакторі. Щоб виконати запит:
Напишіть SQL-команду.
Виділіть її або встановіть курсор усередині команди.
Натисніть кнопку запуску запиту.
Перегляньте результат у нижній частині вікна.
Для навчання можна створити таблицю, додати записи та виконати вибірку.
-- Створюємо таблицю курсів
CREATE TABLE courses (
id integer GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
title varchar(100) NOT NULL,
duration_hours integer NOT NULL CHECK (duration_hours > 0)
);
-- Додаємо кілька курсів
INSERT INTO courses (title, duration_hours)
VALUES
('PostgreSQL для початківців', 12),
('SQL-запити', 8),
('Проєктування баз даних', 16);
-- Отримуємо всі курси
SELECT id, title, duration_hours
FROM courses
ORDER BY id;Після виконання SELECT pgAdmin покаже результат у вкладці Data Output.
Результат міститиме три стовпці:
id;
title;
duration_hours.
В одному редакторі можна зберігати кілька SQL-команд:
-- Переглядаємо курси тривалістю понад 10 годин
SELECT title, duration_hours
FROM courses
WHERE duration_hours > 10;
-- Підраховуємо кількість курсів
SELECT COUNT(*) AS course_count
FROM courses;Якщо курсор розташований усередині однієї команди, pgAdmin може виконати лише цю команду. Щоб виконати кілька команд одразу, їх можна виділити або запустити весь SQL-скрипт.
Кожна команда має завершуватися крапкою з комою ;. Це особливо важливо, коли в редакторі розташовано кілька команд.
У дереві pgAdmin можна послідовно відкрити:
Servers;
потрібний сервер;
Databases;
потрібну базу даних;
Schemas;
схему public;
Tables;
потрібну таблицю.
У таблиці можна переглянути:
стовпці;
типи даних;
обмеження;
первинний ключ;
індекси;
зовнішні ключі.
Для перегляду даних таблиці зазвичай використовують пункт на кшталт View/Edit Data. Проте для відтворюваної роботи краще виконувати явні SQL-запити в Query Tool. SQL-запит можна зберегти, повторити або передати іншому розробнику.
pgAdmin дозволяє створювати об’єкти через контекстне меню. Наприклад, для створення таблиці можна:
відкрити схему public;
натиснути правою кнопкою на Tables;
вибрати Create → Table;
ввести назву таблиці;
додати стовпці;
налаштувати типи даних і обмеження;
зберегти таблицю.
Такий підхід зручний для ознайомлення зі структурою таблиці. Водночас SQL часто є зрозумілішим способом описати зміни:
-- Створюємо таблицю студентів
CREATE TABLE students (
id integer GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
full_name varchar(150) NOT NULL,
email varchar(255) UNIQUE NOT NULL
);Під час роботи через GUI важливо розуміти, яку SQL-команду фактично виконує програма. Це допомагає краще вивчати SQL і контролювати зміни в базі даних.
GUI-клієнти можуть показувати рядки таблиці у вигляді сітки. У деяких випадках рядки можна редагувати безпосередньо в цій сітці.
Для простих операцій краще використовувати SQL:
-- Оновлюємо тривалість курсу
UPDATE courses
SET duration_hours = 14
WHERE id = 1;
-- Видаляємо курс за ідентифікатором
DELETE FROM courses
WHERE id = 3;У командах UPDATE і DELETE особливо важливо правильно написати умову WHERE.
Без WHERE команда змінить або видалить усі рядки таблиці:
-- Небезпечна команда: змінить усі рядки
UPDATE courses
SET duration_hours = 1;Окрім результату запиту, pgAdmin показує повідомлення про його виконання.
Там можна побачити:
успішне виконання команди;
кількість змінених рядків;
повідомлення про помилку;
позицію помилки в SQL-коді;
додаткові повідомлення PostgreSQL.
Якщо запит завершився помилкою, спочатку прочитайте текст повідомлення. Часто з нього можна зрозуміти:
чи існує таблиця;
чи правильно написано назву стовпця;
чи сумісний тип даних;
чи порушено обмеження;
чи є синтаксична помилка.
Транзакція об’єднує кілька операцій в одну логічну одиницю. Зміни можна або підтвердити, або скасувати.
-- Починаємо транзакцію
BEGIN;
-- Додаємо новий курс
INSERT INTO courses (title, duration_hours)
VALUES ('Безпечна робота з базами даних', 10);
-- Перевіряємо дані в межах транзакції
SELECT *
FROM courses
ORDER BY id;
-- Підтверджуємо зміни
COMMIT;Якщо потрібно скасувати зміни до підтвердження, використовується ROLLBACK:
BEGIN;
UPDATE courses
SET duration_hours = 100
WHERE id = 1;
-- Скасовуємо зміни
ROLLBACK;Поведінка кнопок керування транзакціями може залежати від налаштувань конкретного GUI-клієнта. Тому для важливих змін потрібно перевіряти, чи ввімкнено автоматичне підтвердження команд.
Дотримуйтеся кількох простих правил:
перевіряйте назву вибраної бази даних перед виконанням запиту;
перед UPDATE або DELETE спочатку виконайте відповідний SELECT;
використовуйте WHERE, якщо потрібно змінити не всі рядки;
не зберігайте паролі у відкритому вигляді;
не підключайтеся до робочої бази даних під обліковим записом із зайвими правами;
перед небезпечними змінами створюйте резервну копію або працюйте в транзакції;
уважно перевіряйте, чи не підключені ви до production-середовища.
GUI спрощує роботу, але не захищає від помилкових команд. Кнопка запуску виконає SQL так само, як і команда в терміналі.
Якщо пароль не приймається:
перевірте ім’я користувача;
перевірте розкладку клавіатури;
переконайтеся, що пароль належить саме користувачу PostgreSQL;
за потреби повторно збережіть пароль у налаштуваннях підключення.
Для локального сервера зазвичай використовують:
хост localhost;
порт 5432.
Якщо PostgreSQL встановлено на іншому комп’ютері або порт було змінено, ці значення потрібно уточнити в налаштуваннях сервера.
pgAdmin може бути запущений, навіть якщо сервер PostgreSQL зупинений. У такому разі клієнт не зможе встановити з’єднання.
Перевірте, чи запущена служба PostgreSQL у вашій операційній системі.
Помилка про відсутню таблицю може виникнути, якщо:
відкрито не ту базу даних;
таблицю ще не створено;
використовується інша схема;
у назві є помилка.
У pgAdmin перевірте активну базу даних і дерево схем.
Після створення таблиці або іншого об’єкта дерево pgAdmin може не оновитися автоматично. У такому разі скористайтеся командою оновлення для відповідного розділу.
Це не означає, що SQL-команда не спрацювала. Перевірте об’єкт за допомогою SQL-запиту або оновіть дерево.
У Query Tool виконайте такі дії:
Створіть таблицю tasks.
Додайте до неї три завдання.
Отримайте всі завдання.
Змініть статус одного завдання.
Видаліть одне завдання.
Один із можливих варіантів:
-- Створюємо таблицю завдань
CREATE TABLE tasks (
id integer GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
title varchar(200) NOT NULL,
is_completed boolean NOT NULL DEFAULT false
);
-- Додаємо завдання
INSERT INTO tasks (title)
VALUES
('Встановити PostgreSQL'),
('Створити підключення в pgAdmin'),
('Виконати перший SELECT');
-- Переглядаємо всі завдання
SELECT *
FROM tasks
ORDER BY id;
-- Позначаємо друге завдання виконаним
UPDATE tasks
SET is_completed = true
WHERE id = 2;
-- Видаляємо третє завдання
DELETE FROM tasks
WHERE id = 3;
-- Перевіряємо остаточний стан таблиці
SELECT *
FROM tasks
ORDER BY id;GUI-клієнт — це графічна програма для підключення до бази даних і виконання SQL.
pgAdmin — основний GUI-інструмент для PostgreSQL.
Для підключення потрібно вказати хост, порт, базу даних, користувача та пароль.
У Query Tool можна виконувати SQL-команди й переглядати їхні результати.
Дерево об’єктів pgAdmin допомагає переглядати бази даних, схеми, таблиці та обмеження.
GUI-інтерфейс зручний, але всі небезпечні зміни потрібно виконувати уважно.
Перед UPDATE і DELETE варто перевіряти умову за допомогою SELECT.
Транзакції дають змогу підтвердити або скасувати групу змін.