Что такое SQL и СУБД
Что такое SQL и СУБД
SQL - это язык, на котором ты задаёшь вопросы базе данных. Типа: «покажи всех пользователей» или «сколько заказов было вчера». База данных в ответ либо отдаёт данные, либо молча смотрит на тебя и говорит: «где WHERE?!». Подключение из Go - через database/sql, из PHP - через PDO.
Эти четыре буквы - про транзакции: гарантии, которые база даёт твоим данным. Разберём их подробно в уроке про транзакции и ACID.
Что такое СУБД
СУБД (система управления базами данных) - это программа, которая хранит данные и умеет:
- сохранять
- искать
- обновлять
- защищать от хаоса
Самые популярные: PostgreSQL, MySQL/MariaDB, SQLite.
SQL как декларативный язык
SQL - это декларативный язык. Это значит: ты говоришь ЧТО ты хочешь, а не КАК это получить.
Например:
SELECT name, email FROM users WHERE age > 18;
Ты просто сказал(а): «Дай мне имена и email людей старше 18». БД сама решает, как это сделать быстрее всего. Что именно она решила, можно подсмотреть - для этого есть EXPLAIN. Ты не пишешь циклы, не индексируешь пальцем память - база разберётся.
Это отличает SQL от Go или PHP, где ты пишешь: «шаг 1, шаг 2, цикл, условие». SQL проще, но менее гибкий.
Типы SQL команд
SQL делится на три группы команд:
DDL (Data Definition Language) - структура. Здесь же задаются правила целостности, про них - урок об ограничениях и ключах:
CREATE TABLE users (id INT, name VARCHAR(100));
ALTER TABLE users ADD COLUMN email VARCHAR(100);
DROP TABLE users;
DML (Data Manipulation Language) - данные:
INSERT INTO users (id, name) VALUES (1, 'Alice');
UPDATE users SET name = 'Bob' WHERE id = 1;
DELETE FROM users WHERE id = 1;
DQL (Data Query Language) - читаем. Этой одной команде посвящён следующий урок про SELECT:
SELECT * FROM users;
Таблицы, строки, столбцы
- Таблица - набор строк одного типа (например,
users) - Строка - один объект (один пользователь)
- Столбец - свойство (имя, email, created_at)
PostgreSQL vs SQLite
На обучение рекомендуем PostgreSQL потому что:
- Максимально близок к SQL стандарту (знания переносятся на любую БД)
- Отличная документация
- На проде обычно именно он
- Полноценное шифрование и безопасность из коробки
SQLite выбирай если:
- Нужен быстрый эксперимент без установки
- Работаешь на мобильном или встроенном устройстве
- БД небольшая (файл на диске)
Проверка: работает ли БД
Если ты установил(а) PostgreSQL, можешь проверить, работает ли сервис:
# Linux/Mac
sudo systemctl status postgresql
# Или попробуй подключиться к БД
psql -U postgres
Если всё окей, должен вывести приглашение типа:
postgres=#
Выход: \q и Enter.
Для SQLite проще: скачиваешь бинарник, и работает везде. Проверка:
sqlite3 :memory:
sqlite>
Мини-задание
- Выбери СУБД для обучения: PostgreSQL или SQLite
- Установи выбранную СУБД (или проверь, есть ли уже)
- Подключись к БД и убедись, что работает
- Узнай, как посмотреть список таблиц: для PostgreSQL -
\dt, для SQLite -.tables