PostgreSQL
Как создать таблицу в pgAdmin 4 и посмотреть данные
В pgAdmin 4 таблицу можно создать через графический интерфейс: выбрать схему, добавить колонки, указать primary key и сохранить объект. Но даже если вы делаете это через GUI, полезно видеть SQL-эквивалент. Так проще понимать, что именно попадает в PostgreSQL
Если таблица уже создана: чтобы увидеть список таблиц, раскройте нужную базу данных → Schemas → public → Tables. Чтобы посмотреть строки, нажмите правой кнопкой по таблице и выберите View/Edit Data → All Rows. Подробный маршрут — в первом разделе ниже
Как открыть таблицу в PostgreSQL через pgAdmin
Как увидеть список таблиц
- Раскройте базу данных.
- Откройте Schemas → public → Tables.
- В списке появятся таблицы схемы
public.
Как посмотреть строки таблицы
- Найдите нужную таблицу в списке Tables.
- Нажмите правой кнопкой мыши на таблице.
- Выберите View/Edit Data → All Rows или Filtered Rows.

На скриншоте используется отдельная учебная схема media_lab; для схемы public последовательность действий такая же.
После этого откроется Data Grid с данными таблицы
Просмотр и редактирование — разные режимы. Если строку нельзя однозначно определить по OID или primary key, pgAdmin открывает Data Grid только для чтения. В этом случае инструменты изменения данных недоступны. Представления (views) в этом режиме не редактируются

Где находится Create Table
Сначала подключитесь к серверу и раскройте нужную базу данных. Таблицы в PostgreSQL создаются внутри схемы. В учебных примерах чаще всего используется схема public
Servers
└── Local PostgreSQL
└── Databases
└── shop
└── Schemas
└── public
└── Tables
- Откройте Schemas → public.
- Нажмите правой кнопкой на Tables.
- Выберите Create → Table.
- На вкладке General задайте имя таблицы, например
users. - Вкладка Columns: добавьте колонки.
Основные поля при создании таблицы
Name — имя таблицы. Используйте короткие понятные имена латиницей: users, orders, products. Owner — владелец таблицы. Для учебной базы это может быть postgres, но в рабочем проекте лучше использовать отдельную роль приложения. Schema — схема, где будет создана таблица, чаще всего public
Главная вкладка — Columns. Здесь задаются колонки, типы данных, обязательность значения и значения по умолчанию. Вкладка Constraints нужна для ключей и ограничений
Как добавить колонки
Создадим учебную таблицу users с тремя колонками: идентификатор, email и дата создания
| Колонка | Тип | Зачем нужна |
|---|---|---|
id |
SERIAL или INTEGER с sequence |
уникальный идентификатор строки |
email |
TEXT |
почта пользователя |
created_at |
TIMESTAMP |
время создания записи |
В интерфейсе pgAdmin добавляйте колонки по одной. Для email включите Not NULL, если запись без email не имеет смысла. Для created_at задайте значение по умолчанию now()
Primary key и уникальность
У каждой нормальной таблицы должен быть первичный ключ. В учебном примере им будет id. Primary key помогает однозначно ссылаться на строку, связывать таблицы внешними ключами и быстро находить конкретную запись
Для email часто добавляют уникальность, чтобы два пользователя не получили одинаковый адрес. Это можно сделать через вкладку Constraints или SQL-команду
SQL-эквивалент таблицы
То, что вы создаете через GUI, в PostgreSQL превращается в SQL-команды. Для нашей таблицы эквивалент такой:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
email TEXT UNIQUE NOT NULL,
created_at TIMESTAMP DEFAULT now()
);
После сохранения таблицы можно обновить дерево объектов через Refresh и раскрыть Tables. Таблица users должна появиться в списке
Как добавить строки и проверить результат
Через Query Tool вставьте тестовую строку:
INSERT INTO users (email)
VALUES ('demo@example.com');
После INSERT откройте таблицу способом из первого раздела. В Data Grid должна появиться строка demo@example.com
Частые ошибки
Save недоступен. Проверьте, заполнено ли имя таблицы и добавлена ли хотя бы одна колонка. Также может не хватать прав на создание объектов в схеме
Колонка выглядит заблокированной. Некоторые поля в pgAdmin становятся недоступны после сохранения объекта. Для изменения уже созданной таблицы используйте Properties или SQL-команду ALTER TABLE
Нет прав на schema. Если пользователь не владелец схемы и ему не выдали CREATE, создать таблицу не получится. Права настраиваются через GRANT
Ошибка типа данных. PostgreSQL строго проверяет типы. Например, в колонку NUMERIC нельзя сохранить произвольный текст, а в TIMESTAMP нужно передавать корректное значение даты и времени
Какие типы данных выбрать для первой таблицы
В beginner-примере лучше не пытаться сразу использовать все типы PostgreSQL. Достаточно понять несколько базовых: INTEGER для числовых идентификаторов, TEXT для строк, NUMERIC для денег и точных чисел, TIMESTAMP для даты и времени, BOOLEAN для признаков
| Задача | Тип | Пример |
|---|---|---|
| Идентификатор | SERIAL или identity-колонка |
id |
| Текст без фиксированной длины | TEXT |
email |
| Деньги или сумма | NUMERIC(10, 2) |
total |
| Дата и время | TIMESTAMP |
created_at |
| Да или нет | BOOLEAN |
is_active |
Если вы не уверены, какой тип нужен для строки, начинайте с TEXT. Ограничения длины стоит добавлять тогда, когда они действительно являются бизнес-правилом, а не просто привычкой
Как создать связанную таблицу
После таблицы users можно создать таблицу orders, где каждый заказ связан с пользователем. В интерфейсе pgAdmin это делается через Constraints, а в SQL — через внешний ключ
CREATE TABLE orders (
id SERIAL PRIMARY KEY,
user_id INTEGER NOT NULL REFERENCES users(id),
total NUMERIC(10, 2) NOT NULL,
created_at TIMESTAMP DEFAULT now()
);
Внешний ключ REFERENCES users(id) означает, что заказ нельзя привязать к несуществующему пользователю. Это правило защищает данные лучше, чем договоренность «не ошибаться при вставке»
INSERT INTO orders (user_id, total)
VALUES (1, 1490.00);
SELECT u.email, o.total, o.created_at
FROM orders o
JOIN users u ON u.id = o.user_id;
Как редактировать строки безопасно
View/Edit Data позволяет менять данные прямо в таблице. Это удобно на учебной базе, но на рабочей базе нужно быть осторожнее. Перед массовыми изменениями лучше писать явный SQL-запрос, проверять условие WHERE и понимать, сколько строк будет затронуто
-- Сначала проверить, какие строки будут изменены:
SELECT *
FROM users
WHERE email = 'demo@example.com';
-- Потом выполнить UPDATE:
UPDATE users
SET email = 'new-demo@example.com'
WHERE email = 'demo@example.com';
Главное правило: если вы не готовы объяснить условие WHERE, не запускайте UPDATE или DELETE. В интерфейсе это правило тоже работает
Мини-чек-лист готовой таблицы
- У таблицы есть понятное имя.
- Есть primary key.
- Обязательные поля отмечены как NOT NULL.
- Уникальные значения защищены UNIQUE-ограничением.
- Связи между таблицами оформлены FOREIGN KEY.
- Дата создания заполняется автоматически, если она нужна.
- После создания выполнен тестовый INSERT и SELECT.
Как изменить таблицу после создания
После сохранения таблицы часть параметров удобнее менять через SQL. Например, добавить колонку, переименовать колонку или добавить ограничение. В pgAdmin это тоже можно делать через Properties, но SQL-команда точнее фиксирует изменение и ее легче повторить на другой базе
ALTER TABLE users
ADD COLUMN is_active BOOLEAN DEFAULT true;
ALTER TABLE users
RENAME COLUMN email TO email_address;
ALTER TABLE users
ADD CONSTRAINT users_email_address_not_empty
CHECK (length(email_address) > 3);
Для учебной базы такие изменения можно выполнять прямо в Query Tool. Для рабочей базы лучше оформлять изменения как миграции, чтобы структура базы была воспроизводимой
Когда лучше не редактировать через GUI
GUI хорош для обучения и точечных правок. Но если нужно изменить много строк, добавить несколько таблиц или повторить структуру на другом окружении, пишите SQL. Команда в Query Tool остается в истории, ее можно проверить, сохранить и повторить. Ручные клики сложнее воспроизвести
Что читать дальше
Связанные материалы из базы:
- CREATE TABLE в PostgreSQL — типы данных, ограничения и автоинкремент.
- pgAdmin 4 — подключение к серверу и создание базы.
- Foreign Key в PostgreSQL — связи между таблицами.
- psql команды — быстрые команды для проверки таблиц.
Часто задаваемые вопросы
Можно ли создать таблицу только через интерфейс, без SQL?
Да, но SQL все равно полезно понимать. GUI помогает не ошибиться в окнах, а SQL показывает точную структуру, которую получит база данных
Что выбрать для id: SERIAL или GENERATED?
Для простого учебного примера SERIAL понятен и короток. В новых проектах часто используют стандартный синтаксис identity-колонок, но beginner-материалу важно сначала объяснить идею первичного ключа и автоматической нумерации
Почему таблица не появилась после сохранения?
Обновите дерево объектов через Refresh и проверьте, в той ли схеме вы смотрите список таблиц. Если при сохранении была ошибка, таблица не создастся