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

推薦する

デュアル VIP を使用した高可用性 MySQL クラスタの構築

目次1. プロジェクトの説明: 2. プロジェクト環境: 2. プロジェクトの手順: 3. プロジェ...

dl、dt、dd はいつ使用するのが適切ですか?

dl:定義一覧定義リストdt:定義タイトルタイトルを定義するdd:定義説明定義の説明dt は情報のタ...

MySQLオンラインデッドロック分析練習

序文MySQL を学習する際に、MySQL のロック メカニズムについて簡単に理解したことがあると思...

Vueはキャンバスの手書き入力を使用して中国語を認識します

効果画像: 序文:最近、屋外の大画面プロジェクトに取り組んでいました。システムの入力方法は使いにくか...

キープアライブキャッシュをクリアする方法の詳細なグラフィック説明

目次オープニングシーンv-for を使用した直接レンダリングカスタムコンポーネントで直接レンダリング...

CSS で「プラス記号」効果を実装するためのサンプルコード

以下に示すプラス記号の効果を実現するには: この効果を実現するには、div 要素だけが必要です。 b...

MySQLバッチは特定のフィールドのスペースを削除します

Mysql で特定のフィールドからスペースを一括削除する方法はありますか?文字列の前後のスペースだけ...

CentOS 7 で RPM を使用して mysql5.7.13 をインストールする

0. 環境この記事のオペレーティング システム: CentOS 7.2.1511 x86_64 My...

Linux 上で Docker コンテナを作成、一覧表示、削除する方法の概要

1. Dockerコンテナを起動する以下のコマンドを使用して新しい Docker コンテナを起動しま...

インタラクティブデザインでページングと読み込みのどちらを選択するかについての説明

この記事の著者@子木yoyoが個人ブログに投稿したものです。 Web ページでもモバイル アプリでも...

Nginx 構成 SSL および WSS 手順の紹介

目次序文1. Nginxのインストール1. Nginxをダウンロードする2. 依存関係をインストール...

MySQL操作テーブルでよく使われるSQLのまとめ

1. テーブル内のフィールドの種類を表示する テーブル名を記述する desc テーブル名 2. テー...

nginx + セカンダリドメイン名 + https サポートを使用する

ステップ1: Alibaba Cloudプライマリドメイン名にセカンダリドメイン名を追加する2 番目...

Vue データの応答性の概要

データの応答性について話す前に、Vue はデータに対して具体的に何を行うのかという非常に重要な問題を...