- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL实验二:数据库查询实验报告
实验二 数据库的查询实验
实验目的和要求
(1)掌握SQL Server查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句的理解。
(2)熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
(3)熟练掌握数据查询中的分组、统计、计算和组合的操作方法。
实验内容和原理
在实验一定义的“学生成绩数据库”中,使用T-SQL语句完成以下查询:
(1)求计算机系学生的学号和姓名。
(2)求选修了数学的学生学号、姓名和成绩。
(3)求选修01课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
(4)查找选修课程的平均成绩位于前三名的学生的学号。
(5)查询计算机系的姓刘且单名的学生的信息。
(6)查询至少选修两门课程的学生学号。
(7)查询学生的学号、课程号以及对应成绩与所有学生所有课程的最高成绩的百分比。
(8)查询选修“数据库”课程,且成绩在80分以上的学生的学号和成绩。
(9)查询所有姓“王”的同学没有选修的课程名。(请分别用exists和in完成该查询)
(10)查询选修了全部课程的学生的姓名。(请至少写出两种查询语句)
(11)求选修了学生“95001”所选修的全部课程的学生学号和姓名。
(12)查询每一门课的间接先修课。
(13)列出所有学生所有可能的选课情况。
(14)列出每个学生的学号及选修课程号,没有选修的学生的学号也一并列出。
(15)输出与同性别并的所有同学的 1. 将查询需求用Transact-SQL语言表示。
2. 在 SQL Server查询分析器的输入区中输入 Transact-SQL查询语句。
3. 发布执行命令,查看查询结果;如果结果不正确,进行修改,直到正确为止。
4. 查询分析器及使用方法。
查询分析器是在开发数据库应用系统时使用最多的工具。查询分析器的主要作用是编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显示出来(或进行存储)。查询分析功能主要通过测试查询成本,判断该查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能、查询分析器的界面如图1所示。
在查询分析器中的左边窗口是对象浏览器,其中按树结构列出了数据库对象;右上方是SQL代码区域.用于输入 SQL的查询语句;右下方为结果区,用于显示查询结果和分析结果、对于TSQL语句的执行结果,在结果区中可以有4种不同的输出形式:标准执行将结果直接显示在结果区:网格执行将结果以表格形式显示在结果区;计划执行显示执行计划;索引分析为在结果区中显示查询的索引情况。上述输出形式,可以通过菜单或按钮选择。
五、调试过程
五、实验结果
六、总结
附录:
--(1) 求计算机系学生的学号和姓名。
select sno,sname
from student
where sdept=计算机
--(2)求选修了数学的学生学号、姓名和成绩。
select s.sno,sname,grade
from student s,sc,course c
where s.sno=sc.sno and sc.cno=c.cno and cname=数学
--(3)求选修课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
select sno,grade
from sc
where cno=1
order by grade desc,sno asc
--(4)查找选修课程的平均成绩位于前三名的学生的学号。
select top 3 sno
from sc
group by sno
order by avg(grade) desc
--(5)查询计算机系的姓刘且单名的学生的信息。
select *
from student
where sdept=计算机 and sname like 刘_
--(6)查询至少选修两门课程的学生学号。
select sno
from sc
group by sno
having count(*)=2
--(7)查询学生的学号、课程号以及对应成绩与所有学生所有课程的最高成绩的百分比。
select sno,cno,grade,最高成绩百分比=
grade*100/(select max(grade)from sc)
from sc
--(8)查询选修“数据库”课程,且成绩在分以上的学生的学号和成绩。
select sno,grade
from course c,sc
where cname=数据库 and grade80 and c.cno=sc.cno
--(9)查询所有姓“王”的同学没有选修的课程名。(请分别用exists和in完成该查询)
-
文档评论(0)