Каков синтаксис оператора INSERT в SQL?

«Каков синтаксис оператора INSERT в SQL?» — вопрос из категории Базы данных и SQL, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Оператор INSERT используется для добавления новых строк в таблицу. Его базовый синтаксис:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

Почему важно указывать столбцы? Явное перечисление столбцов делает запрос устойчивым к изменениям структуры таблицы и предотвращает ошибки при несовпадении порядка значений.

Примеры:

  1. Вставка одной строки:

    INSERT INTO users (id, username, email, created_at)
    VALUES (10, 'alex_ivanov', 'alex@example.com', CURRENT_TIMESTAMP);
  2. Вставка нескольких строк за один запрос:

    INSERT INTO products (name, price, category_id)
    VALUES 
        ('Keyboard', 49.99, 1),
        ('Mouse', 25.50, 1),
        ('Monitor', 299.99, 2);
  3. Вставка данных из результата другого запроса (INSERT ... SELECT):

    -- Копирование архивных заказов в отдельную таблицу
    INSERT INTO orders_archive (id, user_id, total, status)
    SELECT id, user_id, total, status
    FROM orders
    WHERE created_at < '2023-01-01';