欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    实验:数据库综合查询(13页).doc

    • 资源ID:35962400       资源大小:295.50KB        全文页数:13页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    实验:数据库综合查询(13页).doc

    -实验六:数据库综合查询一、实验目的1. 掌握SELECT语句的基本语法和查询条件表示方法;2. 掌握查询条件种类和表示方法;3. 掌握连接查询的表示及使用;4. 掌握嵌套查询的表示及使用;5. 了解集合查询的表示及使用。二、实验环境已安装SQL Server 2005 企业版的计算机(13台);具有局域网环境,有固定IP;三、实验学时2学时四、实验要求1. 了解SELECT语句的基本语法格式和执行方法;2. 了解连接查询的表示及使用;3. 了解嵌套查询的表示及使用;4. 了解集合查询的表示及使用;5. 完成实验报告;五、实验内容及步骤以数据库原理实验5数据为基础,请使用T-SQL 语句实现进行以下操作:1. 查询以DB_开头,且倒数第3个字符为s的课程的详细情况;USE studentSELECT '课程号'=Cno,'课程名'=Cname,'先行课号'=Cpno,'学分'=CcreditFROM courseWHERESUBSTRING(Cname,1,3)='DB_' ANDSUBSTRING(RIGHT(RTRIM(Cname),3),1,1)='s'2. 查询名字中第2个字为阳的学生姓名和学号及选修的课程号、课程名;USE studentSELECT '姓名'=student.Sname,'学号'=student.Sno,'课程号'=course.Cno,'课程名'=course.CnameFROM student,course,scWHEREstudent.Sno=sc.Sno ANDcourse.Cno=sc.Cno ANDSUBSTRING(LTRIM(student.Sname),2,1)='阳'3. 列出选修了数学或者大学英语的学生学号、姓名、所在院系、选修课程号及成绩;USE studentSELECT'学号'=student.Sno,'姓名'=student.Sname,'所在院系'=student.Sdept,'课程号'=sc.Cno,'成绩'=sc.GradeFROM student,course,scWHEREstudent.Sno=sc.Sno ANDcourse.Cno=sc.Cno AND(course.Cname='数学' OR course.Cname='大学英语')4. 查询缺少成绩的所有学生的详细情况;USE studentSELECT student.*FROM student,scWHEREstudent.Sno=sc.Sno ANDsc.Grade IS NULL5. 查询与张力(假设姓名唯一)年龄不同的所有学生的信息;USE studentSELECT *FROM studentWHERESname!='张力' ANDSage!=(SELECT Sage FROM student WHERE Sname='张力')6. 查询所选课程的平均成绩大于张力的平均成绩的学生学号、姓名及平均成绩;USE studentDECLARE ZL_AVG INTSET ZL_AVG=(SELECT AVG(sc.Grade)FROM sc,studentWHERE sc.Sno=student.Sno AND student.Sname='张力'GROUP BY sc.Sno,student.Sno)SELECT DISTINCT'学号'=student.Sno,'姓名'=student.Sname,'平均成绩'=AVG(sc.Grade)FROM student,scWHERE sc.Sno=student.SnoGROUP BY sc.Sno,student.Sno,student.SnameHAVING AVG(sc.Grade)>ZL_AVG7. 按照“学号,姓名,所在院系,已修学分”的顺序列出学生学分的获得情况。其中已修学分为考试已经及格的课程学分之和;USE studentSELECT DISTINCT'学号'=student.Sno,'姓名'=student.Sname,'所在院系'=student.Sdept,'已修学分'=SUM(CASE WHEN sc.Grade>=60 THEN course.Ccredit*1 ELSE 0 END)FROM student,sc,courseWHERE sc.Sno=student.Sno AND sc.Cno=course.CnoGROUP BY student.Sno,student.Sname,student.Sdept8. 列出只选修一门课程的学生的学号、姓名、院系及成绩;USE studentSELECT'学号'=student.Sno,'姓名'=student.Sname,'院系'=student.Sdept,'成绩'=sc.GradeFROM student,scWHERE student.Sno=sc.Sno ANDstudent.Sno=ANY(SELECT Sno FROM sc GROUP BY Sno HAVING COUNT(Cno)=1)9. 查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号;USE studentSELECT'学号'=student.Sno,'姓名'=student.Sname,'课程号'=sc.CnoFROM student,scWHERE student.Sno=sc.Sno ANDstudent.Sname!='张力' ANDsc.Cno=ANY(SELECT sc.Cno FROM sc,student WHERE sc.Sno=student.Sno AND student.Sname='张力')10. 只选修“数据库”和“数据结构”两门课程的学生的基本信息;USE studentSELECT'学号'=student.Sno,'姓名'=student.Sname,'学院'=student.Sdept,'选修课程'=course.CnameFROM student,sc,course,course bWHERE student.Sno=sc.Sno ANDcourse.Cno=sc.Cno ANDb.Cno=course.Cno AND(sc.Sno=ANY(SELECT Sno FROM sc GROUP BY Sno HAVING COUNT(Cno)=1) AND(course.Cname='数据库' OR course.Cname='数据结构')OR(sc.Sno=ANY(SELECT Sno FROM sc GROUP BY Sno HAVING COUNT(Cno)=2) ANDb.Cname='数据库' AND course.Cname='数据结构')11. 至少选修“数据库”或“数据结构”课程的学生的基本信息;USE studentSELECT DISTINCT'学号'=student.Sno,'姓名'=student.Sname,'学院'=student.SdeptFROM student,scWHERE student.Sno=sc.Sno ANDsc.Sno=ANY(SELECT sc.SnoFROM course,scWHERE course.Cno=sc.Cno AND(course.Cname='数据库' OR course.Cname='数据结构')12. 列出所有课程被选修的详细情况,包括课程号、课程名、学号、姓名及成绩;USE studentSELECT'课程号'=sc.Cno,'课程名'=course.Cname,'学号'=sc.Sno,'姓名'=student.Sname,'成绩'=sc.GradeFROM sc,course,studentWHERE sc.Cno=course.Cno AND sc.Sno=student.SnoORDER BY sc.Cno ASC13. 查询只被一名学生选修的课程的课程号、课程名;USE studentSELECT'课程号'=sc.Cno,'课程名'=course.CnameFROM sc,courseWHERE sc.Cno=course.CnoGROUP BY sc.Cno,course.CnameHAVING COUNT(sc.Sno)=1ORDER BY sc.Cno ASC14. 检索所学课程包含学生张向东所学课程的学生学号、姓名;USE studentSELECT DISTINCT'学号'=sc.Sno,'姓名'=student.SnameFROM sc,studentWHERE sc.Sno=student.Sno ANDstudent.Sname!='张向东' ANDsc.Cno=ANY(SELECT sc.Cno FROM sc,studentWHERE sc.Sno=student.Sno AND student.Sname='张向东')15. 使用嵌套查询列出选修了“数据结构”课程的学生学号和姓名;USE studentSELECT DISTINCT'学号'=sc.Sno,'姓名'=student.SnameFROM sc,student,courseWHERE sc.Sno=student.Sno ANDsc.Cno=course.Cno ANDsc.Sno=ANY(SELECT sc.Sno FROM sc,course WHERE sc.Cno=course.Cno AND course.Cname='数据结构')16. 使用嵌套查询查询其它系中年龄小于CS系的某个学生的学生姓名、年龄和院系;USE studentSELECT'姓名'=Sname,'年龄'=Sage,'院系'=SdeptFROM studentWHERE Sdept!='CS' AND Sage<ANY(SELECT TOP 4 Sage FROM student WHERE Sdept='CS')17. 使用ANY、ALL 查询,列出其他院系中比CS系所有学生年龄小的学生;USE studentSELECT *FROM studentWHERE Sdept!='CS' AND Sage<ALL(SELECT Sage FROM student WHERE Sdept='CS')18. 分别使用连接查询和嵌套查询,列出与张力在一个院系的学生的信息;连接:USE studentSELECT a.*FROM student a,student bWHERE a.Sdept=b.Sdept AND a.Sname!='张力' AND b.Sname='张力'嵌套:USE studentSELECT *FROM studentWHERE Sdept=ALL(SELECT Sdept FROM student WHERE Sname='张力') AND Sname!='张力'19. 使用集合查询列出CS系的学生以及性别为女的学生名单;USE studentSELECT *FROM studentWHERE Sdept='CS'UNIONSELECT *FROM studentWHERE Ssex='女'ORDER BY Sdept,Ssex ASC20. 使用集合查询列出CS系的学生与年龄不大于19岁的学生的交集、差集;USE studentSELECT *FROM studentWHERE Sdept='CS'EXCEPTSELECT *FROM studentWHERE Sage>19ORDER BY Sage ASCGOSELECT *FROM studentWHERE Sdept='CS'EXCEPTSELECT *FROM studentWHERE Sage!>19ORDER BY Sage ASC21. 使用集合查询列出选修课程1的学生集合与选修课程2的学生集合的交集;USE studentSELECT student.*FROM student,scWHERE sc.Sno=student.Sno AND sc.Cno='1'INTERSECTSELECT student.*FROM student,scWHERE sc.Sno=student.Sno AND sc.Cno='2'22. 思考题:按照课程名顺序显示各个学生选修的课程(如200515001 数据库 数据结构 数学);一种笨拙的循环方法:USE studentDECLARE SNumber INTDECLARE TmpSno INTSET SNumber=0WHILE SNumber<15BEGINSET TmpSno=(SELECT DISTINCT TOP (SNumber+1) SnoFROM scEXCEPT SELECT DISTINCT TOP (SNumber) SnoFROM sc)SELECT '学号'=Sno,'姓名'=Sname,'第一门'=(SELECT TOP 1 course.CnameFROM sc,courseWHERE sc.Cno=course.Cno AND sc.Sno=TmpSno),'第二门'=(SELECT TOP 2 course.CnameFROM sc,courseWHERE sc.Cno=course.Cno AND sc.Sno=TmpSnoEXCEPT SELECT TOP 1 course.CnameFROM sc,courseWHERE sc.Cno=course.Cno AND sc.Sno=TmpSno),'第三门'=(SELECT TOP 3 course.CnameFROM sc,courseWHERE sc.Cno=course.Cno AND sc.Sno=TmpSnoEXCEPT SELECT TOP 2 course.CnameFROM sc,courseWHERE sc.Cno=course.Cno AND sc.Sno=TmpSno),'第四门'=(SELECT TOP 4 course.CnameFROM sc,courseWHERE sc.Cno=course.Cno AND sc.Sno=TmpSnoEXCEPT SELECT TOP 3 course.CnameFROM sc,courseWHERE sc.Cno=course.Cno AND sc.Sno=TmpSno),'第五门'=(SELECT TOP 5 course.CnameFROM sc,courseWHERE sc.Cno=course.Cno AND sc.Sno=TmpSnoEXCEPT SELECT TOP 4 course.CnameFROM sc,courseWHERE sc.Cno=course.Cno AND sc.Sno=TmpSno)FROM studentWHERE Sno=TmpSnoSET SNumber=SNumber+1END六、出现问题及解决办法如:某些查询操作无法执行,如何解决?-第 13 页-

    注意事项

    本文(实验:数据库综合查询(13页).doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开