您好,欢迎来到九壹网。
搜索
您的当前位置:首页实验二 SQL的投影、选取和排序查询

实验二 SQL的投影、选取和排序查询

来源:九壹网


北 京 林 业 大 学

2013学年—2014学年第1学期数据库原理与应用实验报告书

专 业:信息管理与信息系统 班 级:

姓 名: 学 号:

实验地点: 计算机中心机房 任课教师:

实验题目: 实验二 SQL的投影、选取和排序查询

实验环境: Windows 200X Server、SQL Server 200X

实验目的、内容、实现方法、实验结果及结论分析等:

在查询分析器中,使用SELECT语句完成下面的操作:

1. 投影查询

① 查询学生的姓名,年龄和性别:

use SDB

select s.sn,s.age,s.sex

from s

② 查询学生选修程的课程号。注意:查询结果是否有重复记录?如何消除

select c.cno,c.cn

from c

【分析】有重复的记录,distinct可以消除查询结果中重复行:

select distinct c.cno,c.cn

from c

2. 选取查询

① 查询学习课程号为02的所有学生的学号和成绩:

select sc.cno,sc.grade

from sc

where sc.cno='02'

② 查询课程号为02且成绩高于85分以上的学生学号和成绩:

select sc.sno,sc.grade

from sc

where sc.cno='02' and grade>'85'

③ 查询选修课程为02或01的学生学号:

select sc.sno

from sc

where sc.cno='02' or sc.cno='01'

④ 查询成绩在70分至85分之间(包括70和85分)学生的学号,课程号和成绩,注意:列名使用中文名。

select sc.sno as 学号,sc.cno as 课程号,sc.grade as 成绩

from sc

where sc.grade>='70' and sc.grade<='85'

【分析】列名使用中文名:在相应的字段后面加上“as 中文名”。

⑤ 查询姓名中“张”开头的学生的姓名,年龄和性别:

select s.sn,s.age,s.sex

from s

where s.sn like '张%'

【分析】字符串的匹配用like进行,%的作用是匹配出包含零个或多个字符的任意字符串。

⑥ 查询课程关系C中责任教师编号TNO 为空值的课程信息:

select c.cno,c.cn,c.period

from c

where c.tno is null

【分析】空值要注意使用is null来判断是否为空值,而不能用”=”或者没有任何符号。

⑦ 从选课表中查询成绩最高的3条选课信息:

select top 3 sc.cno,sc.sno,sc.grade

from sc

order by sc.grade desc

【分析】用order by来对查询出来的结果进行排序,此处是按学生的考试成绩进行排序,正常情况下是按升序排列的,desc的作用是让排序的结果倒序显示出来。

3. 排序查询

① 查询选修01课程的学生的学号和成绩,并按成绩降序排列:

select top 3 sc.cno,sc.sno,sc.grade

from sc

where sc.cno='01'

order by sc.grade desc

② 查询学号为0101,0103,0204的姓名,年龄(年龄按升序排列):

select s.sn,s.age

from s

where s.sno='0101'or s.sno='0103'or s.sno='0204'

order by s.age

4.自己分别设计1个投影查询、选取查询和排序查询,投影字段最好有表达式等,

查询并且将查询结果的列名用中文显示(采用字段别名方法)。

(1)投影查询:从s表中查询学生的学号,姓名和状态:

use SDB

select s.sno as 学号,s.sn as 姓名,s.state as 状态

from s

(2)选取查询:查询s表中学号的前两位为01和02的学生,列出学号、姓名、性别:

use SDB

select s.sno as 学号,s.sn as 姓名,s.sex as 性别

from s

where s.sno like '0[12]%'

【分析】”[]”可以指定范围或集合中的任何单个字符,like '0[12]%'表示选取学号前两位为01或02的学生信息。

(3)排序查询:在sc表中查询考试成绩在前50%的学生的学号、姓名、课程名和成绩:

select top 50 percent sc.sno as 学号,s.sn as 姓名,sc.cno as 课程名,sc.grade as 成绩

from sc,s

order by sc.grade desc

【分析】percent是按百分数取前几个成绩,order by sc.grade desc表示按成绩的降序排列。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务