
本文共 4678 字,大约阅读时间需要 15 分钟。
实验名称 | 实验二 数据查询 | ||
实验教室 | 913 | 实验日期 | 2018年10月15日 |
学 号 | 2016214220 | 姓 名 | ** |
专业班级 | 计算机科学与技术2016级 *班 | ||
指导教师 | 王阿川 |
东北林业大学
信息与计算机科学技术实验中心
一、实验目的 (1)通过本实验能够掌握投影、选择条件表达、排序、分组的sql语句表达。 (2)通过本实验能够熟练应用sql语言进行查询,具体包括单表查询,多表连接查询。 (3)通过本实验能够熟练应用sql语言使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。 (4)掌握视图的定义、查询、修改。 |
二、实验环境 计算机 windows7操作系统, Oracle 11g, SQL Developer |
三、实验内容及结果
Select sno,cno from sc where grade is ‘null’
Select sno,cout(*) from sc group by cno (二) 多表连接查询
(三) 嵌套查询
SQL语言中没有全称量词∨(,all)。但是可以把带有全称量词的谓词转换为等价的带有存在量词的谓词。(∨x)P≡∟(exists x(∟P)) 试做:查询所有学生都选修的课程名 select Cname from Course where not exists(select * from Student where not exists(select * from SC where Sno=Student.Sno and Cno=Course.Cno));
(四) 视图 1. 建立信息系学生的视图。并查询此视图,观察结果。 create view StuView (Sno,Sname,Ssex,Sage) as select Sno,Sname,Ssex,Sage from Student where Sdept='IS'; select * from StuView;2.(在视图上建立)建立信息系选修了1号课程的学生的视图。查询此视图,并观察结果。 create view StuView_1 (Sno,Sname,Ssex,Sage,Grade) as select StuView.Sno,Sname,Ssex,Sage,Grade from StuView,SC where Cno='1'; select * from StuView_1;3.将学生的学号及其平均成绩定义为一个视图。查询此视图,观察结果。 create view StuAvg (Sno,Avg) as select Sno,avg(Grade) from SC group by Sno; select * from StuAvg;4.将Student表中所有女生记录定义为一个视图F_stu(sno,sname,sdept,sex),并设置其更新限制with check option 。5.对4中的视图进行insert操作,将sno为200215129,sname为‘smith’,sdept为‘MA’插入视图中,结果如何? insert into F_stu (sno,sname,sdept,sex) values ('200215129','smith','MA'); 插入失败6. 对4中的视图进行insert操作,将sno为200215129,sname为‘smith’,sdept为‘MA’,sex为‘女’插入视图中,结果如何? I nsert into F_stu (sno,sname,sdept,sex) values ('200215129','smith','MA','女');5.6有什么区别? 视图:视图子查询中允许任意复杂的SELECT语句,但通常不允许含有Order By子句和distinct短语。 组成视图的属性列名或者全部省略,或者全部指定。 一下三种情况必须明确指定组成视图的所有列名: 1)某个目标列不是单纯的属性名,而是聚集函数或列表达式。 2)多表连接时选出了几个同名列作为视图的字段。 3)需要为某个列启用新的更合适的名字。 With CHECK OPTION 表示对视图进行update、insert、delete操作时要保证更新、插入或删除的行满洲子查询中的条件表达式。
|
四、实验过程分析与讨论 1. 实验过程分析与讨论: 2.思考题 (1)Where子句中能否用聚集函数作为条件表达式。 不能,聚集函数的条件表达式用having实现。(2)多表连接查询中如果显示的某一属性不止一个表中出现,应如何处理。(例:(二)多表连接查询中的第2题)。 确定要显示的为那个表出现的属性,如确定是student.sno或sc.sno;(3)在嵌套查询中,什么情况下用“IN”和“=”都可以。 内层查询只返回一个值。 |
|
五、指导教师意见
指导教师签字: 年 月 日 |
发表评论
最新留言
关于作者
