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 メタの説明

推薦する

Vue3 ドキュメント クイックスタート

目次1. セットアップ1. セットアップ関数の最初のパラメータ - props 2. 文脈2. セッ...

HTML テーブルタグチュートリアル (24): 行の水平方向の配置属性 ALIGN

水平方向では、行の配置を左、中央、右に設定できます。基本的な構文<TR ALIGN="...

Vueはツリー構造の追加、削除、変更、チェックのサンプルコードを実装します

実は多くの会社がユーザー権限ツリーに似た機能を持っています。最近、追加、削除、修正のツリー構造を書き...

Excelアップロード機能を実現するVue + iViewの完全コード

1. HTML部分 <Col span="2">ファイルをアップロー...

MySQL でのテーブルの作成と削除の詳細な例

テーブル作成コマンドには以下が必要です。 テーブルの名前フィールド名各フィールドを定義します(タイ...

DockerがElasticsearch7.xを起動してエラーを報告する問題を解決する

Docker実行コマンドの使用docker run -d -p 9200:9200 -p 9300:...

JavaScript ループトラバーサルの 24 種類のメソッドをすべてご存知ですか?

目次序文1. 配列走査法1. 各() 2. マップ() 3. 〜のために4. フィルター() 5. ...

Docker Gitlab+Jenkins+Harborは永続的なプラットフォーム運用を構築します

CI/CD の概要CIワークフロー設計Gitコードバージョン管理システムはコマンドラインでのみ管理で...

MySQL におけるデータタイムとタイムスタンプの違い

MySQL には 3 つの日付型があります。日付(年-月-日)テーブル test(hiredate ...

Zabbixで指定時間内の変化値を設定する方法の詳細な説明

背景説明: 既存の負荷分散装置には、付加価値状態にある指標があります (増加するだけで減少しないため...

サーバーから返される14の一般的なHTTPステータスコードの詳細な説明

HTTP ステータス コードステータス コードは 3 桁の数字と理由フレーズ (最も一般的なもの: ...

Vue テンプレートのコンパイルの詳細

目次1. 解析する1.1 傍受のルール1.2 傍受プロセス部分1.3 パーサーの概要2. 最適化する...

MySQL トリガーの使用シナリオとメソッドの例

トリガー:トリガーの使用シナリオと対応するバージョン:トリガーは次の MySQL バージョンで使用で...

CocosCreatorゲームにおける魚群アルゴリズムの詳細な説明

序文最近CocosCreatorを学びたいと思ったので、エディターをダウンロードして起動しました。誰...

h1、h2、h3タグを適切に使用する

Web ページを作成する過程では、<h1>、<h2>、<h3> ...