mysql関数の意味について話しましょう:
バッチステートメントとして理解される、コンパイル済みのSQLステートメントのセット
関数を使用する目的:
1.コードの再利用性を向上させる
2.操作を簡素化します
3.コンパイルの数を減らし、データベースサーバーへの接続の数を減らします。これにより、効率が向上します。
関数とストアドプロシージャの違い:
ストアドプロシージャ:0の戻り値または複数の戻り値があり、バッチ挿入とバッチ更新に適しています
機能:戻り値は1つだけです。これは、データの処理後に結果を返すのに適しています。
1つは、文法を作成することです。
create function 函数名(参数列表) return是返回类型
begin
函数体
end
#注意
1、参数列表包含两部分:参数名,参数类型
2、函数体:肯定会有return语句,如果没有会报错,如果return语句没有放在函数体的最后也不报错,但是不建议(没有意义)
3、函数体中仅有一句话,可以省略begin end
4、使用delimiter语句设置结束标记(demilter $)
2、構文を呼び出す
関数名の選択(パラメータリスト)
例:
1.参加せずに戻る
会社の従業員数を返します
create function myf1()returns int
begin
declare c int default 0;
select count(*) into c
from employees;
return c;
end $
select myf1()$
参加して戻る
#根据员工名返回工资
create function myf2 (empName varchar(20)) returns double
begin
set @sal=0#定义用户变量
select salary into @sal from employees where last_name=empName;
return @sal;
end $
select myf2('king') $
部門名に従って部門の平均給与を返します
create function myf3(repName varchar(20)) returns double
begin
declare sal double;
select avg(salary) into sal
from employees e
join departments d on e.department_id=d.department_id
where d.department_name =repName;
return sal;
end $
select myf3('IT') $
三、ビュー機能
show create function function name;
4、削除機能
ドロップ関数関数名