ホームページ  >  記事  >  データベース  >  MySQL 講義 6: プロセス制御

MySQL 講義 6: プロセス制御

coldplay.xixi
coldplay.xixi転載
2021-03-01 09:10:012374ブラウズ

MySQL 講義 6: プロセス制御

無料学習の推奨事項: mysql ビデオ チュートリアル

# #記事ディレクトリ

#ブランチ構造
  • #IF 関数
  • #ケース構造
      #IF 構造
    • ループ構造
  • mysql のプロセス制御は他のプログラミング言語のプロセス制御と似ており、次の 3 つのタイプに分類されます。
  • シーケンシャル構造
分岐構造

ループ構造。基本的には、これまでの記事で使用したシーケンシャル構造(IF関数を除く)を中心に紹介し、分岐構造とループ構造を中心に紹介します。 分岐構造

IF関数

構文:

IF(式1, 式2, 式3 ) 説明: 式 1 が true の場合は式 2 を実行し、それ以外の場合は式 3 を実行します。

case 構造case 構造には 2 つの構文があります:

機能:


MySQL 講義 6: プロセス制御
# は式として使用され、他のステートメントにネストされ、BEGIN で使用されます。END## で使用できます。 # と

BEGIN-END
  • は独立したステートメントとして使用し、BEGIN-END にのみ配置できます。
  • ELSE を省略し、WHEN をすべて満たさない場合は null が返されます。
  • #
    【演示case作为独立的语句】# 创建存储过程,根据传入的成绩,显示等级:90-100显示A 、 80-90显示B、60-80显示C、否则显示DCREATE PROCEDURE test_case(IN score INT)BEGIN
    	CASE
    	WHEN score>=90 AND score=80 THEN SELECT 'B';
    	WHEN score>=60 THEN SELECT 'C';
    	ELSE SELECT 'D';
    	END CASE;END $CALL test_case(95)$
    IF 構造
  • # 構文:
if 条件 1 then ステートメント 1;

elseif 条件 2 then ステートメント 2;

...
[else ステートメント n;]
end if;

【演示IF结构】# 根据传入的成绩,显示等级:90-100显示A 、 80-90显示B、60-80显示C、否则显示DCREATE FUNCTION test_if(score INT) RETURNS CHARBEGIN
	IF score>=90 AND score=80 THEN RETURN 'B';
	ELSEIF score>=60 THEN RETURN 'C';
	ELSE RETURN 'D';
	END IF;END $SELECT test_if(61)$
ループ構造
mysql には 3 種類のループ構造があります:
名前

文法

#特徴

##while最初に判断してから を実行します。Java の do-wile ステートメントと同様です。最初に実行してから判断します。 無条件無限ループiterate (Java の Break に似ています) mysql のプロセス制御を学習した後、次の演習を完了してみてください
repeatMySQL 講義 6: プロセス制御
ループ MySQL 講義 6: プロセス制御
ループ制御で使用できるキーワードは、 (Java の continue に似ています) および MySQL 講義 6: プロセス制御leave
【演示简单的循环结构】# 案例:批量插入,根据次数插入到admin表中多条记录.CREATE PROCEDURE pro_while1(IN insertCount INT)BEGIN
	DECLARE i INT DEFAULT 1;
	WHILE i20则停止TRUNCATE TABLE admin$DROP PROCEDURE test_while1$CREATE PROCEDURE test_while1(IN insertCount INT)BEGIN
	DECLARE i INT DEFAULT 1;
	a:WHILE i=20 THEN LEAVE a;
		END IF;
		SET i=i+1;
	END WHILE a;END $CALL test_while1(100)$--------------------------------------------------------------------------------------------【演示添加了iterate的语句】# 案例:批量插入,根据次数插入到admin表中,直插入偶数次CREATE PROCEDURE test_while2(IN insertCount INT)BEGIN
	DECLARE i INT DEFAULT 0;
	a:WHILE i

<pre class="brush:php;toolbar:false">【习题答案】DROP TABLE IF EXISTS stringcontent;CREATE TABLE stringcontent( id INT PRIMARY KEY AUTO_INCREMENT, content VARCHAR(20) );DELIMITER $CREATE PROCEDURE test_pro1(IN insertCount INT)BEGIN DECLARE i INT DEFAULT 1;#定义一个循环变量i,表示插入次数 DECLARE str VARCHAR(26) DEFAULT 'abcdefghijklmnopqrstuvwxyz'; DECLARE strIndex INT DEFAULT 1;#代表起始索引 DECLARE len INT DEFAULT 1;#代表截取的字符的长度 WHILE i</pre>その他の関連する無料学習の推奨事項:

mysql チュートリアル
MySQL 講義 6: プロセス制御

(ビデオ)

以上がMySQL 講義 6: プロセス制御の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。