06數據庫之觸發器

在數據庫Student_DB_SJW中做如下操作:
(1) 查詢學號爲201215121的姓名和所選修的課程門數,當門數爲2門及以上時,則輸出“XX,已經完成了選課”,否則輸出“XX,還需選課”。(提示:需定義變量存儲選修的課程門數和學生姓名)

use Student_DB_SJW

begin
	declare @sname char(10),@num int
	select @sname=Student.Sname,@num=COUNT(Cno)
	from Student,SC
	where Student.Sno=SC.Sno and Student.Sno='201215121'
	group by Sname
	if(@num>=2)
		print @sname+',已經完成選課'
	else 
		print @sname+',還需選課'
End

在這裏插入圖片描述
(2) 在數據庫中查找姓名爲“張立”的學生,若找到,輸出該學生的學號,姓名,年齡,院系,否則,輸出“查無此人”的信息。(提示:用if exists)

begin
	if exists(
		select Sno,Sname,Sage,Sdept
		from Student where Sname='張立')
		select Sno,Sname,Sage,Sdept
		from Student where Sname='張立'
	else
		print '查無此人'
end

在這裏插入圖片描述

(3) 在Student表上創建一個觸發器,每次有插入操作時,都設置變量@str的值爲"Trigger is working",並輸出顯示出來。
創建觸發器:

create trigger tril on student
after insert
as
begin
	declare @str char(20)
	set @str='Trigger is working'
	print @str
end

在這裏插入圖片描述

測試觸發器:
在這裏插入圖片描述
(4) 按課本P166頁的方式創建TEACHER表(在此之前需創建DEPT表)。並在此教師表中定義一個AFTER觸發器,爲教師表Teacher定義完整性規則“教授的工資不得低於4000元,如果低於4000元,自動改爲4000元”。並進行觸發器的驗證。

創建表:

在這裏插入圖片描述
創建觸發器:
在這裏插入圖片描述
驗證:
在這裏插入圖片描述
在這裏插入圖片描述

(5) 首先解除Student表和SC表的參照關係。然後在Student表上創建一個觸發器,使更新一個學生的學號信息時能夠級聯的更新此學生在SC表中的選課記錄的學號信息,並進行驗證。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
查看結果:
在這裏插入圖片描述
(6) 首先解除Student表和SC表的參照關係。然後在Student表上創建一個觸發器,使刪除一個學生時能夠級聯的刪除此學生在SC表中的選課記錄,並進行驗證。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章