SQL INSERT INTO 语句详解:插入新记录、多行插入和自增字段

小万哥
• 阅读 266

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

INSERT INTO 语法

可以以两种方式编写INSERT INTO语句:

  1. 指定要插入的列名和值:
INSERT INTO 表名 (列1, 列2, 列3, ...)
VALUES (值1, 值2, 值3, ...);
  1. 如果要为表的所有列添加值,则无需在SQL查询中指定列名。但是,请确保值的顺序与表中的列顺序相同。在这种情况下,INSERT INTO 语法如下:
INSERT INTO 表名
VALUES (值1, 值2, 值3, ...);

演示数据库

以下是示例中使用的Customers表的一部分:

CustomerID CustomerName ContactName Address City PostalCode Country
89 White Clover Markets Karl Jablonski 305 - 14th Ave. S. Suite 3B Seattle 98128 USA
90 Wilman Kala Matti Karttunen Keskuskatu 45 Helsinki 21240 Finland
91 Wolski Zbyszek ul. Filtrowa 68 Walla 01-012 Poland

插入示例

以下SQL语句将在"Customers"表中插入一条新记录:

INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway');

此时,"Customers"表的选择将如下所示:

CustomerID CustomerName ContactName Address City PostalCode Country
89 White Clover Markets Karl Jablonski 305 - 14th Ave. S. Suite 3B Seattle 98128 USA
90 Wilman Kala Matti Karttunen Keskuskatu 45 Helsinki 21240 Finland
91 Wolski Zbyszek ul. Filtrowa 68 Walla 01-012 Poland
92 Cardinal Tom B. Erichsen Skagen 21 Stavanger 4006 Norway

您是否注意到我们没有在CustomerID字段中插入任何数字? CustomerID列是一个自增字段,当插入新记录时会自动生成。

仅在指定列中插入数据

也可以只在特定列中插入数据。

以下SQL语句将插入一条新记录,但仅在"CustomerName"、"City"和"Country"列中插入数据(CustomerID将自动更新):

INSERT INTO Customers (CustomerName, City, Country)
VALUES ('Cardinal', 'Stavanger', 'Norway');

此时,"Customers"表的选择将如下所示:

CustomerID CustomerName ContactName Address City PostalCode Country
89 White Clover Markets Karl Jablonski 305 - 14th Ave. S. Suite 3B Seattle 98128 USA
90 Wilman Kala Matti Karttunen Keskuskatu 45 Helsinki 21240 Finland
91 Wolski Zbyszek ul. Filtrowa 68 Walla 01-012 Poland
92 Cardinal null null Stavanger null Norway

插入多行

还可以在一条语句中插入多行。

要插入多行数据,可以使用相同的INSERT INTO语句,但包含多个值:

INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES
('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway'),
('Greasy Burger', 'Per Olsen', 'Gateveien 15', 'Sandnes', '4306', 'Norway'),
('Tasty Tee', 'Finn Egan', 'Streetroad 19B', 'Liverpool', 'L1 0AA', 'UK');

请确保在每组值之间用逗号,分隔。

此时,"Customers"表的选择将如下所示:

CustomerID CustomerName ContactName Address City PostalCode Country
89 White Clover Markets Karl Jablonski 305 - 14th Ave. S. Suite 3B Seattle 98128 USA
90 Wilman Kala Matti Karttunen Keskuskatu 45 Helsinki 21240 Finland
91 Wolski Zbyszek ul. Filtrowa 68 Walla 01-012 Poland
92 Cardinal Tom B. Erichsen Skagen 21 Stavanger 4006 Norway
93 Greasy Burger Per Olsen Gateveien 15 Sandnes 4306 Norway
94 Tasty Tee Finn Egan Streetroad 19B Liverpool L1 0AA UK

最后

为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding,或者扫描下方二维码,关注公众号,即可获取最新文章。

看完如果觉得有帮助,欢迎点赞、收藏关注

SQL INSERT INTO 语句详解:插入新记录、多行插入和自增字段

点赞
收藏
评论区
推荐文章
风斗 风斗
3年前
MySQL8.0 json 使用 类型 查询 函数_denglei的博客
一,对记录的操作1.创建有json字段的表创建表CREATETABLEt_json(idINTPRIMARYKEY,snameVARCHAR(20),infoJSON);2.插入记录插入含有json数组的记录INSERTINTOt_json(id,sname,info)VAL
Wesley13 Wesley13
3年前
SQL 语句规范
一、基本TSQL语句程序中一般使用的基本sql语句模式InsetInsert into 表名 (列名1,列名2,列名3,...)values  (值1,值2,值3,...)deleteDeletefromwhere列名1值1and列名2值2and列名3值3...
待兔 待兔
3年前
PostgreSQL语法、连接
1.语法1.插入数据(INSERT语句)在PostgreSQL中,INSERT查询用于在表中插入新行。可以一次插入单行或多行到表中。语法:INSERTINTOTABLE_NAME(column1,column2,column3,...columnN)VALUES(value1,value2,v
Wesley13 Wesley13
3年前
MySQL(2)
给字段添加数据(记录)  添加一条记录  insertinto表名(字段)value(值)  !(https://oscimg.oschina.net/oscnet/3ad38f11c49a47006aeba36b573da0afd8d.png)  添加不指定字段名的语法  insertinto表名value(值1,值2)  
Wesley13 Wesley13
3年前
135 MySQL子查询
\TOC\一、子查询的概念将一条sql语句执行的结果作为另一个sql语句的条件二、子查询的规则以下是基于对表的增删改查操作的1.增数据时:insertinto表名select子查询注解:对一个表插入数据时,插入的数据可以是另外一个sql
Wesley13 Wesley13
3年前
MySQL 表的增删查改
一、插入数据1\.INSERT...VALUES...INSERTINTO<表名<列名1,…<列名nVALUES(值1)…,(值n);针对特定字段添加数据:mysqlinsertintous
Wesley13 Wesley13
3年前
Mysql之数据操作
数据的增删改查:增:insertinto表名values();删:物理删除:deletefrom表名where条件;逻辑删除;改:update表名set列1值1,列2值2...where条件;查:全查:select\from数据表名;指定条件查:select\fr
Wesley13 Wesley13
3年前
MYsql客户端图形化工具第一天
客户端图形化工具:SQLyog   DML:增删改表中数据(重点)    1.添加数据   \语法:      \insertinto表名(列名1,列名2,,,,列名n)   values(表1,表2,,表n);         \注意:            1.列名和值一一对应 
Wesley13 Wesley13
3年前
mysql 插入数据
简单用法:insertintotb\_name(字段1,字段2,.........)values(值1,值2,.....)注意,字段个数必须和值的个数一致。字符用引号引起来,数字不用,插入空值使用null批量插入:insertintotb\_name(字段1,字段2,.........)values(值1,值2,.....
小万哥 小万哥
10个月前
SQL PRIMARY KEY 约束- 唯一标识表中记录的关键约束
SQLNOTNULL约束SQLNOTNULL约束用于强制确保列不接受NULL值。这意味着该字段始终包含一个值,而不允许插入新记录或更新记录时不提供此字段的值。在CREATETABLE时使用SQLNOTNULL以下SQL确保在创建"Persons"表时,“I