MySQLのストアドプロシージャ01

手順:ので、これらのパッケージの実行と呼ばれる、複数の文をカプセル化します

機能:戻り値は、「プロセス」です

プロセスは、関数の戻り値ではありません

 

私たちは、SQLパッケージの一緒にいくつかの部分を入れて、名前---プロセス

このプロセスは、データベースのストアドプロシージャに格納されています------

 

ストアドプロシージャの量は、構文を作成します。

手続きPROCEDURENAMEを作成します()

ベギン

----- SQL文。

エンド$

私たちは、単純なストアドプロシージャを作成しました:

作成 手順の)(P1を
 始める
選択 2 + 3 
エンド $を

ストアドプロシージャを呼び出します。

コールP1()$

ストアドプロシージャを使用すると、複雑な機能を実行するために、変数、式、制御構造を使用することができることを意味し、プログラム可能であり、

ストアドプロシージャでは、宣言で変数を宣言するための

フォーマット:変数名を宣言する変数の型[既定の既定値]

作成 手順P2()
 開始
   DECLAREの年齢のint型の デフォルトの 18をある;
    DECLARE高さint型の デフォルト 180 [ ;
    SELECT CONCAT(' 年齢'、年齢を、' 高さがある' 、高さ); 
 エンド $

私たちは、P2を表示するには、このストアドプロシージャを呼び出します。

 

保管時には、SQL文の変数のような合法的な操作、可能+ - * /

操作の結果が変数に割り当てられていることに注意してください:

=式:変数名を設定します

作成 手順P3は、()
 開始
DECLAREの年齢のint型の デフォルト 18をされSET年齢:=年齢+ 20ですSELECT CONCATを(' 20歳です' 、年齢);
 エンド $

/ else制御の場合:

作成 手順P4()
 開始
DECLAREの年齢のint型の デフォルト値 18はIF年齢が> = 18で 、その後
SELECT  ' 古い' ;
 
SELECT  ' マイナー' ;
 エンド IFはエンド $

私たちは、ストアドプロシージャのパラメータが渡されていない、我々はストアドプロシージャを作成するためのパラメータを渡すことができます見ることができます:

パラメータの受け渡し構文パラメータ名パラメータタイプ[/アウト/ INOUT中]

create procedure p5(width int, height int)
begin
select concat('你的面积是',width*height)as area;
if width>height then
select '你挺胖';
elseif width<height then
select '你挺瘦';
else
select '你挺方';
end if;
end$

我们给里面传入参数(3,4):

我们都知道控制结构有三大类:顺序,选择和循环

我们现在来写一个带有循环控制结构的存储过程:

create procedure p6()
begin
declare total int default 0;
declare num int default 0;
while num<100 do
set num:=num+1;
set total:=total+num;
end while;
select total;
end$

上面的是我们输出1到100的和,接下来我们在p6的基础上稍作改进写一个p7:输入一个参数N,得到1到N的和:

create procedure p7(in N int)
begin
declare total int default 0;
declare num int default 0;
while num<N do
set num:=num+1;
set total:=total+num;
end while;
select total;
end$

in 表示我们是输入参数

我们接下来看输出参数:

create procedure p8(in n int,out total int)
begin
declare num int default 0;
set total:=0;
while num<n do
set num:=num+1;
set total:=total+num;
end while;
end$

其实out就是往外面输出参数,我们给个变量来接受它。

我们在看一下inout型参数:

create procedure p9(inout age int)
begin
set age:=age+20;
end$

在这里我们要先声明一个变量,然后调用存储过程,然后再输出它

おすすめ

転載: www.cnblogs.com/wanghaoyu666/p/11316940.html