INSERT — вставка подмножества значений в таблицу.
Есть несколько способов добавить данные в таблицу с помощью команды INSERT:
Представим, что у нас есть таблица Users (Пользователи).
1 2 3 4 5 6 7 |
CREATE TABLE Users( ID INT PRIMARY KEY NOT NULL, Name VARCHAR(20), Login VARCHAR(20), PasswordUser VARCHAR(20), Experience INT ); |
Нам необходимо заполнить её данными. Рассмотрим каждый метод.
1. Значения столбцов представляют собой литеральные константы. В этом случаи для каждой строки будет использоваться отдельная команда INSERT.
1 |
INSERT INTO Users value(1, 'Alice', 'alice98','123', 5); |
INSERT INTO — команда для вставки значений в таблицу.
Users — таблица, в которую будут добавлены значения.
value — вспомогательная команда.
В скобочках указаны значения каждого поля, которые добавятся в таблицу.
При таком синтаксисе важно, чтобы порядок значений был таким же, как порядок столбцов в таблице. Чтобы изменить порядок можно использовать следующий синтаксис:
1 |
INSERT INTO Users(Name, PasswordUser, ID, Login, Experience) value('Max', '321', 2, 'max01', 1); |
2. Значения столбцов будут являться итогом подзапроса. В таблицу будет вставлено столько строк, сколько вернется подзапросом.
Добавим ещё одну таблицу Bonus (Бонус).
1 2 3 4 5 6 7 |
CREATE TABLE Bonus( ID INT PRIMARY KEY NOT NULL, Name VARCHAR(20), Login VARCHAR(20), PasswordUser VARCHAR(20), Experience INT ); |
В неё будет добавлена информация о тех пользователях, чей стаж в команде более 2 лет.
1 2 |
INSERT INTO Bonus SELECT * FROM Users WHERE Experience > 2; |
Данные добавляться в таблицу Bonus, с помощью SELECT — запроса возьмем все данные из таблицы Users и заполним новую таблицу теми данными, которые будут удовлетворять условию.
Если необходимо вставить значение NULL, указываем его как обычное значение.
1 |
INSERT INTO Users value(1, 'Alice', 'alice98','123', NULL); |