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

推薦する

Reactプロジェクトで画像を導入するいくつかの方法

imgタグは画像を導入しますreactは実際にはjsリーダー関数を介してページをレンダリングするため...

シンプルなリスト機能を実装するミニプログラム

この記事の例では、参考のために簡単なリスト機能を実装するアプレットの具体的なコードを共有しています。...

JavaScriptはスタック構造の詳細なプロセスを実装する

目次1. スタック構造を理解する2. スタック構造のカプセル化3. 10進数を2進数に変換する1. ...

Google の新しい UI から学べること (画像とテキスト)

2011 年に最も顕著なウェブサイトの変更は、一連の製品に新しいユーザー インターフェースを導入した...

HarborをベースにしたDocker専用倉庫の構築方法

目次1. ハーバーの紹介1. ハーバーが民間倉庫を建設3. 港湾の維持管理4. Harborユーザー...

webpack と rollup を使用してコンポーネント ライブラリをパッケージ化する方法

序文以前、ローディングスタイルのコンポーネントを作成しました。コードの再利用性を実現するために、この...

VMWare仮想マシンにCentOS7システムをインストールする詳細な手順

インストール前の作業: VMware Workstation がインストールされていることを確認し、...

vue keep-alive の簡単な概要

1. 機能主にコンポーネントの状態を保持したり、再レンダリングを回避したりするために使用されます。 ...

Linux sar コマンドの使用方法とコード例の分析

1. CPU使用率sar -p (一日中表示) sar -u 1 10 (1: 1秒ごと、10: 1...

Ubuntu 18.04 での Pycharm インストール チュートリアルの実装

方法1: Pycharmをダウンロードしてインストールするダウンロードアドレス: https://w...

Vueのウェブページスクリーンショット機能の詳しい説明

最近、プロジェクトで写真をアップロードする要件があるのですが、顧客がアップロードする写真のサイズがま...

Vue の自動書式設定の改行保存の詳細な説明

ネットで変更方法をいろいろ調べたのですが、うまくいきませんでした。後で大物から見て削除しました。フォ...

Vue コードの読みやすさに関するいくつかの提案

目次1. コンポーネントをうまく活用してコードを整理する1. UIコンポーネントを抽出する2. モジ...

Echarts 凡例コンポーネントのプロパティとソース コード

凡例コンポーネントは、ECharts でよく使用されるコンポーネントです。シリーズ マーカーの名前を...

CSSクラス名の問題の詳細な説明

数字で始まる次の CSS クラス名は有効になりません。 .1番目{ 色: 赤; }有効な CSS ク...