Mysql函数
常用函数
数学运算
SELECT ABS(-100) -- 绝对值
SELECT CEILING(6.5) -- 向上取整
SELECT FLOOR(6.5) -- 向下取整
SELECT RAND() -- 返回浮点型随机数
SELECT SIGN(-96969) -- 返回一个数的符号,0返回0,整数返回1,负数返回-1
字符串
SELECT CHAR_LENGTH('这里是mysql常用函数') -- 字符串长度
SELECT CONCAT('我','爱','中国') -- 拼接字符串
SELECT INSERT('这里是mysql常用函数',4,5,'java') -- 替换字符串 (原字符串,从哪个位置开始替换,替换几个字符串,替换成什么)
SELECT LOWER('Hello,World') -- 大写字母转小写
SELECT UPPER('hello,world') -- 小写字母转大写
SELECT INSTR('这里是mysql常用函数','m') -- 返回子串第一次出现的位置的索引
SELECT REPLACE('这里是mysql常用函数','mysql','java') -- 替换指定字符串 (原字符串,要替换的字符串,'替换成什么')
SELECT SUBSTR('这里是mysql常用函数',4,5) -- 返回指定的子字符串,(原字符串,开始截取的位置,截取的长度)
SELECT REVERSE('这里是mysql常用函数') -- 反转字符串
日期和时间
SELECT CURRENT_DATE() -- 获取当前日期 与 CURDATE() 相同
SELECT NOW() -- 获取当前时间 与 LOCALTIME() SYSDATE() 相同
SELECT YEAR(NOW()) -- 返回年份,月份,日期、时分秒与之相同
系统
SELECT SYSTEM_USER() -- 返回系统用户 与 USER() 相同
SELECT VERSION() -- 返回mysql版本
聚合函数
函数名称 | 描述 |
---|---|
COUNT() | 计数 |
SUM() | 求和 |
AVG() | 求平均值 |
MAX() | 求最大值 |
MIN() | 求最小值 |
... | ... |
count()
-- count(列名)
SELECT COUNT(studentno) FROM student
-- count(*)
SELECT COUNT(*) FROM student
-- -- count(1)
SELECT COUNT(1) FROM student
区别:
我们现在根据gradeid 来计数学生的数量
-- count(列名)
SELECT COUNT(gradeid) FROM student
-- count(*)
SELECT COUNT(*) FROM student
-- -- count(1)
SELECT COUNT(1) FROM student
我们可以发现,使用count(gradeid),不能把gradeid为null的学生计算出来,而count(1)/count(*),可以把gradeid为null的学生计算出来.
count(*) 和 count(1) 的区别
-
count(1),其实就是计算一共有多少符合条件的行
1并不是表示第一个字段,而是表示一个固定值。
其实就可以想成表中有这么一个字段,这个字段就是固定值1,count(1),就是计算一共有多少个1。
-
count(*),执行时会把星号翻译成字段的具体名字,效果也是一样的,不过多了一个翻译的动作,比固定值的方式效率稍微低一些。
-
他们之间根据不同情况会有些许区别,MySQL会对count(*)做优化。
(1)如果列为主键,count(列名)效率优于count(1)
(2)如果列不为主键,count(1)效率优于count(列名)
(3)如果表中存在主键,count(主键列名)效率最优
(4)如果表中只有一列,则count(*)效率最优
(5)如果表有多列,且不存在主键,则count(1)效率优于count(*)
SUM()、AVG()、MAX()、MIN()
-- 计算所有成绩的总和
SELECT SUM(studentresult) FROM result
-- 计算所有成绩的平均分
SELECT AVG(studentresult) FROM result
-- 计算成绩的最大值、最小值
SELECT MAX(studentresult) AS 最大值,MIN(studentresult) AS 最小值 FROM result
标签:count,函数,--,mysql,笔记,Mysql,字符串,SELECT
From: https://www.cnblogs.com/wztblogs/p/16753549.html