資料庫後台程式設計技術解析

2021-12-30 07:28:51 字數 1918 閱讀 8149

一、儲存過程

1.1、基本概念

實際上是儲存在資料庫中供所有使用者程式呼叫的子程式。

好處:允許模組化程式設計;改善效能;減少網路流量;增強應用程式的安全性。

1.2.1、建立

create procedure procedure_name

@ parame_name data_type

assql語句

1.2.2、執行儲存過程

execute procedure_name 引數

例:帶輸入引數和乙個輸出引數的儲存過程。建立統計指定型別商品的種類數的儲存過程,並將統計結果作為輸出引數返回。

create procedure p_goodscount

@ class varchar(20), @ count int output

asselect @ count=count(*) from table_goods a

join table_goodsclass b on a.goodsclassid = b.goodsclassid

where goodsclassname = @ class

執行此儲存過程

declare @ c int

exec p_goodscount '服裝' , @ c output

print @ c

1.2.3、刪除儲存過程

drop procedure procedure_name

二、使用者定義函式

它和儲存過程類似,但是函式必須有乙個return子句,用於返回函式值。

sqlserver2008支援兩類:標量函式和錶值函式。

2.1.1、建立標量函式

create function function_name

(@ parema_name data_type)

returns returndata_type

asbegin

function_body

return scalar_expression

end2.1.2、建立內聯錶值函式

create function function_name(@ pareme_name data_type)

returns table

asreturn (select_statement)

2.2刪除

drop function function_name

三、觸發器

3.1、基本概念

觸發器是一種特殊的儲存過程,它不需要使用者直接呼叫,在對錶中的資料進行update、inserte或delete操作時自動觸發。

保證了業務規則和資料完整性,完成比check約束更加複雜的資料約束。

在觸發器中,使用者執行資料的更改操作時,sqlserver自動建立和管理著兩張表:inserted和 deleted表。

deleted表用於儲存被更改的所有行在更改前的資料(按行進行);

inserted表用於儲存insert和update語句所影響的行的副本,是更改後的資料的副本。

三種型別:dml、ddl和登入觸發器。

3.2、建立dml觸發器

create trigger trigger_name

on as

for |after為後觸發型觸發器,只有引發的sql語句都成功執行,並且所有的約束檢查也成功後,才執行。(不能在檢視上定義after觸發器),在同一種操作上可以建立多個觸發器。

instead of為執行觸發器,也叫前觸發型觸發器。在同一種操作上只能建立乙個觸發器。

所有的建立和更改資料庫以及資料庫物件的語句、所有的drop語句都不允許在觸發器中使用。

3.3刪除

drop trigger trigger_name

四、游標

游標是乙個查詢結果,游標機制為使用者提供了在查詢結果集中進行行、列定位的操作,使得人們可以深入到結果集內部進行操作。

四 資料庫程式設計技術

一 一些高階查詢功能 當用check進行約束條件限制時,若其只涉及對某一列的約束則可以放在該列後面,如果是約束條件中涉及兩列或兩列以上,則為對整個資料表的約束,放在表的最後面 二 儲存過程 儲存過程是呼叫執行的 儲存在伺服器端的 段 儲存過程可以接受多個輸入引數,也可以接受多個輸出引數 儲存過程的優...

資料庫後台程式設計技術中的使用者定義函式

使用者定義函式與程式語言中的函式類似,其結構與儲存過程類似,但函式必須有乙個return子句,用於返回函式值。錶值函式 錶值函式將返回乙個表 語句錶值函式 多語句錶值函式的功能的功能是檢視和儲存過程的組合,可以利用多語句錶值函式返回乙個表,表中的內容可由複雜的邏輯和多條sql語句構建 類似於儲存過程...

Java資料庫程式設計技術 第一章習題

create table book bid varchar 20 not null comment 圖書編號 bname varchar 50 not null comment 圖書書名 author varchar 50 default null comment 作者姓名 pubcomp varc...