建立儲存過程和函式

2021-09-19 02:59:34 字數 1996 閱讀 8313

#1

.建立資料表

create

table

sch(

id int(10) primary

keynot

null

unique

, name

varchar(50) not

null

, glass

varchar(50) not

null

);#插入資料

insert

into sch values(1,'

xiaoming

','glass1

'),(2,'

xiaojun

','glass2');

#檢視建立的**

desc

sch;

#檢視表中的內容

select

*from

sch;#2

.建立乙個儲存函式來統計表sch中的記錄數

create

function

count_sch()

returns

intreturn (select

count(*) from

sch);

#檢視select count_sch() as

count_sch;

#建立的儲存函式名稱為count_sch,通過select count_sch()檢視函式執行的情況,這個表中只有兩條記錄,得到的結果也是兩條記錄,說明儲存函式成功的執行。#3

.建立乙個儲存過程add_id在同時使用前面建立的儲存函式返回表sch中的記錄數,計算出表中所有的id之和。

create

procedure add_id(out count

int)

begin

declare itmp int

;

declare cur_id cursor

forselect id from

sch;

declare

exit handler for

not found close

cur_id;

select count_sch() into

count

;

set@sum=0

;

open

cur_id;

repeat

fetch cur_id into

itmp;

if itmp <

10then

set@sum

=@sum

+itmp;

endif

; until

0end

repeat;

close

cur_id;

end;/**

* 這個儲存過程的**中使用到了變數的宣告、游標、流程控制、在儲存過程中呼叫儲存函式等知識點,結果應該是兩條記錄,

* id之和為3,記錄條數是通過上面的儲存函式count_sch()獲取的,是在儲存過程中呼叫了儲存函式。 */

#檢視select

@a,@sum;

1.3變數的使用

變數可以在子程式中宣告並使用,這些變數的作用範圍是在begin end程式中。

1.定義變數

declare 變數名【,變數名】 資料型別【default value】;

例:定義名稱為myprama的變數,型別為int型別,預設值為100;

declare myprama int default 100;

2.為變數賦值 定義變數之後,為變數賦值可以改變變數的預設值,mysql中使用set語句為變數賦值,語句格式如下:

set 變數名 = expr[,變數名 = expr];

posted @

2018-09-15 17:32

容一博 閱讀(

...)

編輯收藏

Oracle儲存過程和儲存函式建立方法 詳解

select from emp 儲存過程 定義 create or replace procedure 儲存過程名稱 引數名 in out 資料型別 is as begin jsbtdnnb邏輯表示式 end 儲存過程名稱 定義儲存過程計算年薪,並答應輸出 create or replace pro...

儲存過程和儲存函式

1 mysql 在操作子程式時,由於需要使用分號 所以要使用delimiter先重新定義分界符為 以下 包含的內容表示注釋 delimiter 使用delimiter 把定界符由 設定為 注意 delimiter 和 之間的空格。1 建立子程式 儲存過程和儲存函式的統稱 create procedu...

儲存過程和儲存函式

儲存過程 stored procedure 是一組為了完成特定功能的sql 語句集,經編譯後儲存在資料庫。中使用者通過指定儲存過程的名字並給出引數 如果該儲存過程帶有引數 來執行它 優點 1.儲存過程只在創造時進行編譯,以後每次執行儲存過程都不需再重新編譯,而 一般sql 語句每執行一次就編譯一次,...