この記事では、例を使用して、MySQL ストアド プロシージャを作成 (CREATE PROCEDURE) して呼び出す (CALL) 方法と、変数を作成 (DECLARE) して割り当てる (SET) 方法について説明します。ご参考までに、詳細は以下の通りです。 ストアド プロシージャの作成 (CREATE PROCEDURE) と呼び出し (CALL) ここでは定義や用語については説明しません。例を見てゆっくりと慣れていきましょう。ここで、GetAllProducts() という簡単なストアド プロシージャを作成しましょう。この GetAllProducts() ストアド プロシージャは、主に製品テーブルからすべての製品を選択するために使用されます。 mysql クライアント ツールを起動し、次のコマンドを入力します。 区切り文字 // プロシージャ GetAllProducts() を作成する 始める 製品から*を選択します。 終わり // 区切り文字 ; 上記の SQL を詳しく見てみましょう。
上記の SQL により、ストアド プロシージャが作成されました。完了したら、ストアド プロシージャを呼び出します。呼び出し構文を見てみましょう。 STORED_PROCEDURE_NAME() を呼び出します。 GetAllProducts() ストアド プロシージャを呼び出す特定の SQL を見てみましょう。 GetAllProducts() を呼び出します。 上記の SQL を実行すると、ストアド プロシージャで SQL を実行した結果が表示されます。 変数の作成 (DECLARE) と代入 (SET) ご存知のとおり、変数は、ストアド プロシージャの実行中に値を変更できる名前付きデータ オブジェクトです。次に、ストアド プロシージャで変数を使用して、直接的/間接的な結果を保存してみます。 これらの変数はストアド プロシージャのローカル変数ですが、変数を使用する前に宣言する必要があることに注意する必要があります。ストアド プロシージャで変数を宣言する場合は、DECLARE ステートメントを使用できます。SQL 構文を見てみましょう。 DECLARE 変数名 データ型(サイズ) DEFAULT デフォルト値; 上記の SQL の意味を見てみましょう。
次に、データ型が INT、デフォルト値が 0 の total_sale という変数を宣言します。 SQLを見てみましょう: total_sale INT DEFAULT 0 を宣言します。 その中でも、MySQL では、単一の DECLARE ステートメントを使用して、同じデータ型を共有する 2 つ以上の変数を宣言できます。SQL を見てみましょう。 x, y INT をデフォルト 0 として宣言します。 上記のSQLでは、2つの整数変数xとyを宣言し、デフォルト値を0に設定しました。変数が設定されたら、値を割り当てます。変数に値を割り当てる場合は、SET ステートメントを使用できます。例を見てみましょう。 total_count INT DEFAULT 0 を宣言します。 合計数を 10 に設定します。 上記の SQL ステートメントでは、total_count 変数に値 10 を割り当てます。 SET ステートメントに加えて、SELECT INTO ステートメントを使用してクエリの結果を変数に割り当てることもできます。例を見てみましょう。 total_products INT DEFAULT 0 を宣言する COUNT(*) を total_products に選択します 製品から 上記の SQL では、次のことを理解する必要があります。
変数には独自のスコープがあり、それを使用して変数のライフサイクルを定義することがわかっています。 ただし、ストアド プロシージャ内で変数を宣言すると、ストアド プロシージャの END ステートメントに到達したときに変数はスコープ外となり、他のコード ブロックではアクセスできなくなります。 BEGIN END ブロック内で変数を宣言すると、END に到達するとスコープ外になることがわかります。 変数は自身のスコープ内でのみ有効であるため、異なるスコープ内で同じ名前を持つ 2 つ以上の変数を宣言することもできます。 ただし、異なるスコープ内で同じ名前の変数を宣言することは、適切なプログラミング方法ではありません。このうち、@ 記号で始まる変数はセッション変数であり、セッションが終了するまで使用可能でアクセス可能です。 MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL ストアド プロシージャ スキル」、「MySQL 共通関数の概要」、「MySQL ログ操作スキル」、「MySQL トランザクション操作スキルの概要」、および「MySQL データベース ロック関連スキルの概要」 この記事が皆様のMySQLデータベース設計に役立つことを願っています。 以下もご興味があるかもしれません:
|
<<: Docker がポート 2375 を公開し、サーバー攻撃を引き起こす問題と解決策
>>: jsはショッピングカートの加算と減算、価格計算を実装します
ログイン dockerログインdocker login コマンドを実行し、ユーザー名、パスワード、メ...
MySQL のバージョンは、Enterprise Edition と Community Editi...
目次序文クロージャの紹介メモリのゴミを識別する方法クロージャのメモリ表現結論序文クロージャは、Jav...
<p></p> の行間隔を設定するには、style="line-h...
序文継続的なコード配信のプロセスで、Jenkins を利用して Docker イメージを作成すると、...
まず、ハードディスクデバイスにデータディスクがあるかどうかを確認します # まずfdisk -lを実...
目次1. 基本を理解する2. システム環境を確認する3. ftpコマンドをインストールする[オプショ...
目次1. Linuxシステムの操作レベルの概要2. 実行レベルを確認する3. 現在のシステムの動作レ...
MySQLユーザー権限を表示する2つの方法を紹介します1. MySQL grantsコマンドを使用す...
背景グラデーションと自動フルスクリーンに関する CSS の問題編集長は CSS の開発中に致命的な問...
Vue ルーティング this.route.push ジャンプ ページが更新されない1. 背景概要:...
目次1. provide/inject の用途は何ですか? 2. provide/injectの使い...
HTML の select 要素に関する質問は、さまざまな場所で提起されています。最近のプロジェクト...
質問: Alice 管理システムを開発しているときに、すべてのバックエンド インターフェイスが最初の...
目次クラスコンポーネント機能コンポーネントプロパティは読み取り専用ですコンポーネント間通信前回は状態...