ホームページ >データベース >mysql チュートリアル >mysqlストアドプロシージャのカーソルとは何ですか?

mysqlストアドプロシージャのカーソルとは何ですか?

青灯夜游
青灯夜游オリジナル
2022-01-24 17:28:354606ブラウズ

mysql ストアド プロシージャでは、カーソルはカーソルとも呼ばれます。これは、DBMS サーバーに保存されているデータベース クエリです。取得操作によって返される一連の結果です。通常、先に進むために使用されます。または取得したデータを逆方向に操作します。

mysqlストアドプロシージャのカーソルとは何ですか?

このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。

MySQL では、ストアド プロシージャまたは関数のクエリが複数のレコードを返す場合があり、単純な SELECT ステートメントを使用してデータの最初の行、次の行、または最初の 10 行を取得する方法はありません。を使用すると、カーソルを使用してクエリ結果セットからレコードを 1 つずつ読み取ることができます。カーソルは、マテリアルによってはカーソルと呼ばれることもあります。

カーソルの概要

1. カーソル: カーソルとも呼ばれ、DBMS サーバーに保存されているデータベース クエリです。 select ステートメントではなく、ステートメントによって取得された結果セットです。

2. 目的: 取得したデータに対して前方操作または後方操作を実行するため、主に画面上でデータをスクロールするユーザーなどの対話型アプリケーションに使用されます

3. 機能:

  • カーソルを読み取り専用としてマークできるため、データの読み取りは可能ですが、更新や削除はできません。
  • 実行可能な方向操作 (前方、後方、右方向) を制御できます。最初、最後、絶対位置、相対位置など)
  • 一部の列を編集可能としてマークし、一部を編集不可としてマークできます
  • カーソルが特定の要求に応答できるように範囲を指定しますそれを作成したもの (ストアド プロシージャなど)、またはすべてのリクエストにアクセス可能
  • DBMS は、データが変更されないように、取得したデータを (テーブル内のアクティブなデータを指すのではなく) コピーするだけです。カーソルのオープンとアクセス期間中は
#4 、カーソルをサポートする DBMS: DB2、MariaDB、MySQL 5、SQL Server、SQLite、Oracle、PostgreSQL ですが、Microsoft Access は

## をサポートしません。 #5. カーソルは Web ベースのアプリケーション (ASP、ASP.NET、ColdFusion、PHP、Python、Ruby、JSP など) ではあまり役に立ちません。ほとんどの Web アプリケーション開発者はカーソルを使用しません

6。使用方法:

カーソルを宣言します: DECLARE カーソル名 CURSOR FOR SELECT * FROM table_name; // データはまだ取得されていません
  • -- MySQL游标的声明
    DECLARE cursor_name CURSOR FOR select_statement
    
    -- SQL Server游标的声明
    DECLARE cursor_name CURSOR FOR select_statement [FOR [READ ONLY | UPDATE {[co lumn_list]}]]
    
    -- Oracle游标的声明
    DECLARE CORSOR cursor_name IS {select_statement}
カーソルを開く: OPEN カーソル名; // データの取得を開始します。つまり、指定されたカーソルの SELECT ステートメントが実行され、クエリ結果セットがメモリ内の特定の領域に保存されます。
  • -- MySQL打开游标
    OPEN cursor_name
    
    
    -- SQL Server打开游标
    OPEN cursor_name
    
    
    -- Oracle打开游标
    OPEN cursor_name [param1 [, param2]]
Get data: FETCH カーソル名 into var1, var2,...,varn; // カーソル カーソル名がデータを取得した後、次のフェッチ後にのみ終了がトリガーされます。フラグ
  • -- MySQL游标获取数据
    FETCH cursor_name INTO var1_name [, var2_name] ...
    
    
    -- SQL Server游标获取数据
    FETCH NEXT FROM cursor_name [INTO fetch_list]
    
    
    -- Oracle游标获取数据
    FETCH cursor_name  {INTO : host_var1 [[INDICATOR] : indicator_var1] [, : host_var2 [[INDICATOR] : indicator_var2]] | USING DESCRIPTOR DESCRIPTOR}
カーソルを閉じる: CLOSE カーソル名;
  • -- MySQL关闭游标,会主动释放资源,所以不需要DEALLOCATE语句
    CLOSE cursor_name
    
    
    -- SQL Server关闭游标和释放资源
    CLOSE cursor_name
    DEALLOCATE cursor_name
    
    
    -- Oracle关闭游标,会主动释放资源,所以不需要DEALLOCATE语句
    CLOSE cursor_name
  • [関連する推奨事項:
mysql ビデオ チュートリアル

]

以上がmysqlストアドプロシージャのカーソルとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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