2 儲存過程的變數

2021-08-09 01:34:41 字數 1442 閱讀 1521

講師:huangxifeng607(黃錫峰)

筆記:(1)儲存過程的變數

需求:編寫儲存過程,使用變數取uid=2的使用者名稱

delimiter $$

create procedure testa()

begin

declare my_name varchar(32) default '';

set my_uname='hxf';

select uname into my_uname from users where uid=2;

select my_uname;

end;

$$delimiter ;

特點:1.變數的宣告使用declare,一句declare只宣告乙個變數,變數必須先宣告後使用

2.變數具有資料型別和長度,與mysql的sql資料型別保持一致,因此甚至還能指定預設值、字符集和排序規則等

3.變數可以通過set來賦值,也可以通過select into的方式賦值

4.變數需要返回,可以使用select語句,如:select 變數名

(2)儲存過程變數應用示例

需求:統計表hxf, users的行數量和users表中最早,最晚的註冊時間

delimiter $$

create procedure stats_user()

begin

begin

declare hxf_sum int default 0;

declare users_sum int default 0;

select count(*) into hxf_sum from hxf;

select count(*) into users_sum from users;

select hxf_sum, users_sum;

end;

begin

declare max_regtime timestamp;

declare min_regtime timestamp;

select max(regtime), min(regtime) into max_regtime, min_regtime from users;

select hxf_sum, users_sum, max_regtime, min_regtime;

end;

end;

$$delimiter ;

1.變數是有作用域的,作用範圍在begin與end塊之間,end結束變數的作用範圍即結束(上面**第15行的前兩個引數是錯誤的,已經超出了變數的作用域)

2.需要多個塊之間傳遞值,可以使用全域性變數,即放在所有**塊之前

3.傳參變數是全域性的,可以在多個塊之間起作用

(3)小結

1.儲存過程的變數及其特點與應用

2.變數的作用域

MySQL 儲存過程的變數

變數是乙個命名資料物件,變數的值可以在儲存過程執行期間更改。我們通常使用儲存過程中的變數來儲存直接 間接結果。這些變數是儲存過程的本地變數。注意 變數必須先宣告後,才能使用它。要在儲存過程中宣告乙個變數,可以使用declare語句,如下所示 declare variable name datatyp...

儲存過程 2

1,呼叫沒有引數的儲存過程 set conn server.createobject adodb.connection set cmd server.createobject adodb.command strconn dsn pubs uid sa pwd conn.open strconn se...

儲存過程2

今天老師又帶我們回顧了儲存過程方面的知識 1 我們之所以要學習儲存過程是因為使用儲存過程可以一次性執行成批的sql 語句,不僅節省了我們的時間而且也提高了伺服器的操作速度。2 儲存過程的優點 1 批處理,減少客戶和伺服器之間的交流次數 2 伺服器端執行,移植性好 3 安全要求高的行業 4 包含流程控...