Назад к вопросам
Junior
72
questionbank

Что вы знаете о DML и DDL?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

DML (Data Manipulation Language) и DDL (Data Definition Language) – это подмножества SQL.

DDL (Data Definition Language) используется для определения (создания, изменения, удаления) структуры базы данных и ее объектов (таблиц, индексов, представлений и т.д.). Операции DDL не являются транзакционными и не могут быть отменены (ROLLBACK).

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

  • CREATE: Создание объектов базы данных.
    -- Создание таблицы users
    CREATE TABLE users (
        id INT PRIMARY KEY, // Первичный ключ
        username VARCHAR(50) UNIQUE, // Уникальное имя пользователя
        email VARCHAR(100)
    );
    
  • ALTER: Изменение структуры существующих объектов базы данных.
    -- Добавление столбца last_login к таблице users
    ALTER TABLE users
    ADD last_login TIMESTAMP;
    
  • DROP: Удаление объектов базы данных.
    -- Удаление таблицы users
    DROP TABLE users;
    
  • TRUNCATE: Удаление всех строк из таблицы. Быстрее, чем DELETE, и не логируется построчно.
    -- Удаление всех строк из таблицы users
    TRUNCATE TABLE users;
    
  • RENAME: Переименование объекта базы данных.
    -- Переименование таблицы users в app_users
    RENAME TABLE users TO app_users;
    

DML (Data Manipulation Language) используется для управления (вставки, обновления, удаления, выборки) данными, хранящимися в объектах базы данных. Операции DML являются транзакционными и могут быть отменены (ROLLBACK).

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

  • SELECT: Выборка данных из одной или нескольких таблиц.
    -- Выборка всех пользователей
    SELECT * FROM users;
    
    -- Выборка пользователя по id
    SELECT username, email FROM users WHERE id = 1;
    
  • INSERT: Вставка новых строк в таблицу.
    -- Вставка нового пользователя
    INSERT INTO users (id, username, email)
    VALUES (1, 'john_doe', 'john@example.com');
    
  • UPDATE: Изменение существующих данных в таблице.
    -- Обновление email пользователя с id = 1
    UPDATE users
    SET email = 'john.doe@newdomain.com'
    WHERE id = 1;
    
  • DELETE: Удаление строк из таблицы.
    -- Удаление пользователя с id = 1
    DELETE FROM users WHERE id = 1;
    

Основные отличия:

Характеристика DDL (Data Definition Language) DML (Data Manipulation Language)
Назначение Определение/изменение структуры БД Управление данными в БД
Отмена (ROLLBACK) Нет возможности отменить Есть возможность отменить
Влияние Изменяет схему БД Изменяет содержимое БД
Команды CREATE, ALTER, DROP, TRUNCATE, RENAME SELECT, INSERT, UPDATE, DELETE

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