html如何在表中添加数据,SQL INSERT INTO 语句(在表中插入)

本文详细介绍了SQL INSERT INTO语句的用法,包括如何向表中插入新数据行,以及如何指定插入的列和值。通过Northwind数据库的Customers表作为示例,展示了如何插入完整数据行和部分数据行,并解释了自动递增字段的处理方式。此外,还提到了使用另一个表的数据填充当前表的可能性。

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

2727d07ccfc700fe836b3581f0ef4924.png

注意到了吗?我们没有将任何号码插入 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];

### 如何用SQL语句插入数据SQL中,`INSERT INTO` 语句用于向数据添加新记录。以下是几种常见的插入数据的方法及其语法结构: #### 方法一:插入一条完整数据 当需要向中的所有字段插入数据时,可以省略字段名列,直接提供值列。需要注意的是,值的顺序必须与中字段定义的顺序一致。 ```sql INSERT INTO 名 VALUES (值1, 值2, ..., 值n); ``` 例如,假设有一个名为 `Users` 的,包含 `id`, `name`, 和 `age` 三个字段,则可以使用以下语句插入数据[^3]: ```sql INSERT INTO Users VALUES (1, 'Alice', 20); ``` #### 方法二:插入指定字段的数据 如果只需要为部分字段插入数据,可以明确指定字段名,并为这些字段提供对应的值。 ```sql INSERT INTO (字段1, 字段2, ..., 字段n) VALUES (值1, 值2, ..., 值n); ``` 例如,仅插入 `name` 和 `age` 字段的数据,可以这样写[^3]: ```sql INSERT INTO Users (name, age) VALUES ('Bob', 25); ``` #### 方法三:一次插入多条数据 为了提高效率,可以一次性插入多条记录。通过在 `VALUES` 子句中列出多个值组,每组值用逗号分隔。 ```sql INSERT INTO (字段1, 字段2, ..., 字段n) VALUES (值1_1, 值1_2, ..., 值1_n), (值2_1, 值2_2, ..., 值2_n), ..., (值m_1, 值m_2, ..., 值m_n); ``` 例如,向 `Users` 插入两条记录: ```sql INSERT INTO Users (name, age) VALUES ('Charlie', 30), ('David', 35); ``` #### 注意事项 - 插入的值必须与中字段的数据类型相匹配,否则会导致错误[^3]。 - 如果字段有长度限制(如 `VARCHAR(50)`),确保插入的字符串不超过该长度,以避免数据溢出[^3]。 - 在某些数据库系统中,如 MySQL,可以通过编程语言(如 Python)连接数据库并执行 `INSERT INTO` 语句。例如,使用 `mysql.connector` 库可以实现从 Python 程序中插入数据[^2]。 ```python from mysql import connector try: config = { 'host': 'MySQL数据库服务器地址', 'port': 3306, 'user': '数据库用户名', 'password': '数据库密码', 'database': '数据库名称', 'charset': 'utf8' } con = connector.connect(**config) cursor = con.cursor() sql = ("INSERT INTO Users(name, age) VALUES ('Eve', 22)") cursor.execute(sql) con.commit() print(cursor.lastrowid) cursor.close() con.close() except connector.Error as e: print(e) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值