实验三数据库SQL 基本表查询

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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之间没有属性列。

相关文档
最新文档