SQL INSERT INTO 语句(在表中插入)

SQL INSERT INTO 语句


INSERT INTO 语句用于向表中插入新的数据行。

SQL INSERT INTO 语法

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

第一个表单没有指定要插入数据的列的名称,只提供要插入的值,即可添加一行新的数据:

复制代码
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

第二种,如果要为表中的所有列添加值,则不需要在SQL查询中指定列名称。但是,请确保值的顺序与表中的列顺序相同。INSERT INTO语法如下所示:

复制代码
INSERT INTO table_name
VALUES (value1, value2, value3, ...);

演示数据库


在本教程中,我们将使用著名的 Northwind 示例数据库。

以下是"Customers" 表中的数据:

CustomerID CustomerName ContactName Address City PostalCode Country
87 Wartian Herkku Pirkko Koskitalo Torikatu 38 Oulu 90110 Finland
88 Wellington Importadora Paula Parente Rua do Mercado, 12 Resende 08737-363 Brazil
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

INSERT INTO 实例


假设我们想在"Customers"表中插入一个新行。

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

实例

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
87 Wartian Herkku Pirkko Koskitalo Torikatu 38 Oulu 90110 Finland
88 Wellington Importadora Paula Parente Rua do Mercado, 12 Resende 08737-363 Brazil
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
87 Wartian Herkku Pirkko Koskitalo Torikatu 38 Oulu 90110 Finland
88 Wellington Importadora Paula Parente Rua do Mercado, 12 Resende 08737-363 Brazil
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

使用另一个表填充一个表


您可以通过另一个表上的SELECT语句查询出来的字段值,然后将数据填充到本表中,条件是另一个表所查询的字段与本表要插入数据的字段是一一对应的。

复制代码
INSERT INTO first_table_name [(column1, column2, ... columnN)] 
SELECT column1, column2, ...columnN 
FROM second_table_name
[WHERE condition];
相关推荐
海边的椰子树2 小时前
非常方便的MySQL迁移数据ClickHouse工具
数据库·mysql·clickhouse·迁移
yongui478342 小时前
使用C#实现Excel实时读取并导入SQL数据库
数据库·c#·excel
ryy10255063192 小时前
Springboot+Mysql 图书管理系统【源码+sql】
spring boot·sql·mysql
JZC_xiaozhong2 小时前
分析型数据库 ClickHouse 在数据中台中的集成
大数据·数据库·clickhouse·架构·数据一致性·数据孤岛解决方案·数据集成与应用集成
航Hang*2 小时前
第3章:复习篇——第3节:数据查询与统计---题库
数据库·笔记·sql·学习·mysql·期末·复习
廋到被风吹走2 小时前
【数据库】【MySQL】事务隔离深度解析:MVCC 实现与幻读解决机制
android·数据库·mysql
Star Learning Python2 小时前
MySQL面试的基础知识
数据库·sql
知识分享小能手2 小时前
Oracle 19c入门学习教程,从入门到精通,Oracle管理工具 —— 知识点详解(3)
数据库·学习·oracle
aigcapi3 小时前
中转API哪家好?2026主流服务商横向测评+全场景选型指南
数据库·api
悟道|养家3 小时前
批量处理与向量化计算(8)
数据库·oracle·性能优化