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 でのインストール中にソフトウェア パッケージの依存関係レポートに関連する問題の解決策
自動プロジェクト展開は大企業やユニコーン企業でよく使用され、手動でプロジェクトを展開するよりも効率的...
最近、宿題をしているときに、iframe を使用せずにページをネストする必要があったため、jquer...
序文スタンドアロン ロックであっても分散ロックであっても、共有データに基づいて現在の操作の動作を判断...
目次1. インデックスの種類1. B+ツリー2. MyISAM と InnoDB の B+ ツリー ...
テストテーブルを作成する -- ---------------------------- -- ch...
ページめくりの問題のシナリオBとCは同じページ(表と裏)にありますページをめくって A をカバーした...
mysql-5.7.9 では、ついにシャットダウン構文が提供されます。以前は、MySQL データベー...
Deepin がルートユーザーとして Google Chrome ブラウザを起動できない問題を解決す...
時間が経つにつれて、多くの人が XHTML の使い方を知らないことに気づきました。普通の初心者だけで...
最初にサーバー上に FTP サーバーをセットアップし始めたとき、接続できないことがわかったので、Fi...
適用シナリオ: シールのさまざまな状態に応じて、さまざまな状態のシールの数をカウントする必要がありま...
<br />読みやすさはウェブサイトにとって非常に重要な部分であり、ウェブサイトの核心と...
大学院入試に備えて、C/C++ を使って基本的なデータ構造とアルゴリズムを実装する予定です。アルゴリ...
Ubuntu 16.04 はデフォルトで PHP7.0 環境をインストールしますが、PHP7 は一部...
データをコピーリモートでデータをコピーする場合、通常は rsync コマンドを使用しますが、小さなフ...