




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南 京 晓 庄 学 院数据库原理与应用课程实验报告实验四 查询设计实验所在院(系): 数学与信息技术学院班级: 学号: 姓名: 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语句写在下方(标明题号)。1、 针对 “TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下单表查询操作,并将将调试成功的T-SQL命令,填入实验报告中。(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=07253001order 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 SCwhere C_ID=07253001and 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 NULLorder by C_ID 表1-i2、 在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)查询学生的学号、姓名、选修的课程名及成绩。select Student.S_ID, S_Name,C_Name, EXAM_Grade from Student inner join SC on Student.S_ID=SC.S_ID inner join Course on SC.C_ID=Course.C_ID 表2-b(c)查询选修C语言程序设计且成绩为85分以上的学生学号、姓名及成绩。 Select Student.S_ID,S_NAME,EXAM_Grade from Student,SC,Course where Student.S_ID=SC.S_ID and Course.C_ID=SC.C_ID and C_Name=C语言程序设 计 and EXAM_Grade=85表2-c(d)查询和学生柏文楠是同一个民族的学生(用自身联接实现)。 SELECT S_Name from Studentwhere Nationality=(select Nationality from Student where S_Name=柏文楠)表2-d(e)分别用等值联接和内联接查询有授课记录的老师的姓名。等值联接select DISTINCT T_Name fromTeacher inner join TC on Teacher.T_ID=TC.T_ID内联接 select DISTINCT T_Name from Teacher,TC where Teacher.T_ID=TC.T_ID表2-e(f)用外联接查询所有老师的授课情况,输出老师的工号、姓名、职称、院系、担任的课程号和授课的学期,结果按院系和职称升序排列。如果该老师没有授课历史,在课程号和授课的学期中显示空值。select Teacher.T_ID,Teacher.T_Name,Teacher.Academic_Title,Department. DEPT_Name,TC.C_ID,TC.Semester from Teacher Right join TC on Teacher.T_ID=TC.T_ID join Department ON Department.DEPT_ID=Teacher.DEPT_IDorder by Department.DEPT_Name , Teacher.Academic_Title表2-f4实验思考:联接查询中,输出列名时何时可以忽略列名前的表名,何时不能?完整写法:表名.列名 若选择的字段名在各个表中是唯一的,则可以省略字段名前的表名。 联接查询中,INNER JOIN、 LEFT OUTER JOIN 、RIGHT OUTER JOIN、 FULL OUTER JOIN 的结果各有什么不同?INNER JOIN : Inner join 产生的结果集中,是A和B的交集SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.nameLEFT OUTER JOIN: (1) Left outer join 产生表A的完全集,而B表中匹配的则有值,没有匹配的则以null值取代。 SELECT * FROM TableA LEFT OUTER JOIN TableB ON TableA.name = TableB.name(2) 产生在A表中有而在B表中没有的集合。SELECT * FROM TableA LEFT OUTER JOIN TableB ON TableA.name = TableB.name WHERE TableB.id IS nullRIGHT OUTER JOINRIGHT OUTER JOIN 是后面的表为基础,与LEFT OUTER JOIN用法类似。FULL OUTER JOIN (1) Full outer join 产生A和B的并集。但是需要注意的是,对于没有匹配的记录,则会以null做为值。可以使用IFNULL判断。SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name (2) 产生A表和B表没有交集的数据集。SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.nameWHERE TableA.id IS null OR TableB.id IS nullLIKE匹配字符有几种?如果要检索的字符中包含匹配字符,该如何处理?LIKE通配符及实例通配符 说明实例%表示包含零个或多个字符的任意字符串。where title like %computer% 将查找在书名中任意位置包含单词 computer 的所有书名。_(下划线)表示任何单个字符。where au_fname like _ean 将查找以 ean 结尾的所有 4 个字母的名字(dean、sea
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 万顷之陂-【2022年暑假预习】云名著《世说新语》之“德行”卷
- 九年级历史上册 第二单元 第5课 中古时代的东亚和西亚教学设计 华东师大版
- 2024中智集团政企服务部公开招聘笔试参考题库附带答案详解
- 防伪产品经理培训总结
- 人教A版(2019)高一数学必修第二册-正弦定理、余弦定理的综合应用-1教案
- 七年级生物下册 第四单元 第三章 第二节 发生在肺内的气体交换教学设计2 (新版)新人教版
- 六年级语文上册 第三单元 习作:-让生活更美好教学设计 新人教版
- 初中语文人教部编版(2024)七年级上册(2024)第三单元教案及反思
- 初中语文-第三单元《小石潭记》教学设计-2024-2025学年统编版语文八年级下册
- 初中心理健康课教学设计-我的责任
- 国际标准《风险管理指南》(ISO31000)的中文版
- 学习兴税-税收基础知识考试参考题库及答案
- 印刷服务投标方案(技术方案)
- 2024年爱国知识竞赛考试题库400题(供参考)
- (高清版)DZT 0004-2015 重力调查技术规范(150 000)
- 数学教育研究导引
- 永磁同步电机直接转矩控制
- 第6课《求助电话》课件
- 小学课后服务阅读教学设计
- 生物的种群动态与物种演变
- GB 4351-2023手提式灭火器
评论
0/150
提交评论