ホームページ >データベース >mysql チュートリアル >mysqlでカーソルを記述する方法

mysqlでカーソルを記述する方法

coldplay.xixi
coldplay.xixiオリジナル
2020-11-19 10:03:253024ブラウズ

mysql でカーソルを記述する方法: 最初にカーソルを宣言し、次にカーソルをオープンします (コードは [OPEN カーソル名])、次にカーソルをキャプチャします、最後にカーソルを閉じます、コードは [CLOSE カーソル名] です。

mysqlでカーソルを記述する方法

このチュートリアルの動作環境: Windows 7 システム、MySQL バージョン 5.8。この方法は、すべてのブランドのコンピューターに適しています。

その他の関連する無料学習の推奨事項: mysql チュートリアル (ビデオ)

mysql でカーソルを記述する方法:

1, カーソルとは

ストアド プロシージャまたは関数では、カーソルを使用して結果セットをループできます。以下は私の個人的な意見ですが、カーソルは Java ループの自動インクリメント変数 i に似ています。

2. カーソルの使用

カーソルの使用には、次の 3 つの手順が含まれます:

1. カーソルを宣言します

形式: DECLARE カーソル名 CURSOR FOR select_statement;

Cursor_name: カーソル名。ユーザーが設定します。名前を知っておくのが最善です。

select_statement: 完全なクエリ ステートメント、クエリ テーブル内の列名 (ケースの詳細な説明は下記)。

2. カーソルをオンにします

カーソル名: 宣言されたときのカーソル名。

形式: OPEN カーソル名;

3. カーソルをキャプチャします

形式: FETCH カーソル名 INTO var_name...;( ...複数存在できることを意味します)

Cursor_name: 宣言されたときのカーソル名。

var_name: カスタム変数名。 (この場合の詳細説明は後述)

4. カーソルをクローズします

書式: CLOSE カーソル名;

カーソル名: 宣言時のカーソル名。

3、カーソルを使用する小さなケース

このケースには実際的な意味はありません。単にカーソルの使用法を示すためのものです。

まずユーザー テーブルを作成します

CREATE TABLE `users` (
  `u_id` int(4) NOT NULL,
  `u_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
  `u_age` int(4) DEFAULT NULL,
  PRIMARY KEY (`u_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

次のデータを挿入します

select_age という名前のストアド プロシージャを作成します

BEGIN
    #Routine body goes here...
    declare i_user_id int;
    declare i_user_age int;
    declare cur_age cursor for select u_id,u_age from users;
    declare exit handler for not FOUND close cur_age;
    set @age_ji = 0;
    set @age_ou = 0;
    
    open cur_age;
    REPEAT
        fetch cur_age into i_user_id,i_user_age;
        if i_user_id%2 = 1 THEN
            set @age_ji = @age_ji + i_user_age; 
        else
            set @age_ou = @age_ou + i_user_age;
        end if;
    until 0 end REPEAT;
    close cur_age;
END

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

call select_age();
select @age_ji,@age_ou;

詳細な説明code:

1、最初に 2 つのローカル変数 i_user_id と i_user_age を定義し、カーソルが走査するテーブルの列を格納するために使用します。

2、users テーブルの u_id 列と u_age 列を走査するカーソルを宣言します。

3、例外を宣言し、例外が発生したらカーソルを閉じます。

4、最終結果を保存する 2 つのユーザー変数を設定します。

5、カーソルをオンにします。

6、ループ本体を書き込みます。終了条件は、テーブルの最後の列に移動することです。

7、カーソルをキャプチャし、走査されたコンテンツを 2 つのローカル変数に入れます。

8. i_user_id のパリティを判断して、2 つのユーザー変数にそれぞれ i_user_age を追加します

9. カーソルを閉じます。

4、注意事項

変数、カスタム例外、例外処理、およびカーソルはすべて、declare キーワードによって定義され、それらの間には順序要件があります。変数とカスタム例外は最初に配置し、次にカーソル宣言、最後に例外処理宣言を配置する必要があります。

以上がmysqlでカーソルを記述する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。