儲存過程(procedure):
建立乙個名為p1的儲存過程,功能是查詢成績表中成績為空的學生學號,姓名;執行p1。
create
procedure p1
asselect sno,sname
from student
where sno in
(select sno
from sc
where grade is
null
)
exec p1//exec 執行乙個儲存過程
建立乙個名稱為p2的儲存過程,該儲存過程的功能是向course資料表中插入一條記錄(包含cno,cname,credit),新記錄的值由引數提供;執行儲存過程p2,將課程號為c5,課程名為軟體工程,學分為3的課程資訊插入到課程表中。
create
procedure p2
(@cno
char(4
),//@cno相當於定義的引數
@cname
nchar(40
),@credit
smallint)as
insert
into course values
(@cno
,@cname
,@credit
)//values 資料,值
exec p2 'c5'
,'軟體工程'
,'3'
//exec 執行乙個儲存過程,在這裡相當於給引數賦值。
建立乙個名稱為p3的儲存過程,該儲存過程的功能是從成績表中查詢指定課程的最高分和最低分,列名為「最高分」,「最低分」;執行儲存過程p3,檢視課程名為「c語言」的最高分,最低分。
create
procedure p3 @課程名 char(30
)asselect
max(grade) 最高分,
min(grade) 最低分//max() 最大值函式 min() 最小值函式
from sc
where cno=
(select cno
from course
where cname= @課程名
)
exec p3 'c語言'
定義能夠返回值的儲存過程。建立乙個名稱為p4的儲存過程。該儲存過程的功能是從資料表s中根據學號查詢某一同學的姓名,及選修課程的課程名及成績。查詢的結果由引數@sn, @cname ,@grade返回;
執行儲存過程p4,查詢學號為1640的姓名、選修課程的課程名及成績。
create
procedure p4
(@sno
varchar(6
),//定義引數
@sn nvarchar(
10) output,
//有的儲存過程需要輸出結果到乙個變數中,有的卻不需要。需要記錄輸出結果時帶上output就可以把執行完後的結果賦給變數,然後拿到那個值可以作為需要的時候使用了。
@cname nvarchar(
10) output,
@grade
int output)as
select
@sn=sname,
@cname
=cname,
@grade
=grade//給引數賦值
from student,sc,course
where sc.sno=
@sno
and student.sno=
@sno
and course.cno=sc.cno
declare
@snvarchar(6
),@cname nvarchar(20)
,@grade
int//declare 宣告變數
exec p4 1640
,@sn output,
@cname output,
@grade output
select
@sn 姓名,
@cname 課程名,
@grade 成績
觸發器:
建立乙個觸發器trigger1,在學生表student中刪除某乙個學生時,在選課表sc中該學生的選課記錄也全部被刪除。
create
trigger trigger1
on student
after
delete
asdelete
from sc
where sc.sno in
(select sno from deleted)
//deleted 在delete表中臨時儲存了被刪除或被更新前的記錄行
設計乙個ddl觸發器trigger2,禁止修改和刪除當前資料庫中的任何表,提示語句為「不能刪除或修改資料庫!」。
create
trigger trigger2
ondatabase
for drop_table,alter_table
asprint
'不能刪除或修改資料庫!'
rollback
//資料庫裡做修改後(update ,insert , delete)未commit(提交)之前使用rollback可以恢復資料到修改之前。
儲存過程及觸發器
了解儲存過程的概念 優點 熟練掌握建立儲存過程的方法 熟練掌握儲存過程的呼叫方法 了解觸發器的概念 優點 掌握觸發器的方法和步驟 掌握觸發器的使用 oracle,plsql 功能要求 借書時要求輸入借閱流水號,借書證號,圖書編號。即該儲存過程有3個輸入引數 借書時,借書日期為系統時間。圖書的是否借出...
觸發器 儲存過程
1 為productsales資料庫中的產品表建立乙個名為update pno的update觸發器,該觸發器的作用是禁止更新產品表中的 productname 欄位的內容。並用update語句修改產品表中第一條記錄為 1 hp1500 印表機 2000 要求顯示 不能修改產品名稱 的警告資訊。cre...
儲存過程 觸發器
觸發器主要是通過事件進行觸發而被執行的,而儲存過程可以通過儲存過程名字而被直接呼叫。當對某一表進行諸如update insert delete 這些操作時,就會自動執行觸發器所定義的sql 語句,從而確保對資料的處理必須符合由這些sql 語句所定義的規則。觸發器的主要作用就是其能夠實現由主鍵和外來鍵...