Команда INSERT INTO
используется в SQL для добавления новых строк в таблицу базы данных. Она позволяет вставлять значения в определённые столбцы таблицы, как вручную, так и путём копирования данных из других таблиц.
Основной синтаксис команды INSERT INTO
INSERT INTO имя_таблицы (столбец1, столбец2, ...) VALUES (значение1, значение2, ...);
Пояснение:
имя_таблицы
— имя таблицы, в которую будут добавляться данные.
(столбец1, столбец2, ...)
— список столбцов, в которые будут вставляться значения. Этот список необязателен, если вы вставляете значения во все столбцы таблицы.
VALUES (значение1, значение2, ...)
— список значений, которые вы хотите добавить. Порядок значений должен соответствовать порядку столбцов.
Пример использования INSERT INTO
Допустим, у нас есть таблица employees
со следующей структурой:
CREATE TABLE employees (
employee_id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER,
department TEXT DEFAULT 'Sales'
);
Чтобы добавить нового сотрудника в таблицу employees
, можно использовать команду INSERT INTO
следующим образом:
INSERT INTO employees (employee_id, name, age, department) VALUES (1, 'Alice', 30, 'Engineering');
Здесь добавляется новая строка с данными: идентификатором сотрудника 1
, именем Alice
, возрастом 30
и отделом Engineering
.
Варианты использования INSERT INTO
1. Вставка значений во все столбцы
Если нужно заполнить все столбцы таблицы, можно не указывать их имена, но порядок значений в VALUES
должен строго соответствовать порядку столбцов в таблице:
INSERT INTO employees VALUES (2, 'Bob', 25, 'Marketing');
Эта команда добавляет в таблицу employees
данные для всех столбцов в порядке: employee_id
, name
, age
, department
.
2. Вставка значений в некоторые столбцы
Если в таблицу нужно добавить значения только в определённые столбцы, можно указать только нужные столбцы. Столбцы, значения для которых не указаны, получат либо NULL
, либо значение по умолчанию (DEFAULT
), если оно задано.
INSERT INTO employees (employee_id, name) VALUES (3, 'Charlie');
В этом случае:
- Вставляется
employee_id = 3
и name = 'Charlie'
.
- Столбец
age
будет иметь значение NULL
, так как для него ничего не указано.
- Столбец
department
получит значение по умолчанию Sales
, заданное в структуре таблицы.
Вставка нескольких строк с помощью одной команды
Можно вставить сразу несколько строк, объединив их в одной команде:
INSERT INTO employees (employee_id, name, age, department) VALUES
(4, 'Diana', 28, 'Finance'),
(5, 'Edward', 22, 'HR');
Эта команда добавляет сразу две строки в таблицу employees
.
Вставка данных из другой таблицы
С помощью INSERT INTO
можно копировать данные из одной таблицы в другую. Например, если нужно перенести сотрудников из таблицы old_employees
в таблицу employees
, можно использовать следующий запрос:
INSERT INTO employees (employee_id, name, age, department)
SELECT employee_id, name, age, department FROM old_employees;
Здесь выполняется выборка данных из таблицы old_employees
, и результаты добавляются в таблицу employees
.
Важные моменты при использовании INSERT INTO
-
Соблюдение ограничений:
- Все данные, которые добавляются через
INSERT INTO
, должны соответствовать ограничениям таблицы. Например, если столбец name
имеет ограничение NOT NULL
, то попытка вставить в него значение NULL
приведет к ошибке.
- Первичный ключ (
PRIMARY KEY
) должен быть уникальным. Если employee_id
в таблице employees
уже существует, попытка вставить строку с таким же значением приведёт к ошибке.
-
Использование значений по умолчанию:
- Если для столбца установлено значение по умолчанию, то оно будет автоматически присвоено, если вы не укажете значение для этого столбца при вставке данных.
-
Автоматическая генерация значений:
- В некоторых СУБД (например, SQLite) столбцы с типом
INTEGER PRIMARY KEY
автоматически увеличивают значение для нового вставляемого значения, если оно не указано (автоинкремент).
-
Вставка значений NULL:
- Если значение для какого-то столбца не указано в
INSERT INTO
, то в этом столбце будет записано NULL
, если не установлено значение по умолчанию или не запрещено ограничением NOT NULL
.
Заключение
Команда INSERT INTO
— один из основных инструментов для добавления данных в таблицы SQL. Она позволяет добавлять как отдельные строки, так и большие объёмы данных из других таблиц, поддерживает гибкость при указании значений для конкретных столбцов и позволяет управлять данными с учётом ограничений и значений по умолчанию.