この記事では、例を使用して、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はショッピングカートの加算と減算、価格計算を実装します
導入Ubuntu のデフォルトのソースは国内サーバーではないため、更新されたソフトウェアのダウンロー...
この記事では、WindowsでのMySQL 5.7.18のインストールと設定のチュートリアルを参考ま...
この記事では、参考のために、ミニプログラムでカスタムのマルチレベル単一選択および複数選択機能を実装す...
この記事の例では、衝突検出を実装するためのjsの具体的なコードを参考までに共有しています。具体的な内...
####システム内の入出力の管理#### 1. システムの入力と出力のリダイレクトを理解する入力リダ...
1. axiosプラグインをダウンロードする cnpm インストール axios -S 2. mai...
多くのウェブサイトを閲覧すると、ブラウザのアドレスバーの前に小さなアイコンがあり、ブラウザのタブの位...
まずはコードを見てみましょう: ALTER TABLE reportblockdetail ADD ...
序文いわゆるファジークエリとは、ユーザーの完全な入力やすべての入力情報がなくてもクエリサービスを提供...
導入同社の最近の Vue フロントエンド プロジェクトの要件: ポップアップ ウィンドウのドラッグ、...
目次1. クロージャとは何ですか? 2. クロージャの役割2.1) メモリ2.2) プライベート変数...
A. MySQLバックアップツールxtrabackupのインストール1. Percona 公式 xt...
この記事では、Vue3.0の手書きカルーセル効果の具体的なコードを参考までに共有します。具体的な内容...
pymysqlをインストールするpip install pymysql 2|0pymysqlの使用2...
シナリオリクエストが 10 件あるが、同時リクエストの最大数は 5 件で、リクエスト結果が必要である...