検索
ホームページデータベースmysql チュートリアルmysql上級(3)カーソル簡単チュートリアル

mysql上級(3)カーソル簡単チュートリアル

Feb 09, 2017 pm 03:13 PM
mysqlカーソル高度な

MySQL カーソルの簡単なチュートリアル

MySQL V5.5 からは、デフォルトのストレージ エンジンとして InnoDB を使用するという大きな変更が加えられました。 InnoDB はトランザクションをサポートし、関連する RDBMS 機能 (ACID トランザクション サポート、データ整合性 (外部キーのサポート)、災害復旧機能など) を備えています。

それでは、カーソルに関する知識を簡単にまとめてみましょう。

(1) カーソルの理解

カーソルは、単にクエリされたデータのインデックスであり、カーソルを操作することでデータを移動できます (最初の位置、最後の位置、前の位置、次の位置)。

カーソルを使用する主な理由の 1 つは、コレクション操作を単一レコードの処理に変換することです。 SQL 言語を使用してデータベースからデータを取得した後、結果はメモリ領域に配置され、多くの場合、結果は複数のレコードを含むコレクションになります。カーソル メカニズムを使用すると、ユーザーは SQL サーバー内のこれらのレコードに 1 行ずつアクセスし、ユーザー自身の希望に応じてこれらのレコードを表示および処理できます。

データベースにおいて、カーソルは非常に重要な概念です。カーソルは、テーブルから取得したデータを操作する柔軟な手段を提供します。本質的に、カーソルは、複数のデータ レコードを含む結果セットから一度に 1 つのレコードを抽出できるメカニズムです。カーソルは結果セット (関連する選択ステートメントによって取得されるゼロ、1、または複数のレコード) と、特定のレコードを指す結果セット内のカーソル位置で構成されるため、カーソルは常に SQL 選択ステートメントに関連付けられます。 。結果セットを処理する場合は、結果セットを指すカーソルを宣言する必要があります。 C 言語でファイルを処理するプログラムを作成したことがある場合、ファイルが正常に開かれている限り、カーソルはファイルを表すファイル ハンドルのようなものです。カーソルの場合もロジックは同じです。カーソルは、フラット ファイルを読み取る従来のプログラムと同様の方法で基本テーブルからの結果セットを処理でき、それによってテーブル内のデータをフラット ファイルの形式でプログラムに提示できることがわかります。

リレーショナル データベース管理システムは本質的にセット指向であることがわかっています。MS SQL SERVER では、選択されるレコードを 1 つだけ制限するために where 句が使用されない限り、テーブル内の単一のレコードを記述する式形式がありません。したがって、単一レコードのデータ処理を実行するにはカーソルを使用する必要があります。カーソルを使用すると、アプリケーションは、結果セット全体に対して一度に同じ操作を実行するのではなく、クエリ ステートメント select によって返された行の結果セット内の各行に対して同じまたは異なる操作を実行できるようになります。カーソル位置に基づいてテーブル内のデータに対して同じ操作を実行する機能。さらに、コレクション指向のデータベース管理システムと行指向のプログラミングを接続するカーソルです。通信するためのデータ処理方法。

データベース開発プロセス中、取得するデータが 1 レコードのみの場合、作成するトランザクション ステートメント コードでは SELECT INSERT ステートメントがよく使用されます。しかし、特定の結果セットからレコードを 1 つずつ読み取る状況によく遭遇します。では、この問題をどうやって解決すればいいのでしょうか?カーソルは、非常に優れたソリューションを提供します。つまり、カーソル

は、データが取得された場所を識別するために使用される読み取り可能な識別子です。

(2) カーソルの特性

1、読み取り専用

2、非スクロール

3、インセンシティブ

(3) カーソルの使用

カーソルはハンドラーを定義する前に定義する必要があることを強調しておく必要があります。ただし、変数はカーソルを定義する前に定義する必要があり、変数定義 - カーソル定義 - ハンドラの順序になります。

1. カーソルを定義する

DECLARE cursor_name CURSOR FOR select_statement

このステートメントはカーソルを宣言します。サブルーチン内に複数のカーソルを定義することもできます。ブロック内の各カーソルには一意の名前を付ける必要があります。カーソルを宣言した後も単一の操作です。

2. カーソル OPEN

OPEN cursor_name

このステートメントは、以前に宣言されたカーソルを開きます。

3. カーソル FETCH

FETCH cursor_name INTO var_name [, var_name] ...

このステートメントは、指定されたオープン カーソルを使用して次の行 (次の行がある場合) を読み取り、カーソル ポインターをその行に進めます。

4. 游标CLOSE

CLOSE cursor_name

这个语句关闭先前打开的游标,注意,用完后必须关闭。

(四)示例

下面是一个存储过程,里面用到游标,逐条更新数据(批量更新数据)

BEGIN
 DECLARE  no_more_record INT DEFAULT 0;
 DECLARE  pID BIGINT(20);
 DECLARE  pValue DECIMAL(15,5);
 DECLARE  cur_record CURSOR FOR   SELECT colA, colB from tableABC;  /*首先这里对游标进行定义*/
 DECLARE  CONTINUE HANDLER FOR NOT FOUND  SET  no_more_record = 1; /*这个是个条件处理,针对NOT FOUND的条件,当没有记录时赋值为1*/
 
 
 OPEN  cur_record; /*接着使用OPEN打开游标*/
 FETCH  cur_record INTO pID, pValue; /*把第一行数据写入变量中,游标也随之指向了记录的第一行*/
 
 
 WHILE no_more_record != 1 DO
 INSERT  INTO testTable(ID, Value)
 VALUES  (pID, pValue);
 FETCH  cur_record INTO pID, pValue;
 
 END WHILE;
 CLOSE  cur_record;  /*用完后记得用CLOSE把资源释放掉*/
END

以上就是 mysql进阶(三)游标简易教程的内容,更多相关内容请关注PHP中文网(www.php.cn)!


声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
MySQLの役割:WebアプリケーションのデータベースMySQLの役割:WebアプリケーションのデータベースApr 17, 2025 am 12:23 AM

WebアプリケーションにおけるMySQLの主な役割は、データを保存および管理することです。 1.MYSQLは、ユーザー情報、製品カタログ、トランザクションレコード、その他のデータを効率的に処理します。 2。SQLクエリを介して、開発者はデータベースから情報を抽出して動的なコンテンツを生成できます。 3.MYSQLは、クライアントサーバーモデルに基づいて機能し、許容可能なクエリ速度を確保します。

MySQL:最初のデータベースを構築しますMySQL:最初のデータベースを構築しますApr 17, 2025 am 12:22 AM

MySQLデータベースを構築する手順には次のものがあります。1。データベースとテーブルの作成、2。データの挿入、および3。クエリを実行します。まず、createdAtabaseおよびcreateTableステートメントを使用してデータベースとテーブルを作成し、InsertINTOステートメントを使用してデータを挿入し、最後にSelectステートメントを使用してデータを照会します。

MySQL:データストレージに対する初心者向けのアプローチMySQL:データストレージに対する初心者向けのアプローチApr 17, 2025 am 12:21 AM

MySQLは、使いやすく強力であるため、初心者に適しています。 1.MYSQLはリレーショナルデータベースであり、CRUD操作にSQLを使用します。 2。インストールは簡単で、ルートユーザーのパスワードを構成する必要があります。 3.挿入、更新、削除、および選択してデータ操作を実行します。 4. Orderby、Where and Joinは複雑なクエリに使用できます。 5.デバッグでは、構文をチェックし、説明を使用してクエリを分析する必要があります。 6.最適化の提案には、インデックスの使用、適切なデータ型の選択、優れたプログラミング習慣が含まれます。

MySQLは初心者に優しいですか?学習曲線の評価MySQLは初心者に優しいですか?学習曲線の評価Apr 17, 2025 am 12:19 AM

MySQLは初心者に適しています。1)インストールと構成、2)リッチラーニングリソース、3)直感的なSQL構文、4)強力なツールサポート。それにもかかわらず、初心者はデータベースの設計、クエリの最適化、セキュリティ管理、データのバックアップなどの課題を克服する必要があります。

SQLはプログラミング言語ですか?用語を明確にするSQLはプログラミング言語ですか?用語を明確にするApr 17, 2025 am 12:17 AM

はい、sqlisaprogramginglanguagespecializedfordatamanamanagement.1)それはdeclarative、focusingonwhattoachieveratherthanhow.2)

酸性の特性(原子性、一貫性、分離、耐久性)を説明します。酸性の特性(原子性、一貫性、分離、耐久性)を説明します。Apr 16, 2025 am 12:20 AM

酸性属性には、原子性、一貫性、分離、耐久性が含まれ、データベース設計の基礎です。 1.原子性は、トランザクションが完全に成功するか、完全に失敗することを保証します。 2.一貫性により、データベースがトランザクションの前後に一貫性を保証します。 3.分離により、トランザクションが互いに干渉しないようにします。 4.永続性により、トランザクションの提出後にデータが永久に保存されることが保証されます。

MySQL:データベース管理システムとプログラミング言語MySQL:データベース管理システムとプログラミング言語Apr 16, 2025 am 12:19 AM

MySQLは、データベース管理システム(DBMS)であるだけでなく、プログラミング言語にも密接に関連しています。 1)DBMSとして、MySQLはデータを保存、整理、取得するために使用され、インデックスを最適化するとクエリのパフォーマンスが向上する可能性があります。 2)SQLとPythonに埋め込まれたプログラミング言語とSQLalchemyなどのORMツールを使用すると、操作を簡素化できます。 3)パフォーマンスの最適化には、インデックス、クエリ、キャッシュ、ライブラリ、テーブル分割、およびトランザクション管理が含まれます。

MySQL:SQLコマンドでデータの管理MySQL:SQLコマンドでデータの管理Apr 16, 2025 am 12:19 AM

MySQLはSQLコマンドを使用してデータを管理します。 1.基本コマンドには、select、挿入、更新、削除が含まれます。 2。高度な使用には、参加、サブクエリ、および集計関数が含まれます。 3.一般的なエラーには、構文、ロジック、パフォーマンスの問題が含まれます。 4。最適化のヒントには、インデックスの使用、Select*の回避、制限の使用が含まれます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。