Категории SQL-команд - DDL, DML, DCL, TCL
Разработчику
Аналитику
Тестировщику
Архитектору
Инженеру
Категории SQL-команд — DDL, DML, DCL, TCL
В ходе развития SQL сложилась устоявшаяся практика деления команд языка на несколько логических групп, каждая из которых отвечает за определённый аспект работы с данными и структурами базы данных. Это деление принято называть подъязыками SQL (на английском звучит лучше - sublanguages), хотя в повседневной практике чаще говорят "типы SQL-команд". Такая классификация не является строгой, поэтому скорее вольное деление.
DDL
DDL - Data Definition Language (язык определения данных), используется для создания, изменения, удаления объектов структуры данных (таблиц, индексов, схем и т.д.).
Основные команды DDL:
CREATE- создание объекта (таблица, индекс);ALTER- изменение структуры существующего объекта;DROP- удаление объекта из базы данных;TRUNCATE- удаление всех данных из таблицы с сохранением её структуры (иногда относят к DML, но чаще к DDL из-за эффекта на метаданные);RENAME- переименование объекта (не во всех СУБД).
DDL-команды обычно неявно фиксируют транзакции, то есть COMMIT происходит автоматически после выполнения. О транзакциях мы поговорим отдельно.
DML
DML - Data Manipulation Language (язык манипулирования данными), предназначен для работы с данными внутри таблиц - добавления, изменения, удаления записей.
Основные команды DML:
INSERT- добавление новых строк;UPDATE- изменение существующих строк;DELETE- удаление строк;MERGE(илиUPSERT) - условное обновление или вставка данных (в зависимости от наличия записи).
DML-операции выполняются в рамках транзакций и могут быть отменены (ROLLBACK) или зафиксированы (COMMIT).
DQL
DQL - Data Query Language (язык запросов к данным), используется для выборки из базы данных. Это основной инструмент для получения информации. Здесь одна основная команда - SELECT для извлечения данных по заданным критериям. Некоторые источники считают SELECT частью DML, поскольку он "манипулирует данными", извлекая их.
DCL
DCL - Data Control Language (язык управления доступом к данным), управляет правами доступа пользователей и ролям в базе данных.
Основные команды DCL:
GRANT- предоставление привилегий.REVOKE- отмена ранее выданных привилегий.
DCL нужен для обеспечения безопасности и аудита в многопользовательских системах.
TCL
TCL - Transaction Control Language (язык управления транзакциями), управляет группами операций как единой транзакцией с возможностью подтверждения или отката изменений.
Основные команды TCL:
COMMIT- фиксация всех изменений текущей транзакции.ROLLBACK- откат всех изменений текущей транзакции.SAVEPOINT- установка точки отката внутри транзакции (позволяет откатиться к промежуточному состоянию).
TCL особенно важен при работе с DML-операциями, где требуется атомарность (все или ничего).
Такое деление возникло в учебных и методичеких материалах, а также в документации вендоров (Oracle, IBM, Microsoft и др.). Оно помогает структурировать обучение и понимание SQL, разделяя его функциональность по назначению. Поэтому граница между подъязыками не всегда чёткие (примеры - TRUNCATE и SELECT, о которых я упомянул ранее). Плюс, некоторые СУБД расширяют функциональность, добавляя новые команды, что усложняет такое деление на команды.
Краткая шпаргалка — команды по назначению
Сводка частых операторов из учебных шпаргалок. Подробный алфавитный указатель — Справочник по SQL; рецепты на схеме shop — Шпаргалка с типичными задачами по SQL; примеры с разбором по строкам — SQL — реальные кейсы.
| Оператор | Группа | Действие |
|---|---|---|
| SELECT | DQL | Выборка данных |
| FROM | DQL | Источник строк |
| WHERE | DQL | Фильтр строк |
| JOIN | DQL | Соединение таблиц |
| INSERT | DML | Добавить строку |
| UPDATE | DML | Изменить данные в таблице |
| DELETE | DML | Удалить строки |
| CREATE | DDL | Создать таблицу, БД, индекс, представление |
| ALTER TABLE | DDL | Добавить или убрать столбец, изменить тип |
| DROP | DDL | Удалить таблицу, БД или индекс |
| COMMIT | TCL | Зафиксировать транзакцию |
| ROLLBACK | TCL | Отменить изменения в транзакции |
Углубление: DDL — структура, CRUD и DML, SELECT — синтаксис, транзакции.