ホームページ >データベース >mysql チュートリアル >mysql フロー制御ステートメントには何が含まれますか?
mysql のフロー制御ステートメントには、IF ステートメント、CASE ステートメント、LOOP ステートメント、WHILE ステートメント、REPEAT ステートメント、LEAVE ステートメント、および ITERATE ステートメントが含まれており、これらはすべてプログラムのフローを制御できます。
#フロー制御ステートメントをストアド プロシージャやカスタム関数で使用して、プログラムのフローを制御できます。 MySQL のフロー制御ステートメントには、プロセス制御を実行できる IF ステートメント、CASE ステートメント、LOOP ステートメント、WHILE ステートメント、REPEAT ステートメント、LEAVE ステートメント、および ITERATE ステートメントが含まれます。 (推奨チュートリアル: mysql ビデオチュートリアル )
1. IF ステートメント
IF ステートメントは条件判断に使用されます。 . さまざまな条件に基づいてさまざまな操作を実行します。この文を実行すると、IF以降の条件が真かどうかを判定してからTHEN以降を実行し、偽の場合は真となるまでIF文を判定し続けます。 ELSE ステートメントの実行後の内容。 IF文の表現形式は以下のとおりです。
IF condition THEN ... ELSE condition THEN ... ELSE ... END IF
例: IF文は条件判定を行う場合に使用します。
-- 创建存储过程 CREATE PROCEDURE example_if (IN x INT) BEGIN IF x = 1 THEN SELECT 1; ELSEIF x = 2 THEN SELECT 2; ELSE SELECT 3; END IF; END; -- 调用存储过程 CALL example_if(2);
注: MySQL の IF() 関数は、ここでの IF ステートメントとは異なります。
2. CASE ステートメント
CASE ステートメントは複数分岐のステートメント構造であり、このステートメントは最初に VALUE を検索します。 WHEN と CASE の後の VALUE が値と等しい場合は分岐の内容が実行され、そうでない場合は ELSE の後の内容が実行されます。 CASE ステートメントの表現形式は次のとおりです。
CASE value WHEN value THEN ... WHEN value THEN ... ELSE ... END CASE
CASE ステートメントの別の文法表現形式は次のとおりです。
CASE WHEN value THEN ... WHEN value THEN ... ELSE ... END CASE
例: CASE ステートメントを使用して、条件付きで判断する。
-- 创建存储过程 CREATE PROCEDURE example_case(IN x INT) BEGIN CASE x WHEN 1 THEN SELECT 1; WHEN 2 THEN SELECT 2; ELSE SELECT 3; END CASE; END; -- 调用存储过程 CALL example_case(5);
3. WHILE ループ ステートメント
WHILE ループ ステートメントを実行すると、まず条件条件が true であるかどうかを判断し、true である場合は、場合はループ本体を実行し、それ以外の場合はループを終了します。構文は次のように表されます。
WHILE condition DO ... END WHILE;
例: WHILE ループ ステートメントを使用して、最初の 100 の合計を求めます。
-- 创建存储过程 CREATE PROCEDURE example_while(OUT sum INT) BEGIN DECLARE i INT DEFAULT 1; DECLARE s INT DEFAULT 0; WHILE i <= 100 DO SET s = s+i; SET i = i+1; END WHILE; SET sum = s; END; -- 调用存储过程 CALL example_while(@sum); SELECT @sum;
4. LOOP ループ ステートメント
LOOP ループにはループ条件が組み込まれていませんが、LEAVE を使用してループを終了できます。声明。 LOOP ステートメントの式は次のとおりです:
LOOP ... END LOOP
LOOP ステートメントを使用すると、特定のステートメントまたはステートメント グループを繰り返し実行して、単純なループ構造を実装できます。ループ内のステートメントは、ループが終了するまで繰り返されます。 . ループを終了する場合は、LEAVE ステートメントが使用されます。
LEAVE ステートメントは、BEGIN...END またはループと一緒に使用されることが多く、その式は次のとおりです。
LEAVE label
label はステートメント内でマークされた名前であり、この名前はカスタマイズされます。 。
例: LOOP ループ ステートメントを使用して、最初の 100 の合計を求めます。
-- 创建存储过程 CREATE PROCEDURE example_loop(OUT sum INT) BEGIN DECLARE i INT DEFAULT 1; DECLARE s INT DEFAULT 0; loop_label:LOOP SET s = s+i; SET i = i+1; IF i>100 THEN -- 退出LOOP循环 LEAVE loop_label; END IF; END LOOP; SET sum = s; END; -- 调用存储过程 CALL example_loop(@sum); SELECT @sum;
5. REPEAT ループ ステートメント
REPEAT ループ ステートメントは、まずループ本体を 1 回実行し、次に条件条件が true であるかどうかを判断します。 、ループを終了します。それ以外の場合はループが継続します。 REPEAT ステートメントの表現は次のとおりです。
REPEAT ... UNTIL condition END REPEAT
例: REPEAT ループ ステートメントを使用して、最初の 100 の合計を求めます。
-- 创建存储过程 CREATE PROCEDURE example_repeat(OUT sum INT) BEGIN DECLARE i INT DEFAULT 1; DECLARE s INT DEFAULT 0; REPEAT SET s = s+i; SET i = i+1; UNTIL i > 100 END REPEAT; SET sum = s; END; -- 调用存储过程 CALL example_repeat(@sum); SELECT @sum;
6. ITERATE ステートメント
ITERATE ステートメントは、LOOP、REPEAT、および WHILE ステートメント内に使用でき、「再度ループする」ことを意味します。ステートメントの形式は次のとおりです:
ITERATE label
このステートメントの形式は LEAVE の形式に似ていますが、異なる点は、LEAVE ステートメントはループを終了し、ITERATE ステートメントはループを再開することです。
例: 10 以内の奇数の値の合計を求めます。
-- 创建存储过程 CREATE PROCEDURE example_iterate(OUT sum INT) BEGIN DECLARE i INT DEFAULT 0; DECLARE s INT DEFAULT 0; loop_label:LOOP SET i = i+1; IF i > 10 THEN -- 退出整个循环 LEAVE loop_label; END IF; IF (i mod 2) THEN SET s = s+i; ELSE -- 退出本次循环,继续下一个循环 ITERATE loop_label; END IF; END LOOP; SET sum = s; END; -- 调用存储过程 CALL example_iterate(@sum); SELECT @sum
プログラミング関連の知識については、プログラミング学習 Web サイト をご覧ください。 !
以上がmysql フロー制御ステートメントには何が含まれますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。