【学习笔记】Mysql函数

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

区别:

image-20221004114912715

我们现在根据gradeid 来计数学生的数量

-- count(列名)
SELECT COUNT(gradeid) FROM student

image-20221004115040838

-- count(*)
SELECT COUNT(*) FROM student
-- -- count(1)
SELECT COUNT(1) FROM student

image-20221004115111807

 

我们可以发现,使用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
posted @ 2022-10-04 12:02  GrowthRoad  阅读(20)  评论(0编辑  收藏  举报