实验七创建和操作数据库对象
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
课程:数据库原理与实用技术实验
实验7 创建和操作数据库对象
实验7-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,使其能够查询“学生表”中男学生或女学生的学号、姓名、性别、年龄和所在院系
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)
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=’’
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、使用存储过程对规则进行绑定与解除绑定操作
(1)修改“学生管理数据库”中的“学生情况表”,添加属性“入学日期”。将规则
Enter_University_date_rule与入学日期进行绑定
查看执行结果
(3)解除绑定,再次插入该数据,查看执行结果。
7、使用存储过程对默认进行绑定与解除绑定操作
(1)将默认对象“Time_default”和“Age_default”与上表中的“入学日期”和“年
查看执行结果
(2)解除绑定,再次插入该数据,查看执行结果。
实验7-2 视图的创建与使用
1.创建一个名为stud_view1的视图,从“学生管理数据库”的学生表中查询出性别为男的所有学生的学号,姓名,性别,班级,家庭住址,入学时间和出生年月。
create view stud_view1 as select学号,姓名,性别,班级,入学日期from学生where性别='男'
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,结果是什么