SQL INSERT INTO 语句


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


SQL INSERT INTO 语句

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

SQL INSERT INTO 语法

INSERT INTO 语句可以有两种编写形式。
第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:
INSERT INTO table_name
VALUES (value1,value2,value3,…);
第二种形式需要指定列名及被插入的值:
INSERT INTO table_name (column1,column2,column3,…)
VALUES (value1,value2,value3,…);


演示数据库

在本教程中,我们将使用 RUNOOB 样本数据库。
下面是选自 “Websites” 表的数据:
QQ截图20220620143013.png

INSERT INTO 实例

假设我们要向 “Websites” 表中插入一个新行。
我们可以使用下面的 SQL 语句:

实例

QQ截图20220620143115.png
执行以上 SQL,再读取 “Websites” 表,数据如下所示:
SQL INSERT INTO - 图3

SQL INSERT INTO - 图4 您是否注意到,我们没有向 id 字段插入任何数字?
id 列是自动更新的,表中的每条记录都有一个唯一的数字。

在指定的列插入数据

我们也可以在指定的列插入数据。
下面的 SQL 语句将插入一个新行,但是只在 “name”、”url” 和 “country” 列插入数据(id 字段会自动更新):

实例

QQ截图20220620143142.png
执行以上 SQL,再读取 “Websites” 表,数据如下所示:
SQL INSERT INTO - 图6

没有指定要插入数据的列名的形式需要列出插入行的每一列数据:
INSERT INTO table_name VALUES (value1,value2,value3,…);

insert into select 和select into from 的区别
insert into scorebak select from socre where neza=’neza’ —插入一行,要求表scorebak 必须存在 select into scorebak from score where neza=’neza’ —也是插入一行,要求表scorebak 不存在