概念:类似于java的方法。
好处:1.隐藏了实现细节
2.提高代码的重要性
调用:select 函数名(实参列表)【from 表】;
特点:①函数名
②干什么(函数功能)
分类:1.单行函数 如concat length ifnull等
2.分组函数 做统计使用 给一组值返回一个值

一、字符函数

#length 获取参数值的字节个数

  1. SELECT LENGTH('johe');
  2. 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;

运行结果:2020-09-05_115413.png
#如果有两个参数的,则第二个参数代表着个数而非位置,
#如下 两个参数 代表着从第二个字符起,三个长度,

SELECT SUBSTR('望风而起此念依依',2,3) AS out_put;

运行结果如下:
2020-09-05_120348.png

案例:将姓名中的首字符大写,其他字符小写,然后用_拼接显示。

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;

运行结果:
2020-09-05_122112.png2020-09-05_122125.png

#trim

去先后空格 也能去前后自己规定改的字符之类的,但只能去除前后,中间的不行
注意:length表示 的是查询该该字符的字节长度,一个字符为三个字节。

SELECT LENGTH('  元宝三  ')AS yyha;
SELECT LENGTH (TRIM('  元宝三  '))AS yyha;

运行结果:
2020-09-05_122604.png2020-09-05_122615.png
去除规定的字符
#trim 去前后空格 还能去前后规定的东东

SELECT TRIM('wwwww听阴天说什么www阴天快乐aaaaa');
SELECT TRIM('w'FROM 'wwwww听阴天说什么www阴天快乐wwww')AS ooo;

运行结果:
2020-09-05_123558.png

#lpad左填充 rapd 右填充

lpad(‘字符串’,需要填充多少个数字,’填充字符’)

SELECT LPAD ('大禹兄',10,'*')AS 左填充;
#这个代表的意思是从左边起填充字符 * 号,使起一共凑够十个字符

运行结果:
2020-09-05_124519.png

#replace 替换

REPLACE(‘字符串’, ‘需要替换的字符串’, ‘替换成这个字符串);
SELECT REPLACE(‘你的背包你的背包你的背包我的滑板鞋’,’背包’,’滑板鞋’);

SELECT REPLACE('你的背包你的背包你的背包我的滑板鞋','背包','滑板鞋');

运行结果:
2020-09-05_125847.png