MySQL でのストアド プロシージャと関数の作成の詳細な説明

MySQL でのストアド プロシージャと関数の作成の詳細な説明

1. ストアドプロシージャ

1.1. 基本構文

プロシージャ名を作成する ([params])

UNSIGNED [特性] ルーチン本体

params: in|out|inoutは入力と出力を表すパラメータリストを指定します

Routine_body: 「begin」で始まり「end」で終わる SQL コード コンテンツ。

特性: ストアドプロシージャの特性を指定します。5つのタイプがあります。

1 決定論的
2 NO SQL SQL文は使用できず、もちろんデータの変更も行いません
3 READS SQL DATAはデータを読み取るだけで、もちろんデータを変更しません。
4 SQLデータの変更 データを変更するには
5 CONTAINS SQLにはSQL文が含まれています

1.2 実行権限を指定してストアドプロシージャを作成する

DEFINER=`root`@`%` プロシージャ名 ([params]) を作成します。

UNSIGNED [特性] ルーチン本体

DEFINER: 実行権限を持つユーザーを指定します。

1.3 区切り文字の使用

「DELIMITER //」は、MySQL のデフォルトのステートメントの終了がセミコロン ';' であるため、「//」記号を終了単語として設定することを意味します。ストアド プロシージャと MySQL ステートメント シンボル間の競合を回避するために、DELIMITER は終了単語シンボルを変更するために使用される場合があり、end //; と組み合わせて使用​​する必要があります。

例: 指定された文字列の長さを出力するためにルートアカウントによって実行されるストアドプロシージャを作成する

区切り文字 //
CREATE definer=`root`@`%` PROCEDURE `avgFruitPrice`( )を作成します。
f_string VARCHAR(200)内
)
始める
    長さ(f_string)を選択します。
終わり//

2. 関数を作成する

関数はストアドプロシージャと同じ方法で作成されます

区切り文字 //
CREATE definer=`root`@`%` FUNCTION `my_length`( )を作成します。
f_string VARCHAR(200)
)
戻り値 INT(11)
符号なし NO SQL
始める
    長さ(f_string)を返します。
終わり//

注: 関数を作成するときに注意すべき点が 3 つあります。

1. 戻り値: 戻り値の型を指定する必要があります

2. UNSIGNED NO SQLではストアドプロシージャ機能の指定が必要

3.return: 必要なデータを返す

発生したエラー:

上記のエラー メッセージが表示される場合は、ストアド プロシージャの特性が指定されていないことを意味します。

ストアドプロシージャ関数では、MySQLクエリ結果をパラメータとして使用できます。ステートメントはselect .... intoです。

始める

onename char(50) を宣言します。デフォルトは'0'です。

twoname char(50)を宣言します。

id =1 の場合、t_user から f_name、b_name を onename、twoname に選択します。

.......

終わり//

例:

宣言: ストアドプロシージャと関数内で定義された変数

デフォルト: デフォルト値

これで、MySQL でのストアド プロシージャと関数の作成に関するこの記事は終了です。MySQL ストアド プロシージャと関数に関するその他の関連情報については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQLのストアドプロシージャと関数を徹底的に理解する
  • MySQL ストアドファンクションとストアドプロシージャの違いの分析
  • MYSQLデータベースでよく使われる関数の紹介
  • MySQLバッチは関数ストアドプロシージャを通じてデータを挿入します
  • MySQL ストアド関数の詳細な紹介
  • MySQL よく使われる関数の詳細な概要
  • MySQL関数の包括的な概要
  • MYSQL関数の使い方

<<:  ウェブデザイナーが持つべき7つのスキル

>>:  HTML メタの説明

推薦する

Vueはキー表示のショートカットキー効果を取得する入力コンポーネントを実装します

ページ上でショートカットキーをカスタマイズする要件に遭遇し、ショートカットキーを設定して表示する場所...

Windows SSHサーバーを簡単に構築するためのいくつかの手順

ここで言及されている SSH は Security Shell と呼ばれます。Linux をよく使用...

Windows での MySQL 8.0.18 インストール チュートリアル (図解)

ダウンロードダウンロードアドレス: https://dev.mysql.com/downloads/...

Docker で Node.js をデプロイする方法

序文プロジェクトでは中間層としてNodeを使用し、Nodeのデプロイにはdockerを使用します。こ...

既存のDockerコンテナの内容を変更する方法

1. Docker psはコンテナをリストします 2. Docker cpはコンテナにファイルをコピ...

html オプション 無効 選択 選択 無効 オプションの例

コードをコピーコードは次のとおりです。 <選択> <オプション値="&q...

CSSを使用してTDのINPUTの幅を設定する

最近、C# を使用して Web プログラムを作成していたときに、次のような問題が発生しました。 Te...

IDEA2020.1.2 Webプロジェクトの作成とTomcatの設定に関する詳細なチュートリアル

この記事は、IDEA で Web プロジェクトを作成し、Tomcat を構成する方法についての統合記...

初心者のためのWebページ作成: HTMLのハイパーリンクAタグの使い方を学ぶ

ハイパーリンク a タグはリンク ポイントを表し、英語の単語「anchor」の略語です。その機能は、...

MySQLはストアドプロシージャを使用して数百万のデータを素早く追加します。サンプルコード

序文インデックスを追加した場合と追加しなかった場合の違いを反映するには、数百万のデータを使用する必要...

MySQL 8.0.17 のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.17のインストールと設定方法を参考までに紹介します。具体的な内容は...

MySQL curdate() 関数の詳細な例

MySQL CURDATE関数の紹介文字列コンテキストまたは数値コンテキストの YYYMMDD 形式...

MySQLでバッチを更新するいくつかの方法

通常、フィールド値を更新するには次の SQL ステートメントを使用します。 mytable を更新し...

CSS スタイルの優先順位とカスケード順序に関する議論

一般的に: [重要なフラグ1つ] > [特別なフラグ4つ] > 宣言順!importan...

CSS3は、変換変形とイベントを組み合わせて扇形のナビゲーションを完成させます。

この場合、transition という単語を間違って書いたため、午後中ずっとそれに取り組みました。本...