简单的 INSERT 语句

在学习了怎么从表中查询数据后,我们如果希望自己向数据中添加新的数据如何操作呢?这就需要用到我们的INSERT INTO语句了。

INSERT INTO 语句用于向表中插入新记录。

语法

INSERT INTO 语句可以有两种编写形式。

第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:

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

第二种形式需要指定列名及被插入的值:

INSERT INTO table_name (column_name,column_name,column_name,...)
VALUES (value1,value2,value3,...);

其中

value1,value2,……为对应插入数据表中的值,如果指定了列的名称,每个值需要插入对应的列,否则,需要按照表中列名的顺序书写插入的值

1 INSERT INTO 实例

假设我们要向 "courses" 表中插入一个新行。

我们可以使用下面的 SQL 语句:

INSERT INTO courses VALUES (13, 'Python','400','2021-05-23',3);

执行输出结果

mysql> INSERT INTO courses VALUES (13, 'Python','400','2021-05-23',3);
Query OK, 1 row affected (0.01 sec)

mysql> SELECT * FROM courses;
+----+-------------------------+----------------+-------------+------------+
| id | name                    | student_count | created_at | teacher_id |
+----+-------------------------+----------------+-------------+------------+
|  1 | Senior Algorithm        |             88 | 2020-06-01  |          4 |
|  2 | System Design           |            135 | 2020-07-18  |          3 |
|  3 | Django                  |             78 | 2020-02-29  |          3 |
|  4 | Web                     |             34 | 2020-04-22  |          4 |
|  5 | Big Data                |             70 | 2020-09-11  |          1 |
|  6 | Artificial Intelligence |            166 | 2018-05-13  |          3 |
|  7 | Java P6+                |             78 | 2019-01-19  |          3 |
|  8 | Data Analysis           |             50 | 2019-07-12  |          1 |
| 10 | Object Oriented Design  |             30 | 2020-08-08  |          4 |
| 12 | Dynamic Programming     |            200 | 2018-08-18  |          1 |
| 13 | Python                  |            400 | 2021-05-23  |          3 |
+----+-------------------------+----------------+-------------+------------+
11 rows in set (0.00 sec)

练习题: 插入数据 Ⅰ

题目描述,向课程表courses插入一条新的课程信息,课程id设置为14,课程名称name设置为SQL,上课学生人数student_num设置为200,开课日期created_at设置为'2021-02-25',上课老师id为1。

-- write your sql here
INSERT INTO `courses` VALUES (14, 'SQL', 200, '2021-02-25', 1);

2 在指定的列插入数据

我们也可以在指定的列插入数据。

下面的 SQL 语句将插入一个新行,但是只在 "name"、"student_number" 、'create_time'和 "teacher_id" 列插入数据(id 字段会自动更新):

INSERT INTO courses (name, student_count, created_at, teacher_id) VALUES ('Flash Sale','100','2018-01-01',5);

执行输出结果

mysql> INSERT INTO courses (name, student_count, created_at, teacher_id) VALUES ('Flash Sale','100','2018-01-01',5);
Query OK, 1 row affected (0.01 sec)

mysql> SELECT * FROM courses;
+----+-------------------------+----------------+-------------+------------+
| id | name                    | student_count | created_at | teacher_id |
+----+-------------------------+----------------+-------------+------------+
|  1 | Senior Algorithm        |             88 | 2020-06-01  |          4 |
|  2 | System Design           |            135 | 2020-07-18  |          3 |
|  3 | Django                  |             78 | 2020-02-29  |          3 |
|  4 | Web                     |             34 | 2020-04-22  |          4 |
|  5 | Big Data                |             70 | 2020-09-11  |          1 |
|  6 | Artificial Intelligence |            166 | 2018-05-13  |          3 |
|  7 | Java P6+                |             78 | 2019-01-19  |          3 |
|  8 | Data Analysis           |             50 | 2019-07-12  |          1 |
| 10 | Object Oriented Design  |             30 | 2020-08-08  |          4 |
| 12 | Dynamic Programming     |            200 | 2018-08-18  |          1 |
| 13 | Python                  |            400 | 2021-05-23  |          3 |
| 14 | Flash Sale              |            100 | 2018-01-01  |          5 |
+----+-------------------------+----------------+-------------+------------+
12 rows in set (0.00 sec)

练习题:指定列插入数据

题目描述:向教师表teachers插入一条教师信息,教师姓名name为 'XiaoFu',邮箱email为 XiaoFu@lintcode.com,年龄age为20,国家country为 'CN'

-- write your sql here
INSERT INTO teachers (name,email,age,country) VALUES ('XiaoFu',20,'XiaoFu@lintcode.com','CN');

Last updated

Was this helpful?