




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/* 完成表中约束的定义 */-创建course表create table course(cno char(1) primary key,cname varchar(20) not null,credit smallint check(credit=1 and credit1 and number14 and sage0 and gmark 100), primary key (sno,cno)/* 针对成绩管理数据库中的表,完成以下操作:*/-(1)用户张勇对Student表和Course表有Select权力。Grant select on student to 张勇Grant select on course to 张勇-(2)把对表Student的INSERT和Delete权限授予用户张三,并允许他再把此权限授予其他用户。Grant insert,delete on student to 张三 with grant option-(3)把查询Course表和修改属性Credit的权限授给用户李四。Grant select,update(credit) on course to 李四-(4)授予用户李勇敏对Student表的所有权力(读、插、删、改),并具有给其他用户授权的权力。Grant all privilege on student to 李勇敏 with grant option-(5)撤销(1)中对张勇所授予的所有权力。Revoke select on student to 张勇Revoke select on course to 张勇或:Revoke select on student from 张勇Revoke select on course from 张勇-(6)撤销(2)中对张三所授予的所有权力。revoke insert,delete on student to 张三cascade或revoke insert,delete on student from 张三cascade/* 为成绩管理数据库中的Student表创建一触发器:当向表中插入或删除记录时,修改Class表中相应班级的人数。*/-创建insert触发器,适用于student表的单行数据的添加create trigger stu_inserton studentafter insertas update class set number=number+1 from class,inserted where class.clno = inserted.clno-创建delete触发器,适用于student表的单行数据的删除create trigger stu_deleteon studentafter deleteas update class set number=number-1 from class,deleted where class.clno = deleted.clno -将insert和delete写入一个触发器内,适用于student表的单行数据的添加或删除create trigger tri_stuon studentafter insert,delete as if update(sno) update class set number=number+1 where clno = (select clno from inserted)else update class set number=number-1 where clno = (select clno from deleted)-验证触发器,添加数据insert into studentvalues (2222,tom,男,20,00311)-验证触发器,删除数据delete from studentwhere sno=2222-假设向student表添加或删除的多行数据都来自同一个班级create trigger tri_stu2on studentafter insert,deleteasif update(sno) update class set number=number+(select count(*) from inserted) where clno = (select clno from inserted)else update class set number=number-(select count(*) from inserted) where clno = (select clno from deleted)-适用于student表的多行数据的添加或删除(最靠谱解决方案)create trigger tri_stu2on studentafter insert,deleteasbegin declare sno char(7),clno char(5) if update(sno) begin declare mycursor cursor for select sno,clno from inserted -声明游标 open mycursor -打开游标 fetch next from mycursor into sno,clno -获取数据 while(fetch_status =0 ) /* 0操作成功,-1 FETCH 语句失败或此行不在结果集中,-2 被提取的行不存在 */ begin update class set number=number+1 where clno = clno fetch next from mycursor into sno,clno end close mycursor -关闭游标 deallocate mycursor -释放游标 end else begin declare mycursor cursor for select sno,clno from deleted open mycursor fetch next from mycursor into sno,clno while(fetch_status = 0) begin update class set number = number -1 where clno=clno fetch next from mycursor into sno,clno end close mycursor deallocate mycursor endend-为class表再建一更新触发器:当更新班长学号时,检查新输入的学号是否为同一班级的学生学号,若不是,给出适当的提示信息。create trigger stu_updateon classafter updateas if update(monitor) if ( select monitor from inserted ) not in ( select sno from student where clno = (select clno from deleted ) )begin print there is not the new monitor in the classrollback transactionend-验证触发器执行update classset monitor = 2001104where clno = 00312-创建商品表create table product( pno char(6) primary key, pname varchar(20) not null, price decimal(7,2) )-创建仓库表create table warehouse( whno char(3) primary key, whname varchar(20) not null, whaddress varchar(20) ) -创建库存商品表create table whproduct( whno char(3) references warehouse(whno) on delete no action on update cascade, pno char(6) references product(pno) on delete cascade on update cascade, number int )-设计触发器,当新增商品时,自动生成该商品在所有仓库的库存记录,库存数量为0create trigger tri_producton productafter insertasbegin declare pno char(3) select pno=pno from inserted insert into whproduct select whno,pno,0 from warehouse end-设计触发器,当新增
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 七年级下册教学设计与指导
- 畜牧兽医疫苗研究与开发考核试卷
- 初中剪纸艺术课程教案设计
- 一流的管理者:3不管、4不说、5不帮的管理智慧
- 2024-2030全球水飞蓟素原料药行业调研及趋势分析报告
- 2025年公用设备工程师之专业案例(暖通空调专业)强化训练试卷B卷附答案
- 幼儿教育个人简历
- 大学生性教育
- 2025年工程地震观测设备项目合作计划书
- 包装设计社会调研
- 2024年怀化市鹤城区社区专职工作人员招聘笔试真题
- 《养牛与牛病防控技术》课件-项目九 疾病防控体系
- 三重一大培训课件
- 安装防雷设施合同协议
- 广东省2024-2025学年佛山市普通高中教学质量检测生物试卷(二)高三试卷(佛山二模)
- 商业银行资产配置与风险管理
- 《第六单元 音乐知识 下滑音》(教学设计)-2023-2024学年人教版(2012)音乐三年级下册
- 外研版(三起)(2024)三年级下册英语Unit 3 单元测试卷(含答案)
- 项目评估保密协议书(2篇)
- 清洗清洁功能无人机
- 农产品批发市场运营方案
评论
0/150
提交评论