一、内置函数:

 数据库内有许多内置函数,常用的有:

-- 1、长度
select CHAR_LENGTH('字符长度'),LENGTH('字节长度');
-- 2、字符拼接
select concat('字符','直接','拼接'),concat_ws('_','指定','拼接','字符');
-- 3、进制转换,conv(N,from_base,to_base)
select conv('a',16,8);
-- 4、格式转换,format(X,N),保留小数点后N位,
select format(3.1415926,4);
-- 5、字符替换,insert(原字符串,替换起始位置,替换数量,替换字符串)
select insert('dong',2,2,'***');
-- 6、字符查找,instr(str,substr),子串从第几个字符开始出现,
select instr('dongonong','ng')
-- 7、截断字符串,left(str,n),从左向右取前n个字符组成新字符串,
select left('dongonong',2)
-- 8、变大写upper、变小写lower,
select upper('hiduhuidh'),lower('HJIDOGH');
-- 9、删除空格或占位符,ltrim删除左边空格,rtrim删除右边空格,trim删除两边空格或指定占位符,
select trim(both ' ' from '   hi   '),trim(both 'x' from 'xxxhixxx');
select ltrim('    hi   '),rtrim('    hi   ');

更详细的见官网:https://dev.mysql.com/doc/refman/5.7/en/functions.html

二、自定义函数:

与存储过程的不同:1、自定义函数有返回值,存储过程没有,2、存储过程可以返回结果集,函数不行,即:函数内不能执行select *,

另外:执行函数的参数可以使用筛选结果,如下:

 三、函数在pymysql中的应用

# 1、调用函数
cursor.execute('select func_f1(nid),nid from man')
# 2、查看返回值
ret = cursor.fetchall()
print(ret)