概念:类似于java的方法。
好处:1.隐藏了实现细节
2.提高代码的重要性
调用:select 函数名(实参列表)【from 表】;
特点:①函数名
②干什么(函数功能)
分类:1.单行函数 如concat length ifnull等
2.分组函数 做统计使用 给一组值返回一个值
一、字符函数
#length 获取参数值的字节个数
SELECT LENGTH('johe');SELECT LENGTH('元宝三');#结果为9
#concat 拼接字符串
SELECT CONCAT(`last_name`,`first_name`) AS 姓名 FROM employees;
#upper lower 切换大小写 将姓变大写,将名变小写。然后拼接
SELECT UPPER('johe');#变大写
SELECT LOWER('johe');#变小写
SELECT CONCAT(UPPER(`last_name`),LOWER(`first_name`))
AS 姓名 FROM employees;
#substr 截取字符 SUBSTR(字符串,位置,长度)
截取从这个位置起的字符后面所有的字符,包含这个位置的字符
sql中的索引是从1开始的而非0
SELECT SUBSTR('鬼见愁',2) AS out_put;
运行结果:
#如果有两个参数的,则第二个参数代表着个数而非位置,
#如下 两个参数 代表着从第二个字符起,三个长度,
SELECT SUBSTR('望风而起此念依依',2,3) AS out_put;
运行结果如下:
案例:将姓名中的首字符大写,其他字符小写,然后用_拼接显示。
SELECT CONCAT (UPPER(SUBSTR(`last_name`,1,1)),'_',LOWER(SUBSTR(`last_name`,2)))AS 姓名 FROM employees;
#instr
返回子串第一次出现的索引,找不到返回0
instar(’字符串’,子串)
INSTR(‘说好的幸福呢’,’幸福呢’)
SELECT INSTR('说好的幸福呢','幸福呢')AS JAY;
SELECT INSTR('说好的幸福呢','周')AS jj;
运行结果:

#trim
去先后空格 也能去前后自己规定改的字符之类的,但只能去除前后,中间的不行
注意:length表示 的是查询该该字符的字节长度,一个字符为三个字节。
SELECT LENGTH(' 元宝三 ')AS yyha;
SELECT LENGTH (TRIM(' 元宝三 '))AS yyha;
运行结果:

去除规定的字符
#trim 去前后空格 还能去前后规定的东东
SELECT TRIM('wwwww听阴天说什么www阴天快乐aaaaa');
SELECT TRIM('w'FROM 'wwwww听阴天说什么www阴天快乐wwww')AS ooo;
运行结果:
#lpad左填充 rapd 右填充
lpad(‘字符串’,需要填充多少个数字,’填充字符’)
SELECT LPAD ('大禹兄',10,'*')AS 左填充;
#这个代表的意思是从左边起填充字符 * 号,使起一共凑够十个字符
运行结果:
#replace 替换
REPLACE(‘字符串’, ‘需要替换的字符串’, ‘替换成这个字符串);
SELECT REPLACE(‘你的背包你的背包你的背包我的滑板鞋’,’背包’,’滑板鞋’);
SELECT REPLACE('你的背包你的背包你的背包我的滑板鞋','背包','滑板鞋');
运行结果:
