Операции DML, DDL, DCL и TCL

В SQL существует несколько категорий команд, каждая из которых предназначена для выполнения определённых задач в управлении базами данных. Эти категории включают операции DML, DDL, DCL и TCL.

DML (Data Manipulation Language)

DML включает команды, которые используются для работы с данными в таблицах базы данных. Сюда входят операции вставки, обновления, удаления и выборки данных.

Основные команды DML:

  • SELECT: Извлекает данные из базы данных.

    SELECT * FROM employees;
  • INSERT: Вставляет новые строки в таблицу.

    INSERT INTO employees (name, position) VALUES ('John Doe', 'Manager');
  • UPDATE: Обновляет существующие данные в таблице.

    UPDATE employees SET position = 'Senior Manager' WHERE name = 'John Doe';
  • DELETE: Удаляет строки из таблицы.

    DELETE FROM employees WHERE name = 'John Doe';

DML-команды работают с данными внутри таблиц, изменяя, удаляя или добавляя записи.

DDL (Data Definition Language)

DDL используется для определения структуры базы данных, включая создание, изменение и удаление схем, таблиц, индексов и других объектов базы данных.

Основные команды DDL:

  • CREATE: Создает новые объекты базы данных, такие как таблицы, индексы, представления.

    CREATE TABLE employees (
        id INT PRIMARY KEY,
        name VARCHAR(100),
        position VARCHAR(100)
    );
  • ALTER: Изменяет существующие объекты базы данных, например, добавляет или удаляет столбцы в таблице.

    ALTER TABLE employees ADD COLUMN salary DECIMAL(10, 2);
  • DROP: Удаляет объекты базы данных, такие как таблицы или индексы.

    DROP TABLE employees;
  • TRUNCATE: Удаляет все строки из таблицы, но сохраняет её структуру.

    TRUNCATE TABLE employees;

DDL-команды влияют на структуру базы данных и часто выполняются атомарно — изменения вступают в силу сразу и не могут быть отменены без дополнительных мер.

DCL (Data Control Language)

DCL используется для управления доступом к базе данных, включая предоставление и отъем прав пользователей.

Основные команды DCL:

  • GRANT: Предоставляет права пользователям или ролям на выполнение определённых действий в базе данных.

    GRANT SELECT, INSERT ON employees TO user1;
  • REVOKE: Отменяет ранее предоставленные права.

    REVOKE INSERT ON employees FROM user1;

DCL-команды обеспечивают контроль над доступом к данным, определяя, кто и какие операции может выполнять.

TCL (Transaction Control Language)

TCL включает команды, которые управляют транзакциями в базе данных, обеспечивая целостность данных при выполнении группы операций.

Основные команды TCL:

  • BEGIN или START TRANSACTION: Начинает новую транзакцию.

    START TRANSACTION;
  • COMMIT: Фиксирует изменения, сделанные в рамках транзакции, делая их постоянными.

    COMMIT;
  • ROLLBACK: Отменяет изменения, сделанные в рамках текущей транзакции.

    ROLLBACK;
  • SAVEPOINT: Создает точку сохранения внутри транзакции, к которой можно откатиться.

    SAVEPOINT savepoint1;
  • RELEASE SAVEPOINT: Удаляет точку сохранения, но не влияет на транзакцию.

    RELEASE SAVEPOINT savepoint1;
  • ROLLBACK TO SAVEPOINT: Откатывает транзакцию к ранее установленной точке сохранения.

    ROLLBACK TO SAVEPOINT savepoint1;

TCL-команды используются для управления транзакциями, что позволяет объединить несколько операций в одну логическую группу и обеспечивать согласованность данных в случае возникновения ошибок.

Итог

  • DML — команды для работы с данными (SELECT, INSERT, UPDATE, DELETE).

  • DDL — команды для работы со структурой базы данных (CREATE, ALTER, DROP).

  • DCL — команды для управления доступом (GRANT, REVOKE).

  • TCL — команды для управления транзакциями (COMMIT, ROLLBACK, SAVEPOINT).

Эти группы команд составляют основу работы с базами данных, обеспечивая полный цикл управления данными и их структурой, контроль доступа и поддержание целостности транзакций.

Last updated