SQL 语句继续学习之记录三

一,数据的插入(insert 语句的使用方法)

使用insert语句可以向表中插入数据(行)。原则上,insert语句每次执行一行数据的插入。

列名和值用逗号隔开,分别扩在()内,这种形式称为清单。

对表中所有列进行insert 操作时可以省略表名后的列清单。

插入null时需要在values子句的值清单中写入null。

可以为表中的列设定默认值(初始值)。默认值可以通过在create table语句中,为列设置default约束来设定。

插入默认值可以通过两种方式实现。即在insert语句的values子句中指定default关键字(显示方法),或省略列清单(隐式方法)。

使用 insert ...select 可以从其他表中复制数据。

1,什么是insert

通过create table 语句创建出来的表,可以将其比作一个空空如也的箱子,只有把数据装入到箱子中,它才能被称为数据库。

为了学习insert语句,我们创建一张新表,除了为hanbai_tanka 列(销售单价)设置了Default ) 的约束外,其他与之前的完全相同。

如上,仅仅创建了一张空表,还没有插入数据

2,insert 语句的基本语法

复制代码
INSERT into <表名> (列1,列2,列3,...) values (值1,值2,值3,...);

由于shohin_id, shohin_mei,shohin_bunrui 列是字符型,所以插入的数据需要加单引号,torokubi是日期类型,也需要加单引号。

列清单------ (shohin_id,shohin_mei,shohin_bunrui,hanbai_tanka,shiire_tanka,torokubi)

值清单------('0001','T恤衫','衣服',1000,500,'2009-09-20')

注意,值清单中列的个数需和列清单中列的数量一致,否则语句错误。

并且,原则上,执行一次insert语句会插入一行数据。因此,插入多行时,通常需要循环执行所需次数的insert语句。但是关于多行insert,在部份DBMS中,支持如下多行insert 语句

复制代码
insert into shoinIns values 
('0002','打孔器','办公用品',500,320,'2009-09-11'),
('0003','运动T恤','衣服',4000,2800,null),
('0004','菜刀','厨房用具',3000,2800,'2009-09-20');

如上,对表进行全列insert时,可以省略表名后的列清单。这时values子句的值会默认按照从左到右的顺序赋给每一列。

3,插入null

复制代码
insert into shoinIns values 
('0003','运动T恤','衣服',4000,2800,null),

如上介绍中,insert语句中想要给某一列赋予null值时,可以直接在values子句的值清单中写入null,但是想要插入null的列一定不能设置not null 约束。

4,插入默认值

可以向表中插入默认值(初始值)。默认值的设定,可以通过在创建表的create table语句中设置default约束来实现。本次创建表语句时,

复制代码
create table shoinIns
(shohin_id CHAR(4) not null,
shohin_mei VARCHAR(100) not null,
shohin_bunrui VARCHAR(32) not null,
hanbai_tanka INTEGER DEFAULT 0,
shiire_tanka INTEGER ,
torokubi DATE ,
primary key (shohin_id));

其中hanbai_tanka integer Default 0, 意思就是为hanbai_tanka 列设置了0 这样的默认值,如果插入一行数据,在不提供值或者提供default值时,该值即为 0 。

有2中方式插入默认值,称为显示插入默认值或者隐式插入默认值。

1)显示插入默认值示例如下

复制代码
Insert into shoinIns (shohin_id,shohin_mei,shohin_bunrui,hanbai_tanka,shiire_tanka,torokubi)
values ('0007','切菜板','厨房用具',DEFAULT,790,'2009-04-28');

上述Default 即为创建表时设置的 0,

  1. 通过隐式方法插入默认值

插入默认值时可以不使用default关键字,只要在列清单和values 中省略设定了默认值的列即可

复制代码
Insert into shoinIns (shohin_id,shohin_mei,shohin_bunrui,shiire_tanka,torokubi)
values ('0007','切菜板','厨房用具',790,'2009-04-28');

但是注意,如果省略了没有设定默认值的列的话,该列的值就会被设定为null。如果省略的是设置了not null 约束列的话,insert语句就会出错。

如果设定默认值的列名被省略,就会自动设定为该列的默认值

如果没有设置默认值的列名被省略,就会自动设定为null

相关推荐
数字芯片实验室1 小时前
分享一个可以学习正则表达式的网址:Pythex.org
学习·正则表达式
陈洪奇1 小时前
注册中心学习笔记整理
笔记·学习
光影少年1 小时前
从前端转go开发的学习路线
前端·学习·golang
fen_fen7 小时前
学习笔记(32):matplotlib绘制简单图表-数据分布图
笔记·学习·matplotlib
尽兴-8 小时前
如何将多个.sql文件合并成一个:Windows和Linux/Mac详细指南
linux·数据库·windows·sql·macos
小小不董8 小时前
深入理解oracle ADG和RAC
linux·服务器·数据库·oracle·dba
萝卜青今天也要开心11 小时前
2025年上半年软件设计师考后分享
笔记·学习
amazinging11 小时前
北京-4年功能测试2年空窗-报培训班学测开-第四十七天
python·学习·selenium
吃货界的硬件攻城狮11 小时前
【STM32 学习笔记】SPI通信协议
笔记·stm32·学习
一个天蝎座 白勺 程序猿11 小时前
Python练习(1)Python基础类型操作语法实战:20道实战题解与案例分析(上)
开发语言·python·学习