实验三数据库SQL 基本表查询
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库原理及应用实验报告
实验三
SQL 基本表查询
实验报告
实验类型__综合设计__实验室_软件实验室一__
SQL基本表查询
1.实验项目的目的和任务:熟练掌握查询语句的一般格式,熟练掌握连接、嵌套和集合查询的使用。
2.程序代码(部分)
select * from student where s# in
( select s# from sc where c#!='c2') //查询没有选修了2号课程的学生名单
select s#,avg(grade) from sc group by s#;
//查询每个学生的平均成绩
select c#,avg(grade) from sc group by c#;
//查询每门课的平均成绩
select * from student where s# in
(select s# from sc where c#='c2') //嵌套查询
select sname from student where
not exists
(select * from c where
not exists
(select * from sc where s#=student.s# and c#=c.c#))
// 查询选修了全部课程的学生姓名
3运行结果如图所示
4实验总结
通过具体的上机实践操作,掌握了SQL基本表查询。
(1)确定集合(利用“IN”操作可以查询属性值属于指定集合的元组。利用“NOT IN”可以查询指定集合外的元组。
(2)GROUP BY 子句可以将查询结果按属性列或属性列组合在行的方向上进行分组,每组在属性列或属性列组合上具有相同的值。
(3)在where子句中包含一个形如select-from-where的查询块,此查询块称为子查询或嵌套查询,包含子查询的语句称为父查询或外部查询。嵌套查询可以将一系列简单查询构成复杂查询,增强查询能力。子查询的嵌套层次最多可达到255层,以层层嵌套的方式构造查询充分体现了SQL结构化的特点。嵌套查询在执行时由里向外处理,每个子查询是在上一级外部查询处理之前完成的,父查询要用到子查询的结果。
(4)Exists是表示存在的量词,where与exists之间没有属性列。