大白糖奶兔的Blog
大白糖奶兔的Blog
数据库第三章-更新数据

插入数据

插入一个新元组

语句格式

insert into <表名>[(<属性列1>[,<属性列2>...])]
values (<常量1>[,<常量2>]...)

into子句:
- 属性列的顺序可与定义表的顺序不一致
- 可以不指定属性列
- 可以指定部分属性列
values子句:
- 提供的值必须与into子句匹配(值的个数=值的类型)

https://yczbest.cn/wp-content/uploads/2020/08/wp_editor_md_bb4c817b31386d4ec1017c75556c669f.jpg
insert 
into student(sno,sname,ssex,sdept,sage)
values('201215128','陈东','男','IS',18);
https://yczbest.cn/wp-content/uploads/2020/08/wp_editor_md_ddb271265b9b0819774c84af3ce4def7.jpg
https://yczbest.cn/wp-content/uploads/2020/08/wp_editor_md_0e0a7046aa0688fcae8b58cc3036955b.jpg
insert 
into student
values('201215126','张成民','男',18,'CS');
https://yczbest.cn/wp-content/uploads/2020/08/wp_editor_md_29d36f46c37e3204963035958e3e5aea.jpg
https://yczbest.cn/wp-content/uploads/2020/08/wp_editor_md_82388128db77f72db6143e9949d94c75.jpg
https://yczbest.cn/wp-content/uploads/2020/08/wp_editor_md_b39a1635b5ac6cc49936c31c8972e5f7.jpg
insert 
into sc(sno,cno)
values('201215128','1');

或者

insert
into sc
values ('201215128','1',null);
https://yczbest.cn/wp-content/uploads/2020/08/wp_editor_md_faf1f784ba7d5064032ffe605683c3ef.jpg

插入子查询结果

  • 可以一次插入多个元组

语句格式

insert
into <表名> [(<属性列1>[,<属性列2>]...)]
子查询;

作用:子查询结果插入指定表中
into子句(与插入元组类似):
子查询:
- select子句目标列必须与into子句匹配(值的个数、值的类型)

https://yczbest.cn/wp-content/uploads/2020/08/wp_editor_md_ba704b55fe632f720097e2ddb70822f3.jpg

第一步:建表

create table dept_age(
sdept char(15),
avg_age smallint
);

https://yczbest.cn/wp-content/uploads/2020/08/wp_editor_md_bc68e8d5b830b625c2edcdc70b487239.jpg

第二步:插入数据

insert
into dept_age(sdept,avg_age)
select sdept,avg(sage)
from student
group by sdept;

计算每个系的平均年龄并存在表中

https://yczbest.cn/wp-content/uploads/2020/08/wp_editor_md_0677bd56bb23c564c68b0201fbdb20ff.jpg

RDBMS在执行插入语句时会检查所插元组是否破坏表上已定义的完整性规则

修改数据

语句格式

update <表名>
set <列名>=<表达式>[,<列名>=<表达式>]...
[where <条件>];
  • alter用来修改表的定义(修改表的结构)
  • update用来修改表中满足where子句条件的元组

三种修改方式

修改某一个元组的值

https://yczbest.cn/wp-content/uploads/2020/08/wp_editor_md_1e9a4b2e6c799a0f933b4c694e44a292.jpg
update student
set sage=22
where sno = '201215121';
https://yczbest.cn/wp-content/uploads/2020/08/wp_editor_md_3f33968815fdf4a4355d7ee39d78ad1b.jpg

修改多个元组的值

https://yczbest.cn/wp-content/uploads/2020/08/wp_editor_md_91dd2363ce5b89f01f57179e25ab0e07.jpg
update student
set sage= sage + 1;
https://yczbest.cn/wp-content/uploads/2020/08/wp_editor_md_1efaf92a4ce2f3b69010f6dc5bdb7d32.jpg

带子查询的修改语句

https://yczbest.cn/wp-content/uploads/2020/08/wp_editor_md_8f23f501c171450cb6f74c5a41c7d0b5.jpg
update sc
set grade = '0'
where sno in(
select sno
from student
where sdept='CS'
);

RDBMS在执行修改语句时会检查修改操作是否破坏表上已定义的完整性规则

删除数据

语法格式

delete
from <表名>
[where <条件>];

功能:
删除指定表中满足where子句条件的元组

三种删除方式

删除某一个元组的值

https://yczbest.cn/wp-content/uploads/2020/08/wp_editor_md_615c59b48ecb034b6a32085021da8323.jpg
delete
from student
where sno = '201215128';

删除符合条件的多个元祖

https://yczbest.cn/wp-content/uploads/2020/08/wp_editor_md_cd2c793041bc4bc7def86d38afd57622.jpg
delete
from sc;

带子查询的删除语句

delete
from sc
where sno in(
select sno
from student
where sdept = 'CS'
);

发表评论

textsms
account_circle
email

大白糖奶兔的Blog

数据库第三章-更新数据
插入数据 插入一个新元组 语句格式 insert into <表名>[(<属性列1>[,<属性列2>...])] values (<常量1>[,<常量2>]...) into子句: - 属性列的顺序可与…
扫描二维码继续阅读
2020-08-11
Title - Artist
0:00