Ответ
В SQL принято выделять несколько групп команд, которые образуют его подмножества (языки):
-
DML (Data Manipulation Language) — язык для манипуляции данными. Эти команды работают с содержимым таблиц.
SELECT: выборка данных.SELECT name, email FROM users WHERE age > 30;INSERT: добавление новых записей.INSERT INTO users (name, age) VALUES ('Bob', 42);UPDATE: обновление существующих данных.UPDATE users SET age = 43 WHERE name = 'Bob';DELETE: удаление записей.DELETE FROM users WHERE name = 'Bob';
-
DDL (Data Definition Language) — язык для определения данных. Эти команды управляют структурой базы данных и её объектами.
CREATE: создание объектов (таблиц, индексов).CREATE TABLE products (id SERIAL PRIMARY KEY, name VARCHAR(100), price INT);ALTER: изменение структуры объекта.ALTER TABLE products ADD COLUMN description TEXT;DROP: удаление объекта.DROP TABLE products;
-
DCL (Data Control Language) — язык для управления доступом к данным.
GRANT: предоставление прав пользователям.REVOKE: отзыв прав.
-
TCL (Transaction Control Language) — язык для управления транзакциями.
COMMIT: сохранение изменений, сделанных в транзакции.ROLLBACK: откат изменений.SAVEPOINT: установка промежуточной точки для отката.
Также важной частью DML являются JOIN-операторы (INNER JOIN, LEFT JOIN и т.д.) для объединения данных из нескольких таблиц и агрегатные функции (COUNT, SUM, AVG, MAX, MIN) для вычислений по набору строк.
Ответ 18+ 🔞
Давай разложим по полочкам этот SQL, а то он, блядь, как слоёный пирог, только вместо теста — команды, а вместо начинки — данные, которые мы ебём туда-сюда.
Смотри, есть там такие группы команд, как будто языки внутри языка, ёпта. Каждый со своей работой.
1. DML (Data Manipulation Language) — это типа наш рабочий инструмент, чтобы ковыряться в данных. Прямо в содержимом таблиц шаримся.
SELECT: Ну это классика, выборка, мать её. Вытащить то, что нужно.SELECT name, email FROM users WHERE age > 30;INSERT: Запихнуть новую запись. Как впихнуть невпихуемое, но в SQL это норм.INSERT INTO users (name, age) VALUES ('Bob', 42);UPDATE: Обновить старые данные. Исправить косяки, жизнь наладить.UPDATE users SET age = 43 WHERE name = 'Bob';DELETE: Выкинуть нахуй ненужные записи. Чистка, блядь.DELETE FROM users WHERE name = 'Bob';
2. DDL (Data Definition Language) — а это уже архитекторы, ёбана. Они не с данными работают, а со структурой всей этой бандуры. Таблицы создают, ломают, перестраивают.
CREATE: Построить новый объект. Таблицу там, или индекс.CREATE TABLE products (id SERIAL PRIMARY KEY, name VARCHAR(100), price INT);ALTER: Перестроить, надстроить, прилепить балкон. Изменить структуру.ALTER TABLE products ADD COLUMN description TEXT;DROP: Снести к хуям объект. Таблицу, например. Вжух — и нет её.DROP TABLE products;
3. DCL (Data Control Language) — охрана, сука. Кому можно, кому нельзя. Права раздают и забирают.
GRANT: Разрешить что-то делать.REVOKE: Отобрать это разрешение обратно. "А ну отдай пропуск!"
4. TCL (Transaction Control Language) — это как система "отката" в жизни, блядь. Накосячил — откатился.
COMMIT: Всё, чувак, изменения окончательные, сохраняем.ROLLBACK: Ой, бля, нахуй это всё! Отменяем, как будто ничего не было.SAVEPOINT: А это типа "сохраниться" в игре, на случай если дальше всё пойдёт по пизде.
А ещё внутри DML есть важные штуки, без которых нихуя не получится: JOIN-ы (это чтобы таблицы между собой склеивать, INNER JOIN, LEFT JOIN и прочая хуйня) и агрегатные функции (COUNT, SUM, AVG), которые умеют считать, суммировать и выводить среднюю температуру по больнице. Без них — просто пиздец, а не работа.