Команда 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. Она позволяет добавлять как отдельные строки, так и большие объёмы данных из других таблиц, поддерживает гибкость при указании значений для конкретных столбцов и позволяет управлять данными с учётом ограничений и значений по умолчанию.