SSD7——数据库实验(五)

数据库实验五

还是用实验一建立的那三个表进行操作
相关知识请看这个博客,尤其是游标说的很清楚
(1)设置一个触发器,该触发器仅允许“dbo”用户可以删除学生表内数据,否则出错
说明:deleted表用于存储INSERT和UPDATE语句所影响的行的副本
在这里插入图片描述

CREATE TRIGGER dbo_delete
ON S
FOR DELETE
AS
	--这里指定了条件
	IF EXISTS (SELECT * FROM deleted)
		BEGIN
			IF USER != 'dbo'
		END
	DELETE FROM S WHERE S.Sno = '1'

(2)针对学生表写一个DELETE触发器

CREATE TRIGGER S_delete
ON S
FOR DELETE
AS
	PRINT('DELETE')
DELETE FROM S WHERE S.Sno = '1'

(3)针对学生表写一个UPDATE触发器

CREATE TRIGGER S_update
ON S
FOR UPDATE
AS
	PRINT(UPDATE)
UPDATE S SET S.sdept = 'CS' WHERE S.Sno = '1'

(4)统计学生的平均成绩,输出低于平均分的成绩(使用游标)
这篇博客比较详细

DECLARE lowavg CURSOR
FOR
	SELECT SC.grade
	FROM SC
	WHERE SC.grade < (SELECT avg(SC.grade) FROM SC)

OPEN lowavg
FETCH NEXT
FROM S
INTO @grade

WHILE @@fetch_status=0
    BEGIN
		PRINT(@grade)
        FETCH NEXT FROM lowavg INTO @grade
    END
CLOSE lowavg
DEALLOCATE lowavg

如图:
在这里插入图片描述

实验五结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值