数据库原理中SQL语句实验指导书及答案_第1页
数据库原理中SQL语句实验指导书及答案_第2页
数据库原理中SQL语句实验指导书及答案_第3页
数据库原理中SQL语句实验指导书及答案_第4页
数据库原理中SQL语句实验指导书及答案_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.实验四:管理SQL Server表数据一、实验目的熟悉数据表结构及使用特点;熟悉使用Management Stuio界面方式管理数据表数据;熟悉使用T-SQL语句管理数据表数据。二、实验环境已安装SQL Server 2005 企业版的计算机(13台);具有局域网环境,有固定IP;三、实验学时2学时四、实验要求了解SQL Server数据表数据的管理方法;了解SQL Server数据类型;完成实验报告(部分题只需给出关键语句)。五、实验内容及步骤以课本指定的数据库为例,并依据数据表的结构创建相对应的数据表(student、course、sc),请分别使用Management Stuio界面方式及T-SQL 语句实现进行以下操作:向各个数据表中插入如下记录:学生信息表(student)SnoSnameSsexSageSdept200515001赵菁菁女23CS200515002李勇男20CS200515003张力男19CS200515004张衡男18IS200515005张向东男20IS200515006张向丽女20IS200515007王芳女20CS200515008王民生男25MA200515009王小民女18MA200515010李晨女22MA200515011张毅男20WM200515012杨磊女20EN200515013李晨女19MA200515014张丰毅男22CS200515015李蕾女21EN200515016刘社男21CM200515017刘星耀男18CM200515018李贵男19EN200515019林自许男20WM200515020马翔男21200515021刘峰男25CS200515022牛站强男22200515023李婷婷丽女20200515025朱小鸥女30WM课程信息表(course)CnoCnameCpnoCcredit1数据库542数学23信息系统144操作系统635数据结构746数据处理27PASCAL语言648大学英语49计算机网络410人工智能2选课信息表(sc)SnoCnoGrade2005150011752005150021852005150023532005150031862005150041742005150051582005150061842005150042462005150052892005150062652005150082722005150092762005150102962005150108862005150118622005150158020051501885820051500146220051500248520051502195420051500155820051502165820051500177020051500510652005150168Null2005150178Nullinsert into student.dbo.sc values(20051501,1,75)insert into student.dbo.course values(1,数据库,5,4)insert into student.dbo.student values(201015001,赵菁菁,女,23,CS)2. 修改CS系姓名为“李勇”的学生姓名为“李咏”;update studentset Sname=李咏where Sname=李勇3.修改课程“数据处理”的学分为3学分;3.update courseset Ccredit=3where Cname =数据处理4. 将选修课程“1”的同学成绩加5分;4.update scset Grade =Grade+5where Cno=15. 将选修课程“大学英语”的同学成绩加5分;update scset Grade=Grade+5from course,scwhere course.Cno=sc.Cno and course.Cname=大学英语6. 将学号为“200515010”的学生信息重新设置为“王丹丹、女、20、MA”;update studentset Sname=王丹丹,Ssex=女,Sage=20,Sdept=MAwhere Sno=2005150107. 修改借书证号为2005001的学生记录重新设置:名字为王婧婧、专业为信息管理、借书量增加5本;(因为无些相关的数据表帮无法实现)8. 删除数据表student中无专业的学生记录;deletefrom studentwhere Sdept is null9.删除数据表student中计算机系年龄大于25的男同学的记录;deletefrom studentwhere Ssex=男 and Sage25 and Sdept=CS10.删除数据表course中学分低于1学分的课程信息;deletefrom coursewhere Ccredit19854. 按照“性别、学号、姓名、年龄、院系”的顺序列出学生信息,其中性别按以下规定显示:性别为男显示为男 生,性别为女显示为女 生,其他显示为“条件不明”;select 性别=case when Ssex=男 then男生when Ssex=女 then女生else 条件不明end,Sno 学号,Sname 码,Sage 年龄,Sdept 院系from student5. 查询出课程名含有“数据”字串的所有课程基本信息;select *from coursewhere Cname like %数据%7.显示学号第八位或者第九位是1、2、3、4或者9的学生的学号、姓名、性别、年龄及院系;6.select Sno,Sname,Ssex,Sage,Sdeptfrom studentwhere Sno like _1,2,3,4,91,2,3,4,9%8. 列出选修了1课程的学生,按成绩的降序排列;select student.*,sc.*from student,scwhere student.Sno =sc.Sno and sc.Cno=1order by Grade DESC9. 列出同时选修“1”号课程和“2”号课程的所有学生的学号;select Sno from sc where Cno=1 and Sno in( select Sno from sc where Cno=210. 列出课程表中全部信息,按先修课的升序排列;select *from courseorder by Cpno Asc11. 列出年龄超过平均值的所有学生名单,按年龄的降序显示;select *from studentwhere Sage(select AVG(Sage)from student)order by Sage DESC12. 按照出生年份升序显示所有学生的学号、姓名、性别、出生年份及院系,在结果集中列标题分别指定为“学号,姓名,性别,出生年份,院系”;select Sno 学号,Sname 姓名,Ssex 性别,YEAR(GETDATE ()-Sage 出生年份,Sdept 所在院系from studentorder by YEAR(GETDATE ()-Sage 13. 按照院系降序显示所有学生的 “院系,学号、姓名、性别、年龄”等信息,其中院系按照以下规定显示:院系为CS显示为计算机系,院系为IS显示为信息系,院系为MA显示为数学系,院系为EN显示为外语系,院系为CM显示为中医系,院系为WM显示为西医系,其他显示为院系不明;select Sdept=casewhen Sdept=CS then 计算机系when Sdept=IS then 信息系when Sdept=MA then 数学系when Sdept=EN then 外语系when Sdept=CM then 中医系when Sdept=WM then 西医系else 条件不明end ,Sno,Sname,Ssex,Sagefrom studentorder by Sdept DESC14. 显示所有院系(要求不能重复,不包括空值),并在结果集中增加一列字段“院系规模”,其中若该院系人数=5则该字段值为“规模很大”,若该院系人数大于等于4小于5则该字段值为“规模一般”, 若该院系人数大于等于2小于4则该字段值为“规模稍小”,否则显示“规模很小”;select Sdept ,院系规模=case when COUNT(Sno)=5 then规模很大 when COUNT(Sno)=4then规模一般when COUNT(Sno)=2then规模稍小else 规模很小endfrom studentwhere Sdept is not Nullgroup by Sdept 15.按照课程号、成绩降序显示课程成绩在70-80之间的学生的学号、课程号及成绩;select Sno,Cno,Gradefrom scwhere Grade between 70 and 80order by Cno,Grade DESC16. 显示学生信息表中的学生总人数及平均年龄,在结果集中列标题分别指定为“学生总人数,平均年龄”;select count(*)学生总人数,AVG(Sage) 平均年龄from student17. 显示选修的课程数大于3的各个学生的选修课程数;select Sno 学号,COUNT(Sno)选修课程数from scgroup by Snohaving COUNT(*)=318. 按课程号降序显示选修各个课程的总人数、最高成绩、最低成绩及平均成绩;use studentselect Cno 课程号,COUNT(*)总人数,MAX(Grade)最高分,MIN(Grade)最低分,AVG(Grade)平均分from scgroup by Cno order by Cno desc19.显示平均成绩大于“200515001”学生平均成绩的各个学生的学号、平均成绩;use studentselect Sno 学号,AVG(Grade)平均成绩from sc group by Snohaving AVG(Grade)(select AVG(Grade)from scwhere Sno=200515001)20. 显示选修各个课程的及格的人数、及格比率;use studentselect Cno课程号 ,COUNT(*)及格人数,cast(cast(COUNT(case when Grade=60 then 1 end)as float)/COUNT(*)AS float(1)及格率from sc group by Cno21. 显示选修课程数最多的学号及选修课程数最少的学号;use studentselect Sno 学号,COUNT(*)选修课程数from scgroup by Snohaving COUNT(Cno)=all( select COUNT(*) from sc group by Sno)unionselect Sno 学号,COUNT(*)选修课程数from scgroup by Snohaving COUNT(Cno)=all( select COUNT(*) from sc group by Sno)22.显示各个院系男女生人数,其中在结果集中列标题分别指定为“院系名称、男生人数、女生人数”;select Sdept ,COUNT(case when Ssex=女then 1 end)女生人数,COUNT(case when Ssex=男then 1 end)男生人数from studentgroup by Sdept,Ssex23.列出有二门以上课程(含两门)不及格的学生的学号及该学生的平均成绩;select Sno 学号,AVG(Grade)平均成绩from scgroup by Snohaving COUNT(case when Grade=2 实验六:数据库综合查询一、实验目的1. 掌握SELECT语句的基本语法和查询条件表示方法;2. 掌握查询条件种类和表示方法;3. 掌握连接查询的表示及使用;4. 掌握嵌套查询的表示及使用;5. 了解集合查询的表示及使用。二、实验环境已安装SQL Server 2005 企业版的计算机(13台);具有局域网环境,有固定IP;三、实验学时2学时四、实验要求1. 了解SELECT语句的基本语法格式和执行方法;2. 了解连接查询的表示及使用;3. 了解嵌套查询的表示及使用;4. 了解集合查询的表示及使用;5. 完成实验报告;五、实验内容及步骤以数据库原理实验5数据为基础,请使用T-SQL 语句实现进行以下操作:1. 查询以数据_开头,且倒数第3个字符为结的课程的详细情况;select *from scwhere Cno in(select Cnofrom coursewhere Cname like 数据_%ESCAPE)2. 查询名字中第2个字为阳的学生姓名和学号及选修的课程号、课程名;select Sname,student.Sno ,sc.Cno,Cnamefrom sc,course,studentwhere sc.Cno=course.Cno and student.Sno=sc.Sno and Sname like_阳3. 列出选修了数学或者大学英语的学生学号、姓名、所在院系、选修课程号及成绩;select student.Sno,Sname,Sdept,sc.Cno,Gradefrom student,sc,coursewhere student.Sno=sc.Sno and sc.Cno=course.Cno and Cname in(数学,大学英语)4. 查询缺少成绩的所有学生的详细情况;Select student.*from student,scWhere student.Sno=sc.Sno and Grade is null5. 查询与张力(假设姓名唯一)年龄不同的所有学生的信息;from studentwhere Sage !=(select Sagefrom studentwhere Sname=张力)6. 查询所选课程的平均成绩大于张力的平均成绩的学生学号、姓名及平均成绩;select student.Sno,Sname,AVG(Grade)from student,scwhere student.Sno=sc.Snogroup by student.Sno,Snamehaving AVG(Grade)(select AVG(Grade)from scwhere Sno=(select Snofrom studentwhere Sname=张力)7. 按照“学号,姓名,所在院系,已修学分”的顺序列出学生学分的获得情况。其中已修学分为考试已经及格的课程学分之和;select student.Sno,Sname,Sdept,SUM(Ccredit) 总学分from student,sc,coursewhere student.Sno=sc.Sno and course.Cno=sc.Cno and Grade=60group by student.Sno,Sname,Sdept8. 列出只选修一门课程的学生的学号、姓名、院系及成绩;select student.Sno,Sname,Sdept,sum(Grade) 成绩from student,scwhere student.Sno=sc.Sno group by student.Sno,Sname,Sdepthaving COUNT(*)=19. 查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号;select student.Sno,Sname,Cnofrom student,scwhere student.Sno=sc.Sno and student.Sno in(select student.Snofrom student,scwhere student.Sno=sc.Sno and Cno in(select Cnofrom scwhere Sno in (select Snofrom studentwhere Sname=张力)10. 只选修“数据库”和“数据结构”两门课程的学生的基本信息;select student.Sno,Snamefrom student,sc,coursewhere student.Sno=sc.Sno and sc.Cno=course.Cno and Cname=数据库 and student.Sno in (select sc.Snofrom sc,course where sc.Cno=course.Cno and Cname=数据结构)and student.Sno not in(select Sno from sc,coursewhere sc.Cno=course.Cno and Cname not in(数据库,数据结构)11. 至少选修“数据库”或“数据结构”课程的学生的基本信息;select student.Sno,Snamefrom sc,student,coursewhere student.Sno=sc.Sno and course.Cno=sc.Cno and Cname=数据库 and student.Sno in(select Sno from scwhere Cno=(select Cnofrom course where Cname=数据结构)12. 列出所有课程被选修的详细情况,包括课程号、课程名、学号、姓名及成绩;select sc.Cno,Cname, sc.Sno,Sname,Gradefrom course left outer join sc on(course.Cno=sc.Cno ),studentwhere student.Sno=sc.Sno13. 查询只被一名学生选修的课程的课程号、课程名;select course.Cno,Cnamefrom sc,coursewhere sc.Cno=course.Cnogroup by course.Cno,Cnamehaving COUNT(*)=114. 检索所学课程包含学生张向东所学课程的学生学号、姓名;select Sno,Snamefrom studentwhere exists(select *from sc where Sno=(select Snofrom studentwhere Sname=张向东)and exists (select *from sc ywhere y.Sno=student.Sno and y.Cno=sc.Cno)15. 使用嵌套查询列出选修了“数据结构”课程的学生学号和姓名;select Sno,Sna

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论