Для добавления новых записей в таблицу базы данных (далее – БД) мы используем SQL выражение INSERT INTO.
Общий вид выражения имеет следующий вид:
INSERT INTO имя_таблицы (колонка1, колонка2 ...)
VALUES (значение1, значение2 ...);
Пример:
Предположим, что у нас есть пустая таблица developers, которая имеет следующий вид:
mysql> desc developers;
+------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| ID | int(11) | NO | PRI | NULL | |
| NAME | varchar(100) | NO | | NULL | |
| SPECIALTY | varchar(100) | YES | | NULL | |
| EXPERIENCE | int(11) | NO | | NULL | |
| SALARY | int(11) | YES | | NULL | |
+------------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
Теперь попробуем добавить в нашу таблицу пять записей.
Для этого мы выполним следующие команды:
INSERT INTO developers (ID, NAME, SPECIALTY, EXPERIENCE, SALARY)
VALUES (1, 'Eugene Suleimanov', 'Java', 2, 2000);
INSERT INTO developers (ID, NAME, SPECIALTY, EXPERIENCE, SALARY)
VALUES (2, 'Peter Romanenko', 'C++', 3, 3500);
INSERT INTO developers (ID, NAME, SPECIALTY, EXPERIENCE, SALARY)
VALUES (3, 'Andrei Komarov', 'JavaScript', 2, 2100);
INSERT INTO developers (ID, NAME, SPECIALTY, EXPERIENCE, SALARY)
VALUES (4, 'Konstantin Geiko', 'C#', 2, 2000);
INSERT INTO developers (ID, NAME, SPECIALTY, EXPERIENCE, SALARY)
VALUES (5, 'Asya Suleimanova', 'UI/UX', 2, 1800);
Мы также можем добавить шестую запись используя синтаксис приведённый ниже:
INSERT INTO developers
VALUES (6, 'Ludmila Geiko', 'UI/UX', 2, 1800);
После поочерёдного выполнения данного запроса наша таблица будет содержать такие данные:
mysql> SELECT * FROM developers;
+----+-------------------+------------+------------+--------+
| ID | NAME | SPECIALTY | EXPERIENCE | SALARY |
+----+-------------------+------------+------------+--------+
| 1 | Eugene Suleimanov | Java | 2 | 2000 |
| 2 | Peter Romanenko | C++ | 3 | 3500 |
| 3 | Andrei Komarov | JavaScript | 2 | 2100 |
| 4 | Konstantin Geiko | C# | 2 | 2000 |
| 5 | Asya Suleimanova | UI/UX | 2 | 1800 |
| 6 | Ludmila Geiko | UI/UX | 2 | 1800 |
+----+-------------------+------------+------------+--------+
6 rows in set (0.00 sec)
Мы также можем заполнить таблицу данными, используя таблицу, которая уже содержит данные с помощью запроса, который имеет общий вид, указанный ниже:
INSERT INTO имя_оригинальной_таблицы (колонка1, колонка2 ... )
SELECT колонка1, колонка2 ...
FROM имя_второй_таблицы
[WHERE условие];
Создадим таблицу developers_copy
CREATE TABLE developers_copy AS
SELECT ID, NAME, SPECIALTY, EXPERIENCE, SALARY FROM developers;
В результате мы получим таблицу developers_copy, которая имеет следующий вид:
mysql> DESC developers_copy;
+------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| ID | int(11) | NO | | NULL | |
| NAME | varchar(100) | NO | | NULL | |
| SPECIALTY | varchar(100) | YES | | NULL | |
| EXPERIENCE | int(11) | NO | | NULL | |
| SALARY | int(11) | YES | | NULL | |
+------------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
Теперь вставим в эту таблицу данные из оригинальной таблицы developers:
mysql> INSERT INTO developers_copy SELECT * FROM developers WHERE ID < 4;
Query OK, 3 rows affected (0.04 sec)
Records: 3 Duplicates: 0 Warnings: 0
После этого наша таблица developers_copy будет содержать следующие данные:
mysql> SELECT * FROM developers_copy;
+----+-------------------+------------+------------+--------+
| ID | NAME | SPECIALTY | EXPERIENCE | SALARY |
+----+-------------------+------------+------------+--------+
| 1 | Eugene Suleimanov | Java | 2 | 2000 |
| 2 | Peter Romanenko | C++ | 3 | 3500 |
| 3 | Andrei Komarov | JavaScript | 2 | 2100 |
+----+-------------------+------------+------------+--------+
3 rows in set (0.00 sec)
На этом мы заканчиваем изучение способов добавления данных в таблицы БД.
В следующей статье мы рассмотрим способ чтения данных из существующих таблиц в БД.