实验报告 数据库的基本查询'

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、实验目的:

通过该实验掌握应用SQL 查询数据库的基本方法,包括单表、多表查询。

二、实验原理

数据库查询是数据库的核心操作。SQL语言提供了SELECT语句进行数据库的查询。

SELECT[ALL|DISTINCT] <目标列表达式〉[,<目标列表达式〉]...

FROM<表名或视图名〉[,<表名或视图名〉]...

[WHERE<条件表达式>]

[GROUP BY<列名1〉[HA VING<条件表达式>]]

[ORDERBY<列名2〉[ASC|DESC]]

三、实验内容和方法

实验用的数据库:用实验二建立的数据库:School

1. 投影查询

(1) 查询SC表的sno的不重复记录。

使用SQL语句:“select distinct Sno from SC”,得出结果如下图所示:

(2) 改变查询结果的标题名:sno为学号,sname为姓名,ssex 为性别,sdept 为系名。

使用SQL语句:“select Sno 学号,Sname 姓名,Ssex 性别,Sdept 系名from Student”,得出结果如下图所示:

(3) 查询STUDENT表的前3条记录(top 3)。

使用SQL语句:“select top 3 * from Student”,得出结果如下图所示:

3. 选择查询

(1) 查询成绩在60-80之间的姓名、系名和成绩。

使用SQL语句:“select Sname,Sdept,Grade from Student,SC where Grade>60 and Grade<80 and Student.Sno=SC.Sno”,结果如下图所示:

若使用SQL语句:“select Sname,Sdept,Grade from Student,SC where Grade between 60 and 80 and Student.Sno=SC.Sno”,则结果如下图所示:

(2) 查询信息系和计算机系的姓名和成绩。

使用SQL语句:“select Sname,Grade from Student,SC where Sdept='IS' and Student.Sno=SC.Sno or Sdept='CS' and Student.Sno=SC.Sno”,结果如下图所示:

(3) 查询计算机系或女同学的记录。

使用SQL语句:“select * from Student where Ssex='女' or Sdept='CS'”,得出结果如下图所示:

(4) 查询李姓同学的记录。

使用SQL语句:“select * from Student where Sname like '李%'”,得出结果如下图所示:

(5) 查询计算机系女同学的记录。

使用SQL语句:“select * from Student where Sdept='CS' and Ssex='女'”,得出的结果如下图所示:

4. 排序查询

(1)查询STUDENT表的所有字段和记录按年龄由大到小排序。

使用SQL语句:“select * from Student order by Sage desc”,得出的结果如下

图所示:

(2)查询STUDENT表的所有字段和记录按年龄由小到大排序。

使用SQL语句:“select * from Student order by Sage asc”,得出的结果如下图所示:

5. 结合统计函数

(1) 查询SC表的最高分。

使用SQL语句:“select max (Grade) 最高分from SC”,得出的结果如下图所示:

(2) 统计SC表95001学生的平均分。

使用SQL语句:“select avg (Grade) 平均分from SC where Sno='95001'”,得出的结果如下图所示:

(3)统计SC表各课程的最低分。

使用SQL语句:“select Cno 课程,min (Grade) 最低分from SC group by Cno”,

得出的结果如下图所示:

(4)查询超过平均分的学生姓名和系名。

使用SQL语句:“select Sname,Sdept from Student,SC where Grade>(select avg (Grade) from SC) and Student.Sno=SC.Sno”,得出的结果如下图所示:

(5)查询低于平均分的学生姓名、系名和课程名。

使用SQL语句:“select Sname,Sdept,Cname from Student,Course,SC where Grade<(select avg (Grade) from SC) and Student.Sno=SC.Sno and o=o”,得出的结果如下图所示:

6.其他

(1)查询其他系中比计算机系某一学生小的学生姓名和年龄。

(2)查询其他系中比计算机系所有学生年龄都小的学生姓名和年龄。(3)查询每一门课的间接先修课(先修课的先修课)。

相关文档
最新文档