数据库开发技术实验指导书计本10唐军芳

上传人:夏** 文档编号:512463991 上传时间:2023-02-21 格式:DOC 页数:22 大小:83.51KB
返回 下载 相关 举报
数据库开发技术实验指导书计本10唐军芳_第1页
第1页 / 共22页
数据库开发技术实验指导书计本10唐军芳_第2页
第2页 / 共22页
数据库开发技术实验指导书计本10唐军芳_第3页
第3页 / 共22页
数据库开发技术实验指导书计本10唐军芳_第4页
第4页 / 共22页
数据库开发技术实验指导书计本10唐军芳_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《数据库开发技术实验指导书计本10唐军芳》由会员分享,可在线阅读,更多相关《数据库开发技术实验指导书计本10唐军芳(22页珍藏版)》请在金锄头文库上搜索。

1、浙江树人大学信息科技学院数据库开发技术实验指导书适合专业:计算机科学与技术本科专业编写部门:电子商务教研室编写日期:2012.09实验一:T-SQL高级查询1实验二:数据完整性测试7实验三:T-SQL编程结构9实验四:游标和事务设计11实验五:SQL Server函数的使用14实验六:存储过程的创建和使用16实验七:触发器的创建18实验一:T-SQL高级查询一、 实验目的通过实验使学生掌握T-SQL高级查询。本次实验让学生学会掌握多表查询的思想,使用UNION子句,以及熟悉统计函数的用法;让学生学会使用group by子句,compute和compute by子句,以及掌握较为复杂的嵌套查询的

2、思想。二、 原理解析1、 多表查询在以前的课程中,所使用的查询局限于一张表格中,但在更多的情况下,需要对多张表格中的数据同时进行查询,这是可以把多张表格的名字全部填写在FROM子句中。在使用多表查询时需要注意的是如何避免笛卡尔积的出现。2、 使用UNION子句如果有多个不同的查询结果数据集合,但又希望将他们连接在一起组成一组数据。这组数据是这多个结果集合的逻辑联合,在这种情况下,可以使用UNION子句。在UNION子句的使用中,有两条基本原则:1)、每一个结果集的数据类型都必须相同,更确切地说是兼容;2)、每一个结果集中列的数量都必须相等,排列顺序必须相互对应。3、 使用统计函数为了有效的处理

3、使用SQL查询得到的数据集合,SQL Server提供了一系列统计函数。这些函数把存储在数据库中的数据描述为一个整体而不是一行行孤立的记录。通过使用这些函数可以实现对数据集合汇总,求平均值等各种运算。4、 使用group by 子句在大多数情况下使用统计函数,返回的是所有行数据的统计结果。如果需要按某一列数据的值进行分类,在分类的基础上再进行查询,就需要使用group by子句了。需要注意的是在group by子句中不支持对列分配的别名也不支持任何使用了统计函数的集合列。另外,Select后面每一列数据除了出现在统计函数中的列以外都必须在group by子句中应用。5、 使用compute 和

4、compute by子句使用compute子句,允许同时观察查询所得的各列数据的细节以及统计各列数据所产生的总和。通过使用compute子句既可以计算数据分类后的和,也可以计算所有数据的总和。需要注意的是,从返回的查询结果来看,compute子句和group by子句非常类似。但是两者之间存在着较大的区别,使用group by子句只能产生一个结果集合;使用compute可以返回多种结果集。6、 使用嵌套查询在以前的实验中,我们所使用的查询都是单层查询,但在实际应用中经常要应用到嵌套查询。嵌套查询要求服务器在处理最终查询工作之前先生成一个结果,然后根据当前的查询结果再进一步继续下面的查询工作。但

5、嵌套查询返回的结果作为查询条件等号右边的值存在时之允许嵌套查询返回一行结果,否则系统出错。三、 实验内容1、 查询每个学生的学号、姓名、邮政编码等基本信息及其所选课程的成绩情况;2、 查询学生信息数据表中所有学生的学号、姓名、院系名称和院系编号;3、 查询每门课程名称及该门课的任课教师的姓名、编号;4、 在stud_info与stud_grade中按学号stud_id进行等值连接,以查询所有参加考试的基本信息和成绩;5、 查询所学专业为“计算机控制技术”或年龄为21岁的所有学生的姓名;6、 查询计算机工程系全体教师的平均工资;7、 求计算机工程系教师的平均年龄;8、 求计算机工程系教师的总人数

6、。9、 统计计算机工程系各个专业的学生的平均入学成绩;10、 在学生成绩表中统计各门课程的人数;11、 在教师信息表中,按职称分组统计“教授”或“副教授”的工资总额;12、 按职称统计各个教研室的教师人数;13、 对teacher_info中职称为“讲师”的教师工资生成汇总行和明细行;14、 对teacher_info中职称为“讲师”或“助教”的教师工资,按照其职称生成分组汇总行和明细行;15、 查询工资高于“孙乐多”的所有老师的编号、姓名、性别及工资(用子查询实现);16、 在学生成绩表中查询课程类型为“考试”的学生的学号、姓名、成绩(用子查询实现);17、 查询课程号为“040101010

7、6”的课程的成绩在8089分的学生的学号、姓名(用exists实现)。18、 完成习题中的相应内容。四、 实验步骤1、查询每个学生的学号、姓名、邮政编码等基本信息及其所选课程的成绩情况:select from where 2、查询学生信息数据表中所有学生的学号、姓名、院系名称和院系编号:select from where substring( )= 3、查询每门课程名称及该门课的任课教师的姓名、编号:select from where 4、 在Stud_info与stud_grade中按学号stud_id进行等值连接,以查询所有参加考试的基本信息和成绩:select *from stud_in

8、fo stud_gradeon order by stud_info.stud_id5、 查询所学专业为“计算机控制技术”或年龄为21岁的所有学生的姓名:select stud_id, name from where unionselect stud_id, name from stud_info where DATEDIFF)( )=216、 查询计算机工程系全体教师的平均工资:select as 计算机工程系教师平均工资from teacher_info where left( )= (select deptcode from dept_code where deptname=计算机工程系

9、)7、 求计算机工程系教师的平均年龄:select as 平均年龄from teacher_infowhere left( )=(select deptcode from dept_code where deptname=计算机工程系)8、 求计算机工程系教师的总人数:select from teacher_infowhere left( )=(select deptcode from dept_code where deptname=计算机工程系)9、 统计计算机工程系各个专业的学生的平均入学成绩:select from where substring(stud_id,5,2)10、 在学生

10、成绩表中统计各门课程的人数:select from 11、 在教师信息表中,按职称分组统计“教授”或“副教授”的工资总额:select from 12、 按职称统计各个教研室的教师人数:select tech_title 职称, from teacher_infogroup by 13、 对teacher_info中职称为“讲师”的教师工资生成汇总行和明细行:select tech_title,salaryfrom teacher_infowhere order by tech_title 14、 对teacher_info中职称为“讲师”或“助教”的教师工资,按照其职称生成分组汇总行和明细行

11、:select tech_title,salaryfrom teacher_infowhere order by tech_title 15、 查询工资高于“孙乐多”的所有老师的编号、姓名、性别及工资:select from teacher_infowhere 16、 在学生成绩表中查询课程类型为“考试”的学生的学号、姓名、成绩:select from teacher_infowhere 17、 查询课程号为“0401010106”的课程的成绩在8089分的学生的学号、姓名(用exists实现):select from stud_infowhere exists 实验二:数据完整性测试一、实验

12、目的通过实验使学生理解数据库设计中的数据完整性概念,通过学习教程,掌握和熟悉实施数据完整性的途径,本章实施数据完整性的途径包括约束、规则、默认值、标识列。二、原理解析数据的完整性是指存储在数据库中数据的正确性和相容性。设计数据库完整性的目的是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出。1、 使用约束实施数据完整性约束的用途是检查输入到表中的值的范围,SQL Server提供的约束主要有:主键约束、外键约束、惟一约束、检查约束、NULL约束、CASCADE级联引用一致性约束等。2、 使用规则规则是一组使用T-SQL书写的条件语句,它可以和列或者是用户自定义数据类型捆绑在一起。当用户向绑定有规则的数据列上插入或修改值时,规则会检测修改的完整性。3、 使用默认值SQL Server提供的默认值有助于处理用户不含全部表列的INSERT操作。使用方法类似于规则。4、 使用标识列定义为标识列属性的列不必在插入新行时为其赋值,因为服务器会自动为新增加的行中的Identity列设置一个唯一的行序列号。三、 实验内容1、 在企业管理中为表st

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号