Получить доступ

К какой группе SQL-команд относятся SELECT, INSERT, UPDATE, DELETE?

JuniorSQL-запросыSQL
Ещё спрашивают так:
  • Что такое DDL и DML?
Коротко

SELECT, INSERT, UPDATE, DELETE — DML (работа с данными). DDL — схема (CREATE, ALTER, DROP), TCL — транзакции (COMMIT, ROLLBACK), DCL — права (GRANT, REVOKE).

  • SELECT иногда выделяют в DQL
  • В PostgreSQL DDL транзакционен — можно откатить ALTER TABLE
  • В MySQL и Oracle DDL делает неявный коммит

А ещё Разница важна для миграций: откатится ли упавшая миграция целиком

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

  • DDL (Data Definition Language) — определение структуры: CREATE TABLE, ALTER TABLE, DROP, CREATE INDEX, TRUNCATE;
  • DML (Data Manipulation Language) — работа со строками: SELECT, INSERT, UPDATE, DELETE, MERGE; SELECT иногда отдельно — DQL;
  • TCL (Transaction Control) — BEGIN, COMMIT, ROLLBACK, SAVEPOINT;
  • DCL (Data Control) — GRANT, REVOKE.

Практическое значение — транзакционность DDL. В PostgreSQL почти весь DDL можно выполнить внутри транзакции и откатить: миграция из нескольких шагов либо применится целиком, либо не применится. В MySQL и Oracle DDL вызывает неявный коммит: упавшая на середине миграция оставит схему в промежуточном состоянии. Исключения в PostgreSQL — CREATE INDEX CONCURRENTLY и некоторые операции, которые нельзя выполнять в транзакции.

Что хотят услышать

  • Группы команд с примерами.
  • SELECT, INSERT, UPDATE, DELETE — DML.
  • Транзакционность DDL в разных СУБД — плюс.

Частые ошибки

  • Относить TRUNCATE к DML.
  • Считать, что ALTER TABLE всегда откатывается.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗DDL (Data Definition Language) — определение схемы: CREATE, ALTER, DROP
  • ✓DML (Data Manipulation Language) — чтение и изменение данных
  • ✗TCL (Transaction Control Language) — управление транзакциями: COMMIT, ROLLBACK
  • ✗DCL (Data Control Language) — управление правами: GRANT, REVOKE

Что спросят дальше

  • Чем DELETE отличается от TRUNCATE?
  • Что делает COMMIT?

Разбор темы

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем