数据库实验四 查询

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

华中科技大学

《数据库技术与应用》实验报告专业班级:学生姓名:学号:

实验地点:指导教师:

实验日期时间:

一、实验项目名称:数据查询

二、实验学时:

三、实验目的:

1.掌握使用Transact-SQL的SELECT语句进行基本查询的方法。

2.掌握使用SELECT语句进行条件查询的方法。

3.掌握嵌套查询的方法。

4.掌握多表查询的方法。

5.掌握SELECT语句的GROUP BY和ORDER BY子句的作业和使用方法。

四、实验工具或环境

一台装有SQL sever2008的计算机五、实验内容、步骤、代码和结果:

0. 创建studentsdb数据库及其相应表,并录入数据。

在SQL Server管理平台上,点击“新建查询”打开查询编辑器窗口,复制粘贴附件“创建数据库代码”中的代码到查询编辑器窗口,运行即可生成相关数据库和表,并有相应的数据。

1.在studentsdb数据库中,使用下列SQL语句将输出什么?

(1)SELECT COUNT(*) FROM grade

(2)SELECT SUBSTRING(姓名,1,2) FROM student_info

(3)SELECT UPPER('kelly')

(4)SELECT Replicate('kelly',3)

(5)SELECT SQRT(分数) FROM grade WHERE 分数>=85

(6)SELECT 2,3,POWER(2,3) 选做

(7)SELECT YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE())

2.在studentsdb数据库中使用SELECT语句进行基本查询。

(1)在student_info表中,查询每个学生的学号、姓名、出生日期信息。

(2)查询学号为0002的学生的姓名和家庭住址。

select姓名,家庭住址from student_info where学号

='0002'

(3)找出所有男同学的学号和姓名。

select姓名,家庭住址from student_info where性别='男'

3.使用SELECT语句进行条件查询

(1)在grade表中查找分数在80~90分为内的学生的学号和分数。

select学号,分数from grade where分数>='80'and分数<='90'

(2)在grade表中查询课程编号为0003的学生的平均分。

select AVG(分数)as平均分from grade where课程编号='0003'

(3)在grade表中查询学习各门课程的人数

select COUNT(*)from grade

(4)将学生按出生日期由大到小排序。

select学号,姓名,出生日期from student_info order by出生日期,学号desc

(5)查询所有姓“张”的学生的学号和姓名。

SELECT学号,姓名FROM student_info WHERE姓名LIKE'张%'

4.对student_info表,按性别顺序列出学生的学号、姓名、性别、出生日期及家庭住址,性别

相同的按学号由小到大排序。

select学号,姓名,性别,出生日期,家庭住址from student_info order by student_info.性别,学号asc

5.使用GROUP BY查询子句列出各个学生的平均成绩。

select a.学号,a.姓名,AVG(b.分数)as平均成绩from studentsdb.dbo.student_info a inner join

grade b

on a.学号=b.学号group by a.姓名,a.学号

6.使用UNION运算符将student_info表中姓“刘”的学生的学号、姓名与姓“张”的学生的学

号、姓名返回在一个表中,如图4-1所示。

图 4-1

select学号,姓名from studentsdb.dbo.student_info where姓名like'刘%'

union all

select学号,姓名from studentsdb.dbo.student_info where姓名like'张%

7.嵌套查询

(1)在student_info表中查找与“刘卫平”性别相同的所有学生的姓名、出生日期。

select姓名,出生日期from studentsdb.dbo.student_info where性别=(select性别from student_info where姓名='刘卫平')

(2)使用IN子查询查找所修课程编号为0002、0005的学生学号、姓名、性别。

select学号,姓名,性别from studentsdb.dbo.student_info

where学号in(select学号from grade where课程编号='0002'or课程编号='0005')

(3)列出学号为0001的学生的分数比0002号的学生的最低分数高的课程编号和分数。select课程编号,分数from grade

where学号='0001'and分数>(select MIN(分数)from grade

where学号='0002')

(4)列出学号为0001的学生的分数比0002的学生的最高成绩还要高的课程编号和分数。

select课程编号,分数from grade

where学号='0001'and分数>(select max(分数)from grade

where学号='0002')

8.多表查询

(1)查询分数在80~90范围内的学生的学号、姓名、分数。

SELECT student_info.学号,姓名,分数

相关文档
最新文档