sql insert html,SQL Insert语句

在本教程中,我们将学习如何使用SQL INSERT语句来将数据插入表中。

1. SQL INSERT语句简介

SQL提供了INSERT语句,用于将一行或多行插入表中。 INSERT语句用于:

向表中插入一行

向表中插入多行

将行从一个表复制到另一个表中。

我们将在以下部分中来看看INSERT语句的每个用法。

2.向表中插入一行

要向表中插入一行,请使用INSERT语句的以下语法。

INSERT INTO table1 (column1, column2,...)

VALUES

(value1, value2,...);

在表中插入新行时,应注意以下几点:

首先,值的数量必须与列数相同。 此外,列和值必须是对应的,因为数据库系统将通过它们在列表中的相对位置来匹配它们。

其次,在添加新行之前,数据库系统检查所有完整性约束,例如,外键约束,主键约束,检查约束和非空约束。如果违反了其中一个约束,数据库系统将发出错误并终止语句,而不向表中插入任何新行。

如果值序列与表中列的顺序匹配,则无需指定列。 请参阅以下INSERT语句,该语句省略INSERT INTO子句中的列列表。

INSERT INTO table1

VALUES

(value1, value2,...);

但是,这不是一个好的做法。

如果在插入新行时未在INSERT语句中指定列及其值,则列将采用表结构中指定的默认值。 默认值可以是0,序列中的下一个整数值,当前时间,NULL值等。请参阅以下语句:

INSERT INTO (column1, column3)

VALUES

(column1, column3);

在此语法中,column2将采用默认值。

2. 在表中插入一行记录

我们将使用示例数据库中的employees和dependents表来演示如何向表中插入一行。

e04cd6df3b49fadff66a187d1dbc651b.png

要在dependents表中插入新行。参考以下语句 -

INSERT INTO dependents (

first_name,

last_name,

relationship,

employee_id

)VALUES('Max','Su','Child',176);

我们没有在INSERT语句中使用department_id列,因为dependent_id列是自动增量列,因此,当插入新行时,数据库系统使用下一个整数作为默认值。

employee_id列是将dependents表链接到employees表的外键。 在添加新行之前,数据库系统会检查employees表的employee_id列中是否存在值:176,以确保不违反外键约束。

如果成功插入行,则数据库系统返回受影响的行数。

可以使用以下SELECT语句检查是否已成功插入行。

SELECT

*

FROM

dependents

WHERE

employee_id = 176;

执行上面查询语句,得到以下结果 -

+--------------+------------+-----------+--------------+-------------+

| dependent_id | first_name | last_name | relationship | employee_id |

+--------------+------------+-----------+--------------+-------------+

| 31 | Max | Su | Child | 176 |

+--------------+------------+-----------+--------------+-------------+

1 rows in set

3. 向表中插入多行记录

要使用单个INSERT语句插入多行,请使用以下构造:

INSERT INTO table1

VALUES

(value1, value2,...),

(value1, value2,...),

(value1, value2,...),

...;

例如,要在dependents表中插入两行,请使用以下查询。

INSERT INTO dependents (

first_name,

last_name,

relationship,

employee_id

)

VALUES

(

'Avg',

'Lee',

'Child',

192

),

(

'Michelle',

'Lee',

'Child',

192

);

数据库系统返回2行受影响,可以使用以下语句验证结果。

SELECT

*

FROM

dependents

WHERE

employee_id = 192;

4. 从其他表复制行记录

可以使用INSERT语句查询来自一个或多个表的数据,并将其插入另一个表中,如下所示:

INSERT INTO table1 (column1, column2)

SELECT

column1,

column2

FROM

table2

WHERE

condition1;

在此语法中,使用SELECT(称为子选择)而不是VALUES子句。 子选择可以包含连接,以便可以组合来自多个表的数据。 执行语句时,数据库系统在插入数据之前首先评估子选择。

假设有一个名为dependents_archive的表,其结构与dependents表具有相同的结构。 以下语句将dependents表中的所有行复制到dependents_archive表中。

INSERT INTO dependents_archive

SELECT

*

FROM

dependents;

您可以使用以下语句验证插入操作是否成功 -

SELECT

*

FROM

dependents_archive;

通过上面的示例学习,我们已经知道如何使用SQL INSERT语句将一行或多行插入表中。

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值