INSERT语句

INSERT 语句向表中添加新行,以下是 INSERT 语句的最基本形式:

INSERT INTO table_name (column_list)

VALUES (value_list);

首先, table_name 指定要插入的表的名称。 通常,通过模式名称引用表名称,例如 production.products ,其中 production 是模式名称, products 是表名称。

其次, column_list 指定要在其中插入数据的一个或多个列的列表。必须将列列表括在括号中并用逗号 分隔列。

如果列在列列表中没有出现,则SQL Server必须能够提供插入值,否则无法插入行。

SQL Server自动对表中可用的列使用以下值,但不会出现在 INSERT 语句的列列表中:

如果列具有[IDENTITY]属性,则为下一个增量值。

如果列具有指定的默认值,则为默认值。

如果列的数据类型是时间戳数据类型(timestamp),则默认为当前时间戳值。

如果列可以为 NULL 值,则使用 NULL 。

第三,要在 VALUES 子句中提供插入的值列表。 列列表中的每列必须在值列表中具有相应的值。 此外, 必须将值列表括在括号中。

创建一个名为 promotions 的新表:

CREATE TABLE sales.promotions (

promotion_id INT PRIMARY KEY IDENTITY (1, 1),

 promotion_name VARCHAR (255) NOT NULL,

discount NUMERIC (3, 2) DEFAULT 0,

start_date DATE NOT NULL,

 expired_date DATE NOT NULL );

在sales模式中创建了一个名为promotions的新表。 promotions表有五列,包括:促销标识号 (promotion_id),名称(name),折扣(discount),开始日期(start_date)和过期日期 (expired_date)。

promotion_id是标识列,因此当向表中添加新行时,SQL Server会自动填充其值。

基本INSERT

以下语句将新行插入 promotions 表:

INSERT INTO sales.promotions (

promotion_name,

discount,

start_date, expired_date

)

VALUES (

'2022儿童节礼品',

0.25,

 '20220601',

'20220604' );

在此示例中,为 promotions 表中的四列指定了值。但没有为 promotion_id 列指定值,因为SQL Server会自动为此列提供值。

如果 INSERT 语句成功执行,将返回插入的行数。

(1 row affected)

要验证插入操作结果

SELECT * FROM

sales.promotions;

将显式值插入标识列

通常,不为标识列指定值,因为SQL Server将自动提供值。但是,在某些情况下,可能希望在标识列中 插入值,例如数据迁移

要为标识列插入显式值,必须首先执行以下语句:

SET IDENTITY_INSERT table_name ON;

要关闭标识插入,请使用类似的语句:

SET IDENTITY_INSERT table_name OFF;

在 promotion 表中插入标识列的值:

SET IDENTITY_INSERT sales.promotions ON;

INSERT INTO sales.promotions (

promotion_id,

 promotion_name,

discount,

start_date,

 expired_date )

VALUES (

2, '2022春季促销',

 0.25, '20220201',

 '20220301' );

SET IDENTITY_INSERT sales.promotions OFF;

Insert多行

要一次向表中添加多行,请使用以下形式的 INSERT 语句:

INSERT INTO table_name (column_list)

VALUES

 (value_list_1),

(value_list_2),

...

 (value_list_n);

在此语法中,不使用单个值列表,而是使用多个以逗号分隔的值列表进行插入。

使用此形式的 INSERT 语句,一次可以插入的行数为 1000 行

如果尚未创建 promotions 表,则可以使用以下 CREATE TABLE 语句:

drop table if exists sales.promotions;

CREATE TABLE sales.promotions (

promotion_id INT PRIMARY KEY IDENTITY (1, 1),

 promotion_name VARCHAR (255) NOT NULL, discount NUMERIC (3, 2) DEFAULT 0,

 start_date DATE NOT NULL,

expired_date DATE NOT NULL );

以下语句将多个行添加到 promotions 表:

-- 先删除表中的所有记录

DELETE FROM sales.promotions;

-- 开始插入

INSERT INTO sales.promotions (

promotion_name,

discount,

start_date,

expired_date )

VALUES (

 '2022夏季促销',

 0.15,

 '20220601',

'20220901' ),

( '2022秋季促销',

 0.20,

 '20221001',

'20221101' ),

( '2022冬季促销',

0.25,

'20221201',

 '20230101' );

以上就是我的分享,新手上道,请多多指教。

如果有更好的方法或不懂得地方欢迎在评论区教导和提问喔!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值