意味: バッチステートメントとして理解できる、事前にコンパイルされた SQL ステートメントのセット
機能:
コードの再利用性を向上させる
操作を簡素化する
コンパイルの数を減らすデータベースサーバーへの接続数が減り、効率が向上します。
とストアドプロシージャの違い:
ストアドプロシージャ: 0 回のリターンまたは複数回のリターンがあり、バッチ挿入およびバッチ挿入の更新
に適しています。 関数: データを処理して結果を返すのに適した戻り値は 1 つだけです
DELIMITER $ CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型 BEGIN 函数体 END$ DELIMITER ;
注 を作成します:
パラメーター リストには 2 つの部分が含まれています。値の型はパラメータ名のパラメータ型
の先頭で宣言する必要があります。
関数本体にはreturnステートメントが必要です。エラーは報告されません
終了マークを設定するには区切り文字ステートメントを使用してください
----------
SELECT 函数名(参数列表)
関数を呼び出す この関数には戻り値があるため、この値は select を使用して出力できます。
==========
ケース: 生徒の総数テーブルを返す
1.1 関数を作成する
DELIMITER $ CREATE FUNCTION myFun1() RETURNS INT BEGIN DECLARE num INT DEFAULT 0; #定义一个变量 SELECT COUNT(*) INTO num #赋值 FROM student; RETURN num; #返回值 END $ DELIMITER ;
その後、コンパイルするには以下を実行する必要があります
1.2 関数を呼び出す
----------
2 パラメータと戻り値があります
SELECT myFun1();
DELIMITER $ CREATE FUNCTION myFun2(stuName VARCHAR(20)) RETURNS INT BEGIN DECLARE grade INT DEFAULT 0; #定义变量 SELECT s.grade INTO grade #赋值 FROM student s WHERE s.name = stuName; RETURN grade; #返回 END $ DELIMITER ;
==========
3. 関数の表示
SELECT myFun2('盖伦');
SHOW CREATE FUNCTION myFun1;
関連する推奨事項:
SQLLite 関連コンテンツSpark SQL はログオフラインバッチ処理を実装しますsql 2 つの隣接するレコード間の時間差の比較以上がMysql関数の関連説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。