SQL Insert
1. 定义
维基百科: Insert
指令用于向数据表中。
编程之家解释: Insert,传闻中增删查改中的增
,是向数据表中写数据的主要途径。
2. 前言
本小节,我们将一起学习 Insert
。
使用 Insert 插入数据可分为普通插入和批量插入两类,本小节将分别介绍这两类插入操作。
本小节测试数据如下,请先在中执行:
DROP TABLE IF EXISTS imooc_user;CREATE TABLE imooc_user( username varchar(), age int);
3. 普通插入
普通情况下,Insert 插入的数据一般为一条。
其语法如下:
INSERT INTO [table_name] ([col1], [col2]) VALUES([val1], [val2]);
其中table_name
是待插入数据表,col
是字段,val
是待插入字段值,数字 1、2 表示多个字段。
请书写 语句,向imooc_user
数据表中插入一条记录,username
为pedro
,age
为23
。
分析:
根据插入语法写出语句即可。
语句:
INSERT INTO imooc_user(username,age) VALUES('pedro',);
插入成功后,数据表信息如下:
+----------+-----+ | username | age | +----------+-----+ | pedro | 23 | +----------+-----+
imooc_user 共有 username 和 age 两个字段,在插入时,如果插入的数据是全字段,那么可以省略前面的 col 。
省略后的语法如下:
INSERT INTO [table_name] VALUES([val1], [val2]);
因此上述例子的答案还可以这样写:
INSERT INTO imooc_user VALUES('pedro',);
请书写 语句,向imooc_user
数据表中插入一条记录,username
为pedro
。
分析:
根据插入语法写出语句即可。
语句:
INSERT INTO imooc_user(username) VALUES('pedro');
插入成功后,数据表信息如下:
+----------+--------+ | username | age | +----------+--------+ | pedro | <null> | +----------+--------+
注意: 如果 age 字段有 NOT NULL 约束,在只插入 username 的情况下,该次插入会报错。
4. 批量插入
除了普通插入外,也提供了批量插入来一次性插入多条记录。
批量插入数据的语法如下:
INSERT INTO [table_name] ([col1], [col2]) VALUES ([val1], [val2]),([val1], [val2]);
批量插入与普通插入的区别在于,VALUES
关键字后面接受多个字段,每个()
代表字段,字段会一条记录
。
请书写 语句,向imooc_user
表中插入两条记录,第一条记录username
为pedro
,age
为23
;第二条记录username
为mike
,age
为18
。
分析:
根据批量插入语法写出语句即可。
语句:
INSERT INTO imooc_user(username,age) VALUES('pedro',),('mike',);
插入成功后,数据表信息如下:
+----------+-----+ | username | age | +----------+-----+ | pedro | 23 | | mike | 18 | +----------+-----+
5. 总结
Insert 是数据表数据的主要方式,语法简单,作用却大,请多加练习。
并不是每个 RDBMS 都批量插入 ,批量插入的移植性并不好,如果你使用的,请将它改为多个普通插入。