PostgreSQL

Как создать таблицу в pgAdmin 4 и посмотреть данные

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

Если таблица уже создана: чтобы увидеть список таблиц, раскройте нужную базу данных → Schemas → public → Tables. Чтобы посмотреть строки, нажмите правой кнопкой по таблице и выберите View/Edit Data → All Rows. Подробный маршрут — в первом разделе ниже

Как открыть таблицу в PostgreSQL через pgAdmin

Как увидеть список таблиц

  1. Раскройте базу данных.
  2. Откройте Schemas → public → Tables.
  3. В списке появятся таблицы схемы public.

Как посмотреть строки таблицы

  1. Найдите нужную таблицу в списке Tables.
  2. Нажмите правой кнопкой мыши на таблице.
  3. Выберите View/Edit Data → All Rows или Filtered Rows.
Меню таблицы users в pgAdmin 4 9.16: маршрут View/Edit Data и варианты All Rows, First 100 Rows, Last 100 Rows и Filtered Rows

На скриншоте используется отдельная учебная схема media_lab; для схемы public последовательность действий такая же.

После этого откроется Data Grid с данными таблицы

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

Data Grid таблицы users в pgAdmin 4 9.16: две обезличенные учебные строки и доступное редактирование таблицы с primary key

Где находится Create Table

Сначала подключитесь к серверу и раскройте нужную базу данных. Таблицы в PostgreSQL создаются внутри схемы. В учебных примерах чаще всего используется схема public

Servers
└── Local PostgreSQL
    └── Databases
        └── shop
            └── Schemas
                └── public
                    └── Tables
  1. Откройте Schemas → public.
  2. Нажмите правой кнопкой на Tables.
  3. Выберите Create → Table.
  4. На вкладке General задайте имя таблицы, например users.
  5. Вкладка 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 остается в истории, ее можно проверить, сохранить и повторить. Ручные клики сложнее воспроизвести

Что читать дальше

Связанные материалы из базы:

Часто задаваемые вопросы

Можно ли создать таблицу только через интерфейс, без SQL?

Да, но SQL все равно полезно понимать. GUI помогает не ошибиться в окнах, а SQL показывает точную структуру, которую получит база данных

Что выбрать для id: SERIAL или GENERATED?

Для простого учебного примера SERIAL понятен и короток. В новых проектах часто используют стандартный синтаксис identity-колонок, но beginner-материалу важно сначала объяснить идею первичного ключа и автоматической нумерации

Почему таблица не появилась после сохранения?

Обновите дерево объектов через Refresh и проверьте, в той ли схеме вы смотрите список таблиц. Если при сохранении была ошибка, таблица не создастся

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x