




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档 1欢迎下载 软件学院 实 验 报 告 课程 数据库原理与实用技术实验 实验实验 7 7 创建和操作数据库对象创建和操作数据库对象 实验实验 7 17 1 存储过程存储过程 1 使用不带参数的存储过程 1 创建一个存储过程 my proc 查询 学生表 中所有计算机系女生的学号 姓名 性 别 年龄和所在院系 create proc my proc as select 学号 姓名 性别 年龄 所在院系 from 学生表 where 所在院系 计算机 and 性别 女 2 执行存储过程 3 修改存储过程 使其能够查询计算机系女生的所有基本信息 alter proc my proc as select from 学生表 where 所在院系 计算机 and 性别 女 2 带输入参数的存储过程 1 创建一个存储过程 my procsex 使其能够查询 学生表 中男学生或女学生的学号 精品文档 2欢迎下载 姓名 性别 年龄和所在院系 create proc my procsex sex char 2 as select 学号 姓名 性别 年龄 所在院系 from 学生表 where 性别 sex 2 执行存储过程 exec my procsex sex 男 3 带输入 输出参数的存储过程 1 创建一个存储过程 my procage 使其能够根据学生姓名 查询学生年龄 考虑当学 生不存在时给出提示信息 create proc my procage name char 10 age int OUTPUT as if not exists select from 学生表where 姓名 name return 155 select 年龄from 学生表 where 姓名 name 2 执行存储过程 declare once age int status int exec status my procage name 陈忠刚 age once age output if status 155 print 对不起 您输入的名字查找失败 print the output data is convert varchar 10 once age 精品文档 3欢迎下载 declare once age int status int exec status my procage name 李涛 age once age output if status 155 print 对不起 您输入的名字查找失败 print the output data is convert varchar 10 once age 4 返回状态值的存储过程 1 创建一个存储过程 my procstatus 使其能够根据学生姓名 查询学生的选课信息 如果没有输入学生姓名 返回状态码 55 如果输入的学生姓名不存在 则返回状态码 155 alter proc my procstatus name char 10 as if name return 55 else if not exists select from 学生表where 姓名 name return 155 select 学号 课程号 from 成绩表 where 学号 in select 学号 from 学生表 where 姓名 name 2 执行存储过程 接收存储过程返回的状态码 如果返回的状态码为 55 则输出提示信 息 没有输入名字 如果返回的状态码为 155 则输出 没找到 declare status int exec status my procstatus name 精品文档 4欢迎下载 if status 55 print 没有输入名字 else if status 155 print 没有找到 declare status int exec status my procstatus name 陈忠刚 if status 55 print 没有输入名字 else if status 155 print 没有找到 3 删除存储过程 5 在存储过程中使用临时表 不指定题目 请理解全局临时表与局部临时表的区别 1 局部临时表 开头 只对当前连接有效 当前连接断开时自动删除 2 全局临时表 开头 对其它连接也有效 在当前连接和其他访问过它的连接都断 开时自动删除 3 不管局部临时表还是全局临时表 只要连接有访问权限 都可以用 drop table Tmp 或者 drop table Tmp 来显式删除临时表 6 使用存储过程对规则进行绑定与解除绑定操作 精品文档 5欢迎下载 1 修改 学生管理数据库 中的 学生情况表 添加属性 入学日期 将规则 Enter University date rule 与入学日期进行绑定 2 在该表中插入数据记录 学号姓名性别年龄专业家庭地址入学日期 200803001 王艳女 19 计算机昆明市正义路 3 号 2008 8 27 查看执行结果 3 解除绑定 再次插入该数据 查看执行结果 7 使用存储过程对默认进行绑定与解除绑定操作 1 将默认对象 Time default 和 Age default 与上表中的 入学日期 和 年龄 进行绑定 并插入数据 学号姓名性别年龄专业家庭地址入学日期 200412056 张浩男通信沈阳市青年路 2 号 查看执行结果 精品文档 6欢迎下载 2 解除绑定 再次插入该数据 查看执行结果 实验实验 7 7 2 2 视图的创建与使用视图的创建与使用 1 创建一个名为 stud view1 的视图 从 学生管理数据库 的学生表中查询出性别为男的 所有学生的学号 姓名 性别 班级 家庭住址 入学时间和出生年月 create view stud view1 as select 学号 姓名 性别 班级 入学日期 from 学生 where 性别 精品文档 7欢迎下载 男 2 创建一个名为 stud view2 的视图 查询出选修了 高等数学 的所有同学的选课信息 包括学号 姓名 成绩 create view stud view2 as select 学生表 学号 学生表 姓名 成绩表 成绩 from 成绩表 join 学生表 on 成绩表 学号 学生表 学号 where 课程号 in select 课程号 from 课程表 where 课程名 高等数学 3 从视图 stud view1 中查询出软件 2 班肖一竹的资料 4 向视图 stud view2 中插入一行数据 学号为 9940210 姓名为钱丽 成绩为 71 结果 是什么 5 修改视图 stud view1 将 9940201 号同学的性别更改为女 然后再次查询学生表和视 图 stud view1 看结果有何改变 为什么 结果便是变为了显示从 学生管理数据库 的学生表中查询出性别为女的所有学生的学 号 姓名 性别 班级 入学日期 应为建立视图的时候 from 后面只跟了一张表 所以 可以对视图进行更新 精品文档 8欢迎下载 6 完成教科书 457 页如下习题 7 5 a 三条 SQL 语句都不合法 因为它们的创建视图语句中的 from 后面都跟了多张表 所以创建的视图不是可更新视图 7 5 b create view agentview as select from agents where percent 0 with check option 7 5 c 7 5 d create view vproducts as select pid pname city quantity from products 7 9 违反了规则 5 不能够含有 salary1 salary2 这种列 这样的话 如果我们对视图 进行更新以后就无法使原始表进行同步的更新 因为知道 salary1 salary2 的值 无法知 道 salary1 与 salary2 人别的值 7 12 精品文档 9欢迎下载 7 15 a 7 15 b 精品文档 10欢迎下载 update returns set discant 10 where cid c001 7 15 c 精品文档 11欢迎下载 7 15 d create view profits a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论