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

更新时间:2023-10-21 06:41:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、实验目的:

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

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

SELECT[ALL|DISTINCT] <目标列表达式〉[,<目标列表达式〉]... FROM<表名或视图名〉[,<表名或视图名〉]... [WHERE<条件表达式>]

[GROUP BY<列名1〉[HAVING<条件表达式>]] [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 Course.Cno=SC.Cno”,得出的结果如下图所示:

6.其他

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

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

本文来源:https://www.bwwdw.com/article/rmpf.html

Top