1. ストアド関数を作成する構文形式: CREATE FUNCTION 関数名 (パラメータ名 パラメータタイプ、...) 戻り値 戻り値の型 BEGIN 関数本体#関数本体にはRETURN文ENDを含める必要があります 例: パラメータリスト: FUNCTIONは常に
RETURNS 句は FUNCTION に対してのみ指定でき、関数に対しては 関数本体では 関数本体にステートメントが 1 つだけ含まれている場合は、 2. ストアド関数の呼び出しMySQL では、ストアド関数の使用方法は MySQL 内部関数と同じです。つまり、ユーザー定義のストアド関数は、MySQL 内部関数と同じ性質を持ちます。違いは、ストアド関数は SELECT関数名(引数リスト) 3. 保存された関数を削除する文法構造: DROP FUNCTION [IF EXISTS] ストアドファンクション名 4. ストアドプロシージャを表示する1. SHOW CREATEステートメントを使用して、ストアドプロシージャと関数の作成情報を表示します。 文法構造: SHOW CREATE FUNCTION ストアドファンクション名 2. SHOW STATUSステートメントを使用して、ストアドファンクションのステータス情報を表示します。 文法構造: 関数ステータスを表示 [LIKE 'pattern'] このステートメントは、データベース、名前、タイプ、作成者、作成日、変更日などのサブルーチンの特性を返します。 例: #名前がselectmysql>で始まるストアド関数をクエリする SHOW FUNCTION STATUS LIKE 'SELECT%'; ************************** 1. 行 **************************** データベース: test_db 名前: SelectAllData タイプ: FUNCTION 定義者: root@localhost 更新日: 2021-10-16 15:55:07 作成日: 2021-10-16 15:55:07 セキュリティタイプ: DEFINER コメント: 文字セットクライアント: utf8mb4 照合接続: utf8mb4_general_ci データベース照合: utf8mb4_general_ci 3. information_schema.Routinesテーブルからストアドファンクションの情報を表示する MySQL のストアド関数の情報は、information_schema データベースの Routines テーブルに保存されます。このテーブルのレコードを照会することで、ストアド関数の情報を照会できます。 文法構造: SELECT * FROM information_schema.Routines WHERE ROUTINE_NAME = 'ストアド関数名' [AND ROUTINE_TYPE = 'FUNCTION ']; 注: MySQL データベースに 5. ストレージ機能を変更するストレージ関数を変更しても関数の機能には影響せず、関連する機能のみが変更されます。これは ALTER ステートメントを使用して行われます。 ALTER FUNCTION ストアド関数名; 6. ストアド関数とストアドプロシージャの比較
さらに、ストアド関数はクエリ ステートメントで使用できますが、ストアド プロシージャは使用できません。逆に、ストアド プロシージャはより強力で、ストアド関数では利用できないテーブル操作 (テーブルの作成、テーブルの削除など) やトランザクション操作を実行する機能があります。 7. エクササイズを強化する#前提条件 CREATE TABLE employees として atguigudb.`employees` から * を選択します。 テーブルの作成 部門 AS atguigudb.`departments` から * を選択します。 #1. 会社の従業員数を返す関数 get_count() を作成します。# パラメーターと戻り値 SET GLOBAL log_bin_trust_function_creators = 1; 区切り文字 $ 関数 get_count() を作成する 戻り値 INT 始める RETURN (SELECT COUNT(*) FROM employees); 終了 $ 区切り文字 ; 知らせ: ストアド #2. 従業員の ID に応じて給与を返す関数 ename_salary() を作成します。# テーブル構造をクエリして、返されるデータのタイプを確認します。DESC employees; 区切り文字 $ 関数 ename_salary(id INT) を作成します。 DOUBLE(8,2)を返します 始める 戻り値 (SELECT salary FROM employees WHERE employee_id = id); 終了 $ 区切り文字 ; #クエリ結果 SELECT ename_salary(100);
MySQL ストアドファンクションの詳細な紹介に関するこの記事はこれで終わりです。より関連性の高い MySQL ストアドファンクションのコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Linux でのインストール中にソフトウェア パッケージの依存関係レポートに関連する問題の解決策
目次DockerとはクライアントサイドDocker基本的なDocker操作画像名画像をプルするその他...
Docker Swarm は、Docker によって開発されたコンテナ クラスター管理サービスです。...
目次序文Vue CLI での設定基本コードVueルーターの登場ネストされたルートの設定要約する序文V...
目次CentOS7環境での設定コマンド手順1. DHCP設定ファイルを設定する2. グローバル構成を...
VueはPCカメラを呼び出してリアルタイムで写真を撮影します。参考までに、具体的な内容は次のとおりで...
一般的に使用される Oracle10g パーティションは、範囲 (範囲パーティション)、リスト (リ...
目次01 MySQLルーターの紹介MySQL Router とは何ですか? 02 MySQLルータの...
Docker の作成Docker Compose は、管理対象コンテナをプロジェクト、サービス、コン...
目次1. 日付までのタイムスタンプ2. UTCを北京時間に変換するWXS (WeiXin Scrip...
目次1. プロジェクト要件次にコーディングを始める1. フロントエンドページを作成する(CSSスタイ...
Angular入門Angular は、Google が開発したオープンソースの Web フロントエン...
コードが失われ、コンテナ内で実行されているイメージから必要なコードを回復する必要がある場合があります...
開発中にサーバーを起動する必要がある場合、ローカルテストではポートを直接書き込み、実際の環境ではバイ...
各浮動小数点型のストレージ サイズと範囲は、次の表に示されています。タイプサイズ範囲(符号付き)範囲...
原因と結果1. ansibleコマンドを使用してジャンプサーバー上のマシンBをテストすると、次のエラ...