Создание базы, таблицы и GUI-клиенты
Создаём базу и таблицу, наполняем данными и сразу пробуем запросы в живой песочнице.
Таблица — это набор строк с одинаковой структурой столбцов; именно в таблицах PostgreSQL хранит данные.
Создание базы данных
Базу создают либо SQL-командой CREATE DATABASE, либо утилитой createdb из шелла. Оба способа делают одно и то же.
# Утилита из командной строки
createdb -U postgres shop
# Или внутри psql одной SQL-командой:
# CREATE DATABASE shop;
После этого подключаемся к новой базе: psql -U postgres -d shop или из psql командой \c shop.
Первая таблица и данные
Дальше всё — обычный стандартный SQL. Ниже самодостаточный пример: создаём таблицу товаров, добавляем строки и выбираем их. Этот код переносим и выполнится в любой реляционной базе — нажмите «Запустить» и поэкспериментируйте с запросом.
CREATE TABLE products (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
price INTEGER NOT NULL
);
INSERT INTO products (id, name, price) VALUES
(1, 'Клавиатура', 2500),
(2, 'Мышь', 1200),
(3, 'Монитор', 18000),
(4, 'Коврик', 600);
SELECT name, price
FROM products
WHERE price < 5000
ORDER BY price;
Вывод:
Коврик|600 Мышь|1200 Клавиатура|2500
Обратите внимание: здесь автоинкремент мы не использовали, а задали id вручную как INTEGER PRIMARY KEY. В самом PostgreSQL для автонумерации применяют SERIAL или GENERATED ... AS IDENTITY — об этом подробно в следующем разделе.
В PostgreSQL это выглядело бы так
Тот же смысл, но с PG-специфичной автонумерацией id и денежным типом — этот вариант не для песочницы, а для реального сервера:
CREATE TABLE products (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
price NUMERIC(10, 2) NOT NULL
);
SERIAL автоматически создаёт счётчик и сам подставляет следующее значение id при вставке.
Графические клиенты: pgAdmin и DBeaver
Консоль удобна для скриптов, но смотреть данные и схему часто приятнее в графическом интерфейсе. Два самых популярных клиента:
| Клиент | Особенности |
| pgAdmin | официальный клиент специально для PostgreSQL; дерево объектов, визуальный конструктор, графики нагрузки |
| DBeaver | универсальный клиент для десятков СУБД; удобен, если работаете не только с PostgreSQL; есть бесплатная Community-версия |
Оба показывают список таблиц, позволяют редактировать строки мышкой, строить запросы и видеть планы выполнения. Под капотом они всё равно отправляют тот же SQL — поэтому понимать команды важнее, чем кнопки.
Итог
- База создаётся через
CREATE DATABASEили утилитуcreatedb. - Таблицы и данные — это обычный стандартный SQL; в песочнице автонумерацию пишем как
INTEGER PRIMARY KEY. - В реальном PostgreSQL для автонумерации используют
SERIAL/IDENTITY. - pgAdmin — официальный GUI под PostgreSQL, DBeaver — универсальный клиент под многие СУБД.