国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - Mysql數據庫存儲過程基本語法講解

Mysql數據庫存儲過程基本語法講解

2020-08-19 16:15MYSQL教程網 Mysql

本文通過一個實例來給大家講述一下Mysql數據庫存儲過程基本語法,希望你能喜歡。

?

1

drop procedure sp_name//

在此之前,小編給大家講述過MYSQL語法的基本知識,本篇內容,小編通過下面的一個實例,給讀者們通過實戰中的代碼講解一下基本語法的知識。

一般情況下MYSQL以;結尾表示確認輸入并執行語句,但在存儲過程中;不是表示結束,因此可以用該命令將;號改為//表示確認輸入并執行。存儲過程如同一門程序設計語言,同樣包含了數據類型、流程控制、輸入和輸出和它自己的函數庫。

一.創建存儲過程

1.基本語法:

?

1

2

3

4

create procedure sp_name()

begin

.........

end

2.參數傳遞
二.調用存儲過程

1.基本語法:

?

1

call sp_name()

注意:存儲過程名稱后面必須加括號,哪怕該存儲過程沒有參數傳遞

三.刪除存儲過程

1.基本語法:

2.注意事項
(1)不能在一個存儲過程中刪除另一個存儲過程,只能調用另一個存儲過程
四.區塊,條件,循環

1.區塊定義,常用

?

1

2

3

begin

......

end;

也可以給區塊起別名,如:

?

1

2

3

lable:begin

...........

end lable;

可以用leave lable;跳出區塊,執行區塊以后的代碼
2.條件語句

if 條件 then
 statement
 else
 statement
 end if;

3.循環語句
(1).while循環

[label:] WHILE expression DO
 
 statements
 
 END WHILE [label] ;

 

(2).loop循環
[label:] LOOP
 
 statements
 
 END LOOP [label];
(3).repeat until循環
[label:] REPEAT
 
 statements
 
 UNTIL expression
 
 END REPEAT [label] ;
五.其他常用命令

1.show procedure status
顯示數據庫中所有存儲的存儲過程基本信息,包括所屬數據庫,存儲過程名稱,創建時間等
2.show create procedure sp_name
顯示某一個存儲過程的詳細信息
下面看一個例子
一、MySQL 創建存儲過程

“pr_add” 是個簡單的 MySQL 存儲過程,這個MySQL 存儲過程有兩個 int 類型的輸入參數 “a”、“b”,返回這兩個參數的和

delimiter //   -- 改變分割符

drop procedure if exists pr_add//  -- 若之前創建有這個存儲過程則刪除

計算兩個數之和

?

1

2

3

4

5

6

7

8

9

10

11

12

13

create procedure pr_add (a int,b int)

begin

declare c int;

if a is null then

set a = 0;

end if;

if b is null then

set b = 0;

end if;

set c = a + b;

select c as sum;

end

//

二、調用 MySQL 存儲過程

call pr_add(10, 20);
執行 MySQL 存儲過程,存儲過程參數為 MySQL 用戶變量。

set @a = 10;
set @b = 20;
call pr_add(@a, @b);
三、MySQL 存儲過程特點

創建 MySQL 存儲過程的簡單語法為:

create procedure 存儲過程名字()
(
[in|out|inout] 參數 datatype
)
begin
MySQL 語句;
end;
MySQL 存儲過程參數如果不顯式指定“in”、“out”、“inout”,則默認為“in”。習慣上,對于是“in” 的參數,我們都不會顯式指定。

1. MySQL 存儲過程名字后面的“()”是必須的,即使沒有一個參數,也需要“()”

2. MySQL 存儲過程參數,不能在參數名稱前加“@”,如:“@a int”。下面的創建存儲過程語法在 MySQL 中是錯誤的(在 SQL Server 中是正確的)。 MySQL 存儲過程中的變量,不需要在變量名字前加“@”,雖然 MySQL 客戶端用戶變量要加個“@”。

create procedure pr_add
(
@a int, -- 錯誤
b int -- 正確
)
3. MySQL 存儲過程的參數不能指定默認值。

4. MySQL 存儲過程不需要在 procedure body 前面加 “as”。而 SQL Server 存儲過程必須加 “as” 關鍵字。

?

1

2

3

4

5

6

7

8

9

create procedure pr_add

(

a int,

b int

)

as -- 錯誤,MySQL 不需要 “as”

begin

mysql statement ...;

end;

5. 如果 MySQL 存儲過程中包含多條 MySQL 語句,則需要 begin end 關鍵字。

?

1

2

3

4

5

6

7

8

9

create procedure pr_add

(

a int,

b int

)

begin

mysql statement 1 ...;

mysql statement 2 ...;

end;

6. MySQL 存儲過程中的每條語句的末尾,都要加上分號 “;”

?

1

2

3

4

5

6

7

...

declare c int;

if a is null then

set a = 0;

end if;

...

end;

7. MySQL 存儲過程中的注釋。

declare c int; -- 這是單行 MySQL 注釋 (注意 -- 后至少要有一個空格)
if a is null then # 這也是個單行 MySQL 注釋
set a = 0;
end if;
...
end;
8. 不能在 MySQL 存儲過程中使用 “return” 關鍵字。

set c = a + b;
select c as sum;
end;
9. 調用 MySQL 存儲過程時候,需要在過程名字后面加“()”,即使沒有一個參數,也需要“()”

call pr_no_param();
10. 因為 MySQL 存儲過程參數沒有默認值,所以在調用 MySQL 存儲過程時候,不能省略參數。可以用 null 來替代。

我們再通過一個實例來加深一下以上知識點:

1、下面為一個存儲過程的定義過程:

?

1

2

3

4

5

6

7

8

9

create procedure proc_name (in parameter integer)

begin

declare variable varchar(20);

if parameter=1 then set variable='MySQL';

else set variable='PHP';

end

if;

insert into tb (name) values (variable);

end;

MySQL中存儲過程的建立以關鍵字create procedure開始,后面緊跟存儲過程的名稱和參數。MySQL的存儲過程名稱不區分大小寫,例如PROCE1()和proce1()代表同一個存儲過程名。存儲過程名不能與MySQL數據庫中的內建函數重名。

存儲過程的參數一般由3部分組成。第一部分可以是in、out或inout。in表示向存儲過程中傳入參數;out表示向外傳出參數;inout表示定義的參數可傳入存儲過程,并可以被存儲過程修改后傳出存儲過程,存儲過程默認為傳入參數,所以參數in可以省略。第二部分為參數名。第三部分為參數的類型,該類型為MySQL數據庫中所有可用的字段類型,如果有多個參數,參數之間可以用逗號進行分割。

MySQL存儲過程的語句塊以begin開始,以end結束。語句體中可以包含變量的聲明、控制語句、SQL查詢語句等。由于存儲過程內部語句要以分號結束,所以在定義存儲過程前應將語句結束標志“;”更改為其他字符,并且該字符在存儲過程中出現的幾率也應該較低,可以用關鍵字delimiter更改。例如:

mysql>delimiter //

存儲過程創建之后,可用如下語句進行刪除,參數proc_name指存儲過程名。

drop procedure proc_name

實現過程

(1)MySQL存儲過程是在“命令提示符”下創建的,所以首先應該打開“命令提示符”窗口。
(2)進入“命令提示符”窗口后,首先應該登錄MySQL數據庫服務器,在“命令提示符”下輸入如下命令:

mysql –u用戶名 –p用戶密碼

(3)更改語句結束符號,本實例將語句結束符更改為“//”。代碼如下:

delimiter //

(4)創建存儲過程前應首先選擇某個數據庫。代碼如下:

use 數據庫名

(5)創建存儲過程。
(6)通過call語句調用存儲過程。

舉一反三

?

1

2

3

4

5

6

7

8

use test;

create table user(

id mediumint(8) unsigned not null auto_increment,

name char(15) not null default ”,

pass char(32) not null default ”,

note text not null,

primary key (id)

)engine=Innodb charset=utf8;

示例一

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

delimiter //

create procedure proc_name (in parameter integer)

begin

if parameter=0 then

select * from user order by id asc;

else

select * from user order by id desc;

end if;

end;

//

 

delimiter ;

show warnings;

call proc_name(1);

call proc_name(0);

示例二

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

drop procedure proc_name;

delimiter //

create procedure proc_name (in parameter integer)

begin

declare variable varchar(20);

if parameter=1 then

set variable='Windows';

else

set variable='Linux';

end if;

select parameter;

end;

//

 

delimiter ;

show warnings;

call proc_name(1);

call proc_name(0);

 

 刪除drop procedure proc_name;

附注:

1.show procedure status;
顯示數據庫中所有存儲的存儲過程基本信息,包括所屬數據庫,存儲過程名稱,創建時間等
2.show create procedure sp_name
顯示某一個存儲過程的詳細信息

以上就是本篇MYSQL基本語法相關知識的全部內容,感覺不錯就分享給你的朋友們吧。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲一区二区久久 | 亚洲精品免费在线视频 | 精品国产一区二区三区性色av | 欧美日韩三区 | h片在线| 青青久草| 免费一区| 午夜成人免费视频 | 日本久久免费 | 成人羞羞视频在线观看免费 | 性天堂| 久久精品中文字幕大胸 | 精品久久久久久 | 中文字幕免费看 | 操久久| 国产中文字幕一区 | 久久久www成人免费精品 | 久久一精品 | 欧美国产精品一区 | 亚洲国产福利一区 | 国产乱来视频 | 曰批免费视频播放免费 | 亚洲国产一二区 | 国产成人精品一区二区三区网站观看 | 国产一级视频免费观看 | 国产精品资源在线 | 日韩在线影院 | 黄色av电影 | 日本久久久久久久久久久久 | 亚洲欧美一区二区三区四区 | 操av网| 日本在线观看 | 国产精品美女久久久久aⅴ国产馆 | 精品久久久久久久久久久 | 日韩在线字幕 | 精品欧美一区二区三区久久久 | 亚洲三级免费观看 | 色综合天天综合网国产成人网 | 午夜电影网 | av成人免费 | 国产精品久久久久久久久软件 |