函数
1.概念
将一组逻辑封装在方法体之中,对外暴露方法名,隐藏了其中的细节,提高了代码的重用性
单行函数只有一个参数分组函数参数为一组
2.单行函数
字符函数
数学函数
日期函数
流程控制函数
其他函数
2.1字符函数
SHOW VARIABLES LIKE '%char%';查看当前字符集
length("dsad") 返回值为字节数目,中文字符在
utf-8字符集中占3个字节concat连接字符upper大写lower小写substr截取字符 包含4个重载函数substr(str,startPos)从开始位置到字符结尾substr(str,startPos,length)
函数嵌套调用
SELECT
CONCAT(UPPER(title), id)
FROM
`pmw_admanage`instr(str,substr)返回子字符串第一次出现的索引,找不到则返回0TRIM去除字符串首位空格,也可以去掉指定字符;字符会区别大小写SELECT TRIM('a' FROM 'aaaaVaa') AS output ;LPAD字符左填充SELECT LPAD('aa',10,'**') ;将会返回一个10个字符的字符串如果指定填充后的长度小于原始字符串,则对原始字符串进行截断
RPAD字符进行右填充REPLACE默认全部替换SELECT REPLACE('asdsad','dsad','d');
2.2数学函数
ROUND进行四舍五入,第二个参数保留的小数位数CEIL向上取整,返回>=该参数的最小整数floor向下取整,返回<=该小数的最大整数truncate对小数进行截断mod取余,被除数为正则为正
2.3日期函数
now()返回日期加时间CURTIME()返回当前时间CURDATE()返回当前日期year()获取日期中的年SELECT YEAR('2020-02-01');MONTHNAME(NOW());获取月份的名字或者数字month()SELECT STR_TO_DATE('2020/02/1','%Y/%m/%d');将用户输入的字符串解析成mysql中的日期数据SELECT DATE_FORMAT('2020-02-27',"%Y年%m月%d日");将日期解析成对应的字符串
2.4其他函数
version()databaseuser
2.5流程控制函数
类似三元运算符
SELECT IF(id>10,'有','无') FROM pmw_goodstype;IF对id进行判断为真返回有case函数
1.对字段进行处理
当id等于5的时候,对id进行加倍,否则按照原来的来显示
case 要判断的语句或表达式 when 常量 then 执行的操作; when 常量 then 执行操作; else 默认值语句; end SELECT id, CASE id WHEN 5 THEN id*2 #这里没有分号 ELSE id END FROM `pmw_goodstype`;2.进行多重判断,执行对应的语句
对id字段进行判断
SELECT id, CASE WHEN id>5 THEN 'A' WHEN id<=4 THEN 'B' ELSE 'c' END AS Grade FROM `pmw_goodstype`;
3.分组函数
给函数传递一组值,最后得到一个返回值
sumSELECT SUM(id) FROM pmw_goodstype;对id字段求和;如果sum函数中放的为字符型,则会将字符型转化为数字;转换失败则会返回0;不支持
NULL类型,自动忽略avg忽略
NULL值max支持字符型和日期型数据
mincount支持的数据类型更多了,计算非
NULL类型的数目count(*)统计行数,*代表所有字段count(1) 统计行数 1表示新增一列,计算这一列的数目
3.1 简单的嵌套使用
去重之后再进行求和
SELECT SUM(DISTINCT id),SUM(id) FROM `pmw_goodstype`;Last updated
Was this helpful?