MySQL函数
基本语法
- 函数申明要声明返回类型,用returns指定。
- 函数体中要有返回语句,return 返回值。
- 函数执行有别与存储过程执行,不需要Call关键字。
<例>定义一个返回时间和uuid拼接字符串的函数
-- 创建函数
CREATE FUNCTION my_function2() RETURNS CHAR(55)
BEGIN
DECLARE re char(55);
select CONCAT(CONVERT(NOW(),CHAR(19)),CONVERT(UUID(),CHAR(36))) INTO re;
RETURN re;
END;
-- 可用CHAR_LENGTH(str)函数判断char类型字符串长度,准确判断需要的字符长度,做出准确判断避免空间浪费
-- 执行函数
SELECT my_function2() from DUAL;
说明
- CHAR_LENGTH(str) 返回字符串所占的字符数,不管汉字还是数字或者是字母都算是一个字符。
- LENGTH(str) 返回字符串所占的字节数,是计算字段的长度一个汉字是算三个字符,一个数字或字母算一个字符。
- CHARACTER_LENGTH(str) 是 CHAR_LENGTH() 的同义词。
- BIT_LENGTH(str) 返回2进制长度。
- SELECT CONVERT(NOW(),char(20)) 转换格式函数,可转换的类型有
- 二进制,同带binary前缀的效果 : BINARY
- 字符型,可带参数 : CHAR()
- 日期 : DATE
- 时间: TIME
- 日期时间型 : DATETIME
- 浮点数 : DECIMAL
- 整数 : SIGNED
- 无符号整数 : UNSIGNED
- CONCAT(str1,str2,...) 连接字符串函数,参数可以多个。oracle中该函数只可以是两个参数,所以用str1||str2方式连接字符串可以有效避免函数嵌套,效率更高。
MySQL游标
游标有点复杂,博主懒得整理了,直接将图po上
有一点注意:游标中所有声明DECLARE都要写在一起