この記事では、例を使用して、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はショッピングカートの加算と減算、価格計算を実装します
この記事では、主に、div の水平レイアウトの両側の配置を実装する 3 つの方法を紹介し、それらを共...
webpack をパッケージ化する前に、次の作業が完了していることを確認する必要があります。 1) ...
<br />ナビゲーション設計は構造設計における主要なタスクの 1 つです。ソフトウェア...
目次序文計算されたプロパティ計算プロパティの紹介入門ケース統計価格事例ゲッターメソッドとセッターメソ...
この記事の例では、ページング効果を実現するためのvue+Elementの具体的なコードを参考までに共...
コードをコピーコードは次のとおりです。 <span style="font-fami...
ソース ファイルを右クリックすると、次のコードが見つかります。 1. CSSを使用してFirefox...
序文トップメニューを作成する場合、ポップアップのセカンダリメニューを作成する必要があります。 以前の...
目次1. 公式の足場を使って構築する2. プロジェクトディレクトリ分析3. TypeScript の...
Web デザインは、個人の好みや Web ページの内容に応じて、デザインのレイアウトが常に変化します...
123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...
JSX を使用してコンポーネント システムを構築する前に、例を使用してコンポーネントの実装原理とロ...
問題の説明最近、ホストから次のカーネル情報が報告されました。 7月8日 10:47:42 cztes...
3次元縦棒グラフは、正面、右側、上部の3つの部分で構成されています。描画するときは、正面をグラフィッ...
目次序文No.1 焦点No.2 複雑な状態ロジックの抽出No.3 複数状態操作の抽出要約する序文Re...