ホームページ >データベース >mysql チュートリアル >mysqlでカーソルを記述する方法
mysql でカーソルを記述する方法: 最初にカーソルを宣言し、次にカーソルをオープンします (コードは [OPEN カーソル名])、次にカーソルをキャプチャします、最後にカーソルを閉じます、コードは [CLOSE カーソル名] です。
このチュートリアルの動作環境: 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 サイトの他の関連記事を参照してください。