SQLLab
Все статьи

PostgreSQL для начинающих: первые шаги и основные команды

PostgreSQL для начинающих: установка, подключение, первые запросы, основные типы данных. Практическое введение в самую популярную СУБД с открытым кодом.

22 марта 2026 г.·3 мин чтения·

PostgreSQL — самая популярная реляционная СУБД с открытым исходным кодом. Используется от стартапов до корпораций. Вот с чего начать.

Почему PostgreSQL

  • Бесплатный и открытый — без лицензий и ограничений
  • Полнофункциональный — оконные функции, JSON, полнотекстовый поиск, геоданные
  • Стандарт на рынке — Яндекс, Сбер, Avito, большинство стартапов
  • Активное развитие — новая версия каждый год
  • Строгий — не прощает ошибок в SQL (в отличие от MySQL с мягкими настройками)

Установка

Mac (Homebrew)

brew install postgresql@16
brew services start postgresql@16

Ubuntu/Debian

sudo apt install postgresql postgresql-contrib
sudo systemctl start postgresql

Windows

Скачать установщик с postgresql.org → Next → Next → готово.

Docker (рекомендуется для учёбы)

docker run --name postgres-dev \
  -e POSTGRES_PASSWORD=secret \
  -p 5432:5432 \
  -d postgres:16

Подключение

# Через psql (терминал)
psql -U postgres
psql -U postgres -d mydb -h localhost

# Создать базу
createdb mydb

Для графического интерфейса: DBeaver (бесплатный), TablePlus, pgAdmin (встроен в установщик).

Первые команды в psql

-- Список баз данных
\l

-- Подключиться к базе
\c mydb

-- Список таблиц
\dt

-- Структура таблицы
\d users

-- Выйти
\q

Создание таблицы

CREATE TABLE users (
    id         SERIAL PRIMARY KEY,
    name       VARCHAR(100) NOT NULL,
    email      VARCHAR(200) UNIQUE NOT NULL,
    age        INTEGER CHECK (age >= 0 AND age <= 150),
    city       VARCHAR(100),
    created_at TIMESTAMP DEFAULT NOW()
);

Основные типы данных

ТипИспользование
INTEGER, BIGINTЦелые числа
DECIMAL(p,s), NUMERICТочные дроби (деньги)
REAL, DOUBLE PRECISIONПлавающая точка
VARCHAR(n)Строка до n символов
TEXTСтрока любой длины
BOOLEANtrue / false
DATE2024-03-15
TIMESTAMP2024-03-15 14:30:00
TIMESTAMPTZTimestamp с часовым поясом
UUIDУникальный идентификатор
JSONBJSON (бинарный, с индексами)
SERIALАвтоинкремент (INT + sequence)

CRUD-операции

-- Добавить данные
INSERT INTO users (name, email, city)
VALUES ('Анна', 'anna@mail.ru', 'Москва');

-- Добавить несколько строк
INSERT INTO users (name, email, city) VALUES
    ('Иван', 'ivan@gmail.com', 'СПб'),
    ('Мария', 'maria@yandex.ru', 'Москва');

-- Читать данные
SELECT * FROM users WHERE city = 'Москва';

-- Обновить данные
UPDATE users SET city = 'Казань' WHERE id = 1;

-- Удалить строку
DELETE FROM users WHERE id = 3;

Полезные функции PostgreSQL

-- Текущая дата/время
SELECT NOW(), CURRENT_DATE, CURRENT_TIMESTAMP;

-- Генерация UUID
SELECT gen_random_uuid();

-- Работа с JSON
SELECT data->>'name' FROM events WHERE data->>'type' = 'click';

-- Полнотекстовый поиск
SELECT * FROM articles WHERE to_tsvector('russian', content) @@ to_tsquery('sql & запрос');

Права доступа

-- Создать пользователя
CREATE USER myapp WITH PASSWORD 'secret';

-- Дать права на базу
GRANT ALL PRIVILEGES ON DATABASE mydb TO myapp;

-- Дать права на таблицы
GRANT SELECT, INSERT ON ALL TABLES IN SCHEMA public TO myapp;

Следующие шаги

После освоения базы:

  1. Индексы — CREATE INDEX, EXPLAIN ANALYZE
  2. Транзакции — BEGIN, COMMIT, ROLLBACK
  3. Оконные функции — ROW_NUMBER, RANK, LAG
  4. JSONB — хранение и запросы к JSON-данным
  5. Партиционирование — для больших таблиц

PostgreSQL — это инструмент на годы. Чем глубже вы его знаете, тем более ценным специалистом становитесь.

Похожие статьи

Попробуй на практике

Тренажёр с реальными задачами — бесплатно и без регистрации

Открыть тренажёр →