内置函数库
- 字符函数
- 日期时间函数
- 信息函数
- 聚合函数
- 加密函数
字符函数
- CONCAT() #字符连接
- CONCAT_WS() #指定的分隔符进行连接
- FORMAT() #数字格式化
- LOWER() #转换为小写字母
- UPPER() #转换为大写字母
- LEFT() #获取左侧字符
- RIGHT() #获取右侧字符
- LENGTH() #获取字符串长度
- LTRIM() #删除前导空格
- RTRIM() #删除后续空格
- TRIM() #删除前后空格
- SUBSTRING() #字符串截取
- [NOT] LIKE #模式匹配
- REPLACE() #字符串替换
数值运算符
- CEIL() #进一取整
- DIV #整数除法
- FLOOR() #舍一取整
- MOD #取余数
- POWER() #幂运算
- ROUND() #四舍五入
- TRUNCATE() #数字截取
比较运算符
- [NOT] BETWEEN... AND ... #[不] 在范围之内
- [NOT] IN() #[不] 在列出值范围内
- IS [NOT] NULL #[不] 为空
日期时间函数
- NOW() #当前日期时间
- CURDATE() #当前日期
- CURTIME() #当前时间
- DATE_ADD() #日期变化
- DATEDIEF() #日期差值
- DATE_FORMAT() #日期格式化
信息函数
- CONNECTION_ID() #连接ID
- DATABASE() #当前数据库
- LAST_INSERT_ID() #最后插入记录的ID号
- USER() #当前用户
- VERSION() #版本信息
聚合函数(只有一个返回值)
- AVG() #平均值
- COUNT() #计数
- MAX() #最大值
- MIN() #最小值
- SUM() #求和
加密函数
- MD5() #信息摘要算法
- PASSWORD() #密码算法
自定义函数
用户自定义函数(user-defined function,UDF)是一种对MySQL扩展的途径,其用法与内置函数相同。
语句结构
CREATE FUNCTION function_name
RETURNS
{STRING|INTEGER|REAL|DECIMAL}
routine_body
函数体(routine_body)
- 由合法的SQL语句构成
- 可以是简单的SELECT或INSERT语句
- 复合结构则使用BEGIN...END语句
- 复合结构可以包含声明,循环,控制结构
特性
- 参数
- 返回值
- 参数,返回值类型可以任意
创建函数
//简单无参函数
CREATE FUNCTION f1() RETURNS VARCHAR(30)
RETURN DATE_FORMAT(NOW(),'%Y年%m月%d日 %H点:%i分:%s秒');
//调用无参函数
SELECT f1();
//带参数函数
CREATE FUNCTION f2(num1 SMALLINT UNSIGNED,num2 SMALLINT UNSIGNED)
RETURNS FLOAT(10,2) UNSIGNED
RETURN (num1+num2)/2;
//调用带参参数
SELECT f1(10,2);
//创建复合结构函数体
CREATE FUNCTIONS adduser(username VARCHAR(20))
RETURNS INT UNSIGNED
BEGIN
INSERT test(username) VALUES(username);
RETURN RETURN LAST_INSERT_ID();
END
//
//调用复合结构函数
SELECT adduser('max');
删除函数
DROP FUNCTION [IF EXISTS] function_name;
//删除f2();
DORP FUNCTION f2;