第一篇:3数据库查询实验
实验三 数据库查询实验
(3)数据库的组合查询和统计查询实验
课时安排:2课时
一、实验目的和要求
使学生熟练掌握SQL Server查询分析器的使用方法.加深对SQL和Transact-SQL语言的查询语句的理解。熟练掌握数据查询中的分组、统计、计算和组合的操作方法。
二、实验内容 分组查询实验该实验包括分组条件表达、选择组条件的表达方法。使用函数查询的实验。该实验包括统计函数和分组统计函数的使用方法。
组合查询实验。计算和分组计算查询的实验。
三、实验方法
将查询需求用 Transact-SQL语言表示;在 SQL Server查询分析器的输入区中输入Transact-SQL查询语句:设置查询分析器的结果区为Standard Execute(标准执行)或Executeto Grid(网格执行)方式.发布执行命令 并在结果区中查看查询结果;如果结果不正确要进行修改.直到正确为止。
四、实验步骤
基本操作实验
在图书借阅库中实现其查询操作。
(1)查找这样的图书类别:要求类别中最高的图书定价不低于全部按类别分组的图书平均定价的2倍。
(2)求机械工业出版社出版的各类图书的平均定价,用GROUPBY表示。
(3)列出计算机类图书的书号、名称及价格.最后求出册数和总价格。
(4)列出计算机类图书的书号、名称及价格 并求出各出版社这类书的总价格.最后求出全部册数和总价格。
(5)查询计算机类和机械工业出版社出版的图书。
提高操作实验
将自设计的数据库应用项目中的分组、统计、计算和组合查询用Transact-SQL语句表示.并通过SQL Server 查询分析器实现其查询操作。
五、实验报告要求 分别用SQL和Transact-SQLL写出实验操作的查询语句 对两种语言进行比较。
实验步骤和实验结果。实验中的问题和提高。
六、注意事项 子句WHERE<条件>表示元组筛选条件,子句HAVING <条件>表示组选择条件。组合查询的子句间不能有语句结束符。子句HAVING<条件>必须和GROUP BY <分组字段>子句配合使用。
七、思考题 组合查询语句是否可以用其他语句代替,有什么不同? 使用 GROUP BY <分组条件>子句后,语句中的统计函数的运行结果有什么不同?
第二篇:实验5 数据库的嵌套查询实验
实验五
数据库的嵌套查询实验
1、实验目的
本实验的目的是使学生进一步掌握SQL Server查询分析器的使用方法,加深SQL语言的嵌套查询语句的理解
2、实验时数
2学时
3、实验内容
本实验的主要内容是:在SQL Server查询分析器中使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。
具体完成以下例题。将它们用SQL语句表示,在学生数据库中实现其数据嵌套查询操作。
1、查询选修了高等数学的学生学号和姓名 select Sno,Sname from Student where Sno in(select Sno from SC,Course where SC.Cno=Course.Cno and Cname='数学')
2、查询1号课程的成绩高于刘晨的1号课程成绩的学生学号和成绩 select SC.Sno,Grade from SC,Student where Cno='1' and SC.Sno=Student.Sno and Grade>all(select Grade from SC,Student where SC.Sno=Student.Sno and Sname='刘晨')
3、查询其他系中比cs系某一学生年龄小的学生(即年龄小于计算机系年龄最大者的学生)select * from Student where Sdept!='cs' and Sage 4、查询其他系中比cs系所有学生年龄都小的学生 select * from Student where Sdept!='cs' and Sage 5、查询选修了2号课程的学生姓名 select Sname from Student where Sno in(select Student.Sno from SC,Student where SC.Sno=Student.Sno and Cno='2') 6、查询没有选修2号课程的学生姓名 elect Sname from Student where exists(select SC.Sno from SC,Student where Cno!='2' group by SC.Sno) 7、查询选修了全部课程的学生姓名 Select * from SC where Cno=all(select Cno from Course) 8、求至少选修了学号为“00215122”的学生所选修全部课程的学生学号和姓名 select Sno,Sname from Student where Sno in(select Student.Sno from Student,SC where Student.Sno=SC.Sno and Cno=any(select Cno from SC where Sno='00215122')) 4、实验方法 将查询需求用SQL语言表示:在SQL Server查询分析器的输入区中输入SQL查询语句:设置查询分析器的结果区为Standard Execute(标准执行)或Execute to Grid(网格执行)方式;发布执行命令,并在结果区中查看查询结果;如果结果不正确,要进行修改,直到正确为止。 5、实验心得体会 本次实验还是进行查询操作,只是在第四次试验的基础上加入了嵌套,嵌套查询是在我们以后进行软件开发涉及数据库常用的查询操作,通过实验有助于我们对嵌套查询的理解,对我们熟练的使用SQL查询语句进行查询操作有很大帮助。 实验六 综合练习 一、实验目的 熟练掌握SQL语句的使用 二、实验内容 1.查询成绩在80~90之间的记录 2.查询至少有2个同学选修的课程名 3.查询其他系中比“信息系”所有学生年龄都小的学生名单以及年龄,并按年龄降序输出 4.查询与学生“张立”同岁的学生姓名 5.查询选修了两门以上课程的学生名单 6.查询成绩比该课程平均成绩高的学生名单以及成绩,输出课程号、平均分、学号,成绩。 7.查询每个学生各门课程的平均成绩和最高成绩,按降序输出姓名、平均成绩和最高成绩 8.查询所有未选01号课程的学生名单 9.查询选修了“200215122”号学生选修了的课程的学生学号和姓名 10.查询所有学生都选修了的课程的课程号和课程名 三.心得体会 此次试验涉及到单表查询,多表查询,查询中用到了比较运算符,子查询,自身连接等多种方法,要求我们必须熟练掌握SQL语言才能高效快速的完成练习。同时应该仔细认真地理解题目意思才能防止各类错误的出现。 实验1.1 使用SQL Server工具(Microsoft SQL Server Management Studio Express)管理数据库 实验内容: (1)使用SSMS(SQL Server Management Studio)加入实验数据库。(2)使用SSMS可视化建立、修改和删除数据库、表。(3)使用SSMS对数据库进行备份和恢复。 (4)使用SSMS对表进行查询、插入、修改、删除。实验步骤: (1)加入School数据库。(2)建立Test数据库。 (3)在数据库中建立人员表PERSON(P#,Pname,Page)。更改表设置P#为主键,增加属性Ptype(类型是CHAR,长度是10)。 (4)用SSMS的查询功能(新建查询)对PERSON表进行查询、插入、修改、删除等操作:首先插入两条记录;修改第二条记录;删除第二条记录。(5)备份Test数据库。(6)删除表PERSON。(7)恢复Test数据库。(8)删除Test数据库。 3.实验步骤 在学生选课数据库中实现其查询操作,写出T-SQL语句(注:学生选课数据库为前三次实验课所建立的数 据库) 一、简单查询实验 (1)查询选修了课程的学生学号。 (2)查询选修课程号为0101的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按 学号升序排列。 (3)查询选修课程号为0101的成绩在80~90分之间的学生学号和成绩,并将成绩乘以系数0.8输出。 二、连接查询实验 (1)查询每个学生的情况以及他(她)所选修的课程。 (2)查询选修离散散学课程且成绩为90分以上的学生学号、姓名及成绩。 (3)查询每一门课的间接先行课(即先行课的先行课) 三、嵌套查询操作 (1)查询0101课程的成绩高于张林的学生学号和成绩。 (2)查询其他系中年龄小于计算机系年龄最大者的学生。 (3)查询同王洪敏“数据库原理”课程分数相同的学生的学号。 (4)查询选修了全部课程的学生的姓名。 (5)查询与学号为09001103的学生所选修的全部课程相同的学生学号和姓名。 (6)查询至少选修了学号为09001103的学生所选修的全部课程的学生学号和姓名。 四、组合查询和分组查询 (1)查找选修“计算机基础”课程的学生成绩比此课程的平均成绩大的学生学号、成绩。 (2)查询年龄大于女同学平均年龄的男同学姓名和年龄。 (3)列出各系学生的总人数,并按人数进行降序排列。 (5)查询选修计算机基础和离散数学的学生学号和平均成绩。 4、要求 请按题号依次作答,完成在word文档中,写明班级学号姓名,于周日之于周日之前发至xcf7@163.com,独立完成,严禁抄第三篇:数据库实验(查询的综合练习)
第四篇:数据库实验
第五篇:数据库实验