实验四 查询设计实验

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

《数据库原理与应用》

课程实验报告

实验四查询设计实验

所在院(系):

班级:

学号:

姓名:

1.实验目的

(1)了解查询的目的,掌握SELECT语句的基本语法和查询

条件的表示方法。

(2)掌握数据排序和数据联接查询的方法。

(3)掌握SQL Server查询分析器的使用方法。

2.实验要求

(1)针对“TM”数据库,在SQL Server查询分析器中,

用T-SQL语句实现以下单表查询操作,并将将调试成功的T-SQL命令,填入实验报告中。

a)查询所有课程的详细情况。

b)查询来自江苏或山东的学生学号和姓名,并以中文名

称显示输出的列名。

c)查询选修了课程的学生学号(一人选了多门课程的话,

学号只显示一次)。

d)查询选修课程号为07253001的学号和成绩,并要求对

查询结果按成绩降序排列,如果成绩相同则按学号升

序排列。

e)查询所有学生的学号、姓名和年龄。

f)查询选修课程号为07253001的成绩在85-95之间的学

生学号和成绩,并将成绩乘以0.7输出。

g)查询数学与信息技术学院(DEPT_ID为07)或物理与

电子工程学院(DEPT_ID为09)姓张的学生的信息。。

h)查询所有核心课程(课程名中带*的)的情况。

i)查询缺少了成绩的学生的学号和课程号,查询结果按

课程号升序排列。

(2)在SQL Server查询分析器中,用T-SQL语句实现下列

数据联接查询操作:

a)查询每个学生的情况以及他(她)所选修的课程。

b)查询学生的学号、姓名、选修的课程名及成绩。

c)查询选修C语言程序设计且成绩为85分以上的学生学

号、姓名及成绩。

d)查询和学生柏文楠是同一个民族的学生(用自身联接

实现)。

e)分别用等值联接和内联接查询有授课记录的老师的姓

名。

f)用外联接查询所有老师的授课情况,输出老师的工号、

姓名、职称、院系、担任的课程号和授课的学期,结

果按院系和职称升序排列。如果该老师没有授课历史,在课程号和授课的学期中显示空值

(3)在SQL Server Management Studio中新建查询,完成

以上查询命令的同时,熟悉SQL编辑器工具栏中各快捷按钮的作用。

(4)按要求完成实验报告。

3.实验步骤、结果和总结实验步骤/结果

将调试成功的T-SQL语句写在下方(标明题号)。

一、针对“TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下单表查询操作,并将将调试成功的T-SQ L命令,填入实验报告中。

(a)查询所有课程的详细情况:

select*from Course

表1-a

(b)查询来自江苏或山东的学生学号和姓名,并以中文名称

显示输出的列名。

SELECT S_ID as学号,S_Name as姓名FROM STUDENT WHERE Birth_Place='江苏'or Birth_Place='山东'

表1-b

(c)查询选修了课程的学生学号(一人选了多门课程的话,

学号只显示一次)。

select distinct S_ID from sc

表1-c

(d)查询选修课程号为07253001的学号和成绩,并要求对查

询结果按成绩降序排列,如果成绩相同则按学号升序排列。

select S_ID,EXAM_Grade from sc

where C_ID='07253001'

order by EXAM_Grade desc,S_ID asc

表1-d

(e)查询所有学生的学号、姓名和年龄。

SELECT S_ID,S_NAME,

year(getdate())-year(Date_of_Birth)as 年龄 FROM

Student

表1-e

(f)查询选修课程号为07253001的成绩在85-95之间的学生学号和成绩,并将成绩乘以0.7输出。

Select S_ID,EXAM_Grade*0.7 as grade from SC where C_ID='07253001'and EXAM_Grade between 85 and

95

表1-f

(g)查询数学与信息技术学院(DEPT_ID为07)或物理与电子工程学院(DEPT_ID为09)姓张的学生的信息。

select*from Student where DEPT_ID in('07','09') and S_Name like'张%'

表1-g

(h)查询所有核心课程(课程名中带*的)的情况。

SELECT * FROM Course WHERE C_Name like'%*%'

表1-h

(i)查询缺少了成绩的学生的学号和课程号,查询结果按课程号升序排列。

select S_ID,C_ID from SC where EXAM_Grade IS NULL order by C_ID

表1-i

二、在SQL Server查询分析器中,用T-SQL语句实现下列数据联接查询操作:

(a)查询每个学生的情况以及他(她)所选修的课程。

Select Student.S_ID, S_Name,Gender,

Birth_Place,DEPT_ID, Class_ID, Course.C_name from Student join SC on Student.S_ID=SC.S_ID join Course on Course.C_ID=SC.C_ID

表2-a

(b)查询学生的学号、姓名、选修的课程名及成绩。

相关文档
最新文档