关于SQL语句的例子3

题目 操作步骤或代码 效果截图
1.定义‘IS’系学生基本情况视图V_IS并查询结果 create view V_IS
AS select Sno,Sname,Age,Sdept from student
where Sdept = ‘IS’;
select * from V_IS;

2.将student,course,sc表中学生的学号,姓名,课程号,成绩定义为视图V_S_C_G,并查询结果 create view V_S_C_G
AS select student.Sno,student.Sname,sc.Cno,Grade
from student left join (sc left join course on (sc.Cno = course.Cno)) on (student.Sno = sc.Sno);
select * from V_S_C_G;

3.将各系学生人数,平均年龄定义为视图V_NUM_AVG,并查询结果 create view V_NUM_AVG
AS
select count(*), avg(Age)
from student
group by Sdept;
select * from V_NUM_AVG;

4.定义一个反映学生出生年份的视图V_YEAR并查询结果 create view V_YEAR
AS
select Sno, 2020 - Age as year from student;
select * from V_YEAR;

5.将各位学生选修课程的门数及平均成绩定义为视图V_AVG_S_G并查询结果 create view V_AVG_S_G
AS
select Sno,count(Cno), avg(Grade)
from sc
group by Sno;
select * from V_AVG_S_G;

6.建立视图V_AVG平均成绩为90分以上的学生学号 create view A_AVG
AS
select Sno
from sc
group by Sno
having avg(Grade) > 90;
select * from A_AVG;

7.通过视图V_IS,分别将学号为‘95001’和‘95002’的学生姓名更改为‘王明’,‘王强’并查询结果 update V_IS set Sname = ‘王明’ where Sno = ‘95001’ ;
update V_IS set Sname = ‘王强’ where Sno = ‘95002’;
select * from V_IS;

8.通过视图V_IS,新增加一个学生记录(‘95007’, ‘宋明’,19,‘IS’),并查询结果 insert into V_IS values (‘95007’,‘宋明’,19,‘IS’);
select * from V_IS;

9.通过视图V_IS,新增加一个学生记录(‘95008’,‘王芳’,19,‘MA’) insert into V_IS(Sno,Sname,Age,Sdept) values(‘95008’,‘王芳’,19,‘MA’);
select * from V_IS;

10.通过视图V_IS,删除学号为’95007’和’95008’的学生信息,并查询结果 delete FROM V_IS
where Sno = ‘95008’ or Sno = ‘95007’;
select * FROM V_IS;

老师布置:(1)为student表姓名建立唯一索引。
使用系统过程Sp_helpindex 可以查看表上的索引,格式为:
Sp_helpindex 表名。 show index from student;

(2)能为student表的姓名建立聚集索引吗,为什么? 不能。因为一个表只能有一个聚集索引。
(3)sc表按学号升序和课程号升序建立非聚集索引。 select * from sc
order by Sno and Cno;

思考:1.在定义视图得查询中,是否可以使用SQL查询语句的任意子句及短语?需要注意什么 可以。需要注意,有哪些视图可以更改,哪些不可以。
2.视图一经定以后,就可以像基本表一样用于查询,但DBMS执行对视图的查询过程与执行基本表的查询过程有什么区别? (1)首先进行有效性检查,判断视图是否存在。
(2)从数据字典中取出查询涉及的视图的定义。
(3)把定义中的子查询的用户对视图的查询结合起来,转换成对基本表的查询。
(4)执行对基本表的查询。
3.视图是否能更新数据?通常哪些书可以进行更新 有些可以有些不可以。由一个基本表导出且视图的字段不来自字段表达式、常数、集函数且不含有order by、distinct且没有嵌套查询的视图可以进行更新
4.使用视图有什么好处? 视图能够简化用户的操作
视图使用户能以多种角度看待同一数据
视图对重构数据库提供了一定程度的逻辑独立性
视图能够对机密数据提供安全保护
适当的利用视图可以更清晰的表达查询

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HeYuZJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值