✍️
炼码教程 - SQL 边学边练
  • License
  • 介绍 Introduction
    • 目录 Content
  • Level 1
    • Hello SQL
    • 简单的 SELECT 语句
    • 简单的 INSERT 语句
    • 简单的 UPDATE 语句
    • 简单的 DELETE 语句
  • Level 2
    • 简单的数据库和数据表操作
      • 创建数据库
      • 创建数据表
      • 删除数据表
      • 删除数据库
    • 约束
      • 主键约束
      • 自增长约束
    • 常见数据类型
  • Level 3
    • SELECT进阶
      • WHERE 条件子句
      • ORDER BY 与 LIMIT
      • SELECT DISTINCT
    • Function 函数
      • AVG()
      • COUNT()
      • MAX()
      • MIN()
      • SUM()
      • ROUND()
      • NULL()
  • Level 4
    • Level 4 时间
  • Level 5
    • Level 5 多表单联合
    • 外键
    • 别名
    • 多表联结
      • INNER JOIN
      • LEFT JOIN
      • RIGHT JOIN
      • OUTER JOIN
  • Level 6
    • Level 6 临时表单
    • GROUP BY
    • HAVING
    • 子查询
      • SELECT 语句中的子查询
      • INSERT 语句中的子查询
      • UPDATE 语句中的子查询
      • DELETE 语句中的子查询
      • 多行子查询
      • 多列子查询
      • HAVING 子句中的子查询
      • 内联视图子查询
  • Level 7
    • Level 7 索引
  • Level 8
    • Level 8 事务 Transaction
  • Level 9
    • Level 9 复杂的SQL查询
  • Level MAX
    • Level 10 变量和循环
  • 附录 Appendix
    • 数据类型参考手册
    • 函数 Function
    • 通配符
    • 演示数据库
    • common
    • Bug 001
Powered by GitBook
On this page
  • 1 INSERT INTO 实例
  • 练习题: 插入数据 Ⅰ
  • 2 在指定的列插入数据
  • 练习题:指定列插入数据

Was this helpful?

  1. Level 1

简单的 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');
Previous简单的 SELECT 语句Next简单的 UPDATE 语句

Last updated 4 years ago

Was this helpful?