发文章
发文工具
撰写
网文摘手
文档
视频
思维导图
随笔
相册
原创同步助手
其他工具
图片转文字
文件清理
AI助手
留言交流
if exists(
select
name
from
sysobjects
where
=
'proc_1'
and
type=
'p'
)
drop
procedure
proc_1
go
create
proc proc_1
@stsno
varchar
(6)
as
s.学号,s.姓名,s.性别,SC.成绩,SC.课程号,c.课程名
s
,sc,c
s.学号=@stsno
SC.学号=s.学号
SC.课程号=c.课程号
execute
proc_1 J0401
--2.在数据库studentcourse中创建存储过程,存储过程名为proc_2,
if exists (
'proc_2'
proc_2
proc proc_2
@cno
(10)
c.课程号,c.课程名,s.学号,s.姓名,s.系,
s.性别
s,c,sc
s.学号=SC.学号
c.课程号=@cno
proc_2 c01
--3.在数据库studentcourse中创建触发器,触发器名为trigger_1,
'trigger_1'
'tr'
trigger
trigger_1
on
c
after
insert
,
update
delete
begin
print (
'课程表被修改了'
end
set
c.学分=5
c.课程号=
'c03'
--4.在数据库studentcourse中创建触发器,触发器名为trigger_2,
'trigger_2'
tirgger_2
trigger_2
declare
char
(7)
@cno=deleted.课程号
deleted
sc
sc.课程号=@cno
--5.在数据库studentcourse中创建触发器,触发器名为trigger_3
'trigger_3'
trigger_3
课程号=(
课程号
sc)
in
(
c)
6.创建向课程数据表C添加新记录的存储过程cadd。
'cadd'
cadd
(3),@cname
(20),
@socre
smallint
,@prcno
(3),
@teacher
(8)
into
C(课程号,课程名,学分,预选课程号,教师)
values
(@cno,
@cname,@socre,
@prcno,@teacher)
exec
'C06'
'C#'
,7,
'C01'
'黎明'
*
7.创建修z丈课程数据表C扒L录的存储过程cupdate
'cupdate'
cupdate
课程号=@cno,
课程名=@cname,学分=@socre,
预选课程号=@prcno,教师=@teacher
8. 创建存储过程cdeleted,要求删除课程数据表C中指定课
程号的记录。
'cdeleted'
cdeleted
(3)
9.创建存储过程avgc,查询指定课程的平均成绩,
如果平均成绩大于80分,则返回状态代码1;否则,返回状态代码2。
'avgc'
avgc
(3),@back
output
@back=
AVG
(SC.成绩)
SC
SC.课程号=@cno
if(@back>80)
return
1
else
2
avgc c01,1
10.显示存储过程cupdate的参数,数据类型.
存储过程源代码和存储过程相关的数据库对象。
sp_help
11.在数据库studentcourse中建立一个名为LOOK_g的存储
过程,用于检索指定课程不及格的学生的姓名与学号。
'LOOK_g'
LOOK_g
s.姓名,s.学号
s,SC
SC.成绩<60)
SC.成绩<60
print
'没有不及格学生'
12.将存储过程cupdate的名称改为course_update,
删除LOOK_g存储过程。
sp_rename cupdate,course_update
13. 定义一个存储过程,查询数据库中指定同学各门功课的
成绩。显示时按照课程号顺序显示。
LOOK
@
s.姓名,c.课程号,SC.成绩
SC,s,c
s.姓名=@
group
by
c.课程号,s.姓名,SC.成绩
lOOK @
'李丽'
14.在学生选课数据库中,建立触发器c1_trigger,当向
学生选课数据表SC中添加一条记录时,要求新记录的课程号值在
课程数据表C中存在,如果不存在,则拒绝向
学生选课数据表SC添加这条记录。
c1_trigger
if(
count
(*)
inserted
join
inserted.课程号=c.课程号)=0
rollback
tran
'插入无效'
15.在学生选课数据库中,建立触发器c2_trigger,
修改课程数据表C中的课程号的值,该字段在学生选课数据表
SC中的值也相应修改。
c2_trigger
deleted))
16.在学生选课数据库中,建立触发器c3_trigger,删除课程
数据表C中的一条记录,如果该条记录的课程号值在学生选课数
据表SC中存在,则不允许删除;否则可以删除。
c3_trigger
for
deleted c
c.课程号
sc.课程号
sc))
raiserror(
'不可删除'
,16,1)
17.删除c3_trigger触发器。
18. 创建一触发器c4_trigger,如果修改、删除和插入学生选
课数据表SC中的任何数据
,则将向客户显示一条信息“不得对数据表进行任何修改!”
If exists(
'c4_trigger'
c4_trigger
'不得对数据表进行任何修改'
,16,10)
来自: 昵称10504424 > 《工作》
0条评论
发表
请遵守用户 评论公约
Oracle触发器使用介绍
create or replace trigger tr_Insert_Sc after insert on sc for each row begin --insert 的时候使用:new update SC_Number set ccount=ccount+1 where SC_Number.Sno=:new.Sno; end;/*2、当删除SC...
sqlServer2005习题与答案
select * from sc order by sno,cno compute count(cno) by sno按SNO,CNO分组进行统计。使用ANSI:select student.sno,sname,sc.sno,cno from student inner join sc on student.sno=sc.sno.使...
一套Oracle SQL练习题及答案
*********************************select stu.sno,stu.sname,count(sc.cno) from student stuleft join sc on stu.sno=sc.snogroup by stu.sno,stu.snamehaving count(sc.cno)<(select count(disti...
数据库笔试题
create database stu_courseuse stu_coursecreate table student(sno varchar(32),sname varchar(32),ssex varchar(32),sage int,sdept varchar(32))create table Course(Cno varchar(32),Cname varcha...
sql查询语句select 应用举例
select sname from student where sdept=''cs''select sname,ssex from student where sdept=''is'' or sdept=''ma'' or sdept=''cs'...
SQL查询语句练习题27道
SELECT Sno 学号,Cno 课程号,Grade 成绩FROM SC.--使用SELECT INTO插入数据的方法,是在插入数据的过程中建立新表SELECT student.Sname ...
数据库系统教程(何玉洁 李宝安 编著)第5章习题答案
select Sno,Cno,Grade from SC.--9.统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果 select sno,count(*)选课门数,sum(G...
元组关系演算语言ALPHA
Sname): ヨSCX (SCX.Sno=Student.Sno ∧ ヨCX (CX.Cno=SC.Cno ∧ CX.Pcno=‘6‘)) 本例中的元组关系演算公式可以变换为前束范式(Prenex normal form)的形式: GET W (Student.Sname): ヨSCXヨCX (SCX...
实验四:查询语句练习
select sdept,sname,sagefrom studentwhere sdept=‘计算机’select sname,sagefrom studentwhere sage<18.select sname,sage from studentwhere sage>20.select sname,sagefrom studentwhere ...
微信扫码,在手机上查看选中内容