В pgAdmin 4 таблицу можно создать через графический интерфейс: выбрать схему, добавить колонки, указать primary key и сохранить объект. Но даже если вы делаете это через GUI, полезно видеть SQL-эквивалент. Так проще понимать, что именно попадает в PostgreSQL.

- Где находится Create Table
- Основные поля при создании таблицы
- Как добавить колонки
- Primary key и уникальность
- SQL-эквивалент таблицы
- Как добавить и посмотреть данные
- Как открыть таблицу в PostgreSQL через pgAdmin
- Частые ошибки
- Какие типы данных выбрать для первой таблицы
- Как создать связанную таблицу
- Как редактировать строки безопасно
- Мини-чек-лист готовой таблицы
- Как изменить таблицу после создания
- Когда лучше не редактировать через GUI
- Что читать дальше
- Часто задаваемые вопросы
- Можно ли создать таблицу только через интерфейс, без SQL?
- Что выбрать для id: SERIAL или GENERATED?
- Почему таблица не появилась после сохранения?
Где находится 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');
Посмотреть данные можно двумя способами. Через интерфейс: правый клик по таблице users -> View/Edit Data -> All Rows. Через SQL:
SELECT id, email, created_at
FROM users
ORDER BY id;
View/Edit Data удобен для быстрой проверки маленькой таблицы. Для фильтрации, сортировки и повторяемых действий лучше писать SQL-запрос.
Как открыть таблицу в PostgreSQL через pgAdmin
- Раскройте базу данных.
- Откройте Schemas -> public -> Tables.
- Найдите таблицу
users. - Правый клик -> View/Edit Data.
- Выберите All Rows или Filtered Rows.
Для больших таблиц не открывайте All Rows без необходимости. Лучше использовать Filtered Rows или Query Tool с LIMIT, чтобы не загружать слишком много данных в интерфейс.
SELECT *
FROM users
ORDER BY id DESC
LIMIT 50;
Частые ошибки
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 и проверьте, в той ли схеме вы смотрите список таблиц. Если при сохранении была ошибка, таблица не создастся.



