所见即所得即MySQL函数
创始人
2024-01-20 03:40:59
0

✨✨hello,愿意点进来的小伙伴们,你们好呐!
🐻🐻系列专栏:【MySQL初阶】
🐲🐲本篇内容:MySQL函数的详解
🐯🐯作者简介:一名现大二的三非编程小白,日复一日,仍需努力。

  • 统计函数:
    • count
    • SUM 函数:
    • AVG 函数:
    • MAX 与 MIN 函数:
    • GROUP BY .... HAVING 函数:
  • 字符串相关函数 :
    • CHARSET 函数:
    • CONCAT 函数
    • INSTR 函数:
    • UCASE 与 LCASE 函数:
    • LEFT (string , n)函数:
    • LENGTH 函数:
    • REPLACE (str,search_str,replace_str)函数:
    • STRCMP(str1,str2) 函数:
    • SUBSTRING(str,position,length)
    • LTRIM 与 RTRIM函数:
    • 字符串函数综合运用:
  • 数学相关函数:
  • 时间日期函数:
    • 当前时间:
    • 日期的运算:
  • 加密函数:
    • MD5 函数:
    • PASSWORD(str) 函数:
  • 流程控制函数:

在MySQL中会有很多函数来简便我们的运算,可以使我们对MySQL中查询表中的数据并对其操作更加优雅,接下来让我来介绍这些优雅的函数…
在这里插入图片描述

统计函数:

count

count函数是一个统计类型的函数,可以使用在统计某一条件的物品或者人的个数.
接下来我来演示一下

在这里插入图片描述

我们在一个学生表中统计学生的个数.

SELECT COUNT(*) FROM students;

在这里插入图片描述

我们统计总分大于250的人数

SELECT COUNT((math + english + chinese)) FROM students
WHERE (math + english + chinese) > 250

COUNT(*) 与 COUNT(列) 有什么区别呢?
两者的作用都是来统计,不过也是会有一点点的区别,对于COUNT(星)来说,是把所有的人数都统计起来,然后COUNT(列) 是对于NULL的行是不会统计起来的,接下来我们再来看看是怎么回事.

在t1表中会有一个name为null,
在这里插入图片描述

带星的count

SELECT COUNT(*) FROM t1;

在这里插入图片描述
我们这些COUNT(列)后,将会将null的name不计算在内.
在这里插入图片描述

SUM 函数:

统计students表中学生math的总分.

SELECT SUM(math) FROM students;

在这里插入图片描述

AVG 函数:

统计students表中学生math的平均分.

SELECT AVG(math) FROM students;

在这里插入图片描述

MAX 与 MIN 函数:

演示max min 函数的使用:

 SELECT MAX(math),MIN(math) FROM students;

在这里插入图片描述

这些是统计函数简单场景下的演示,在很多情况下,我们的统计场景不可能这么简单,在开发中我们经常需要分组来进行统计 — 引入 GROUP BY … HAVING函数

GROUP BY … HAVING 函数:

GROUP BY 是用在对查询结果的分组统计上的,HAVING 函数用于限制分组显示的结果,就相当于WHERE用来过滤结果.

接下来我们在emp表中演示一下:
在这里插入图片描述

1. 显示每个部门的平均工资和最高工资.

我们可以把问题分解为简单的求出平均工资与最高工资,然后再加强为分部门的平均工资与最高工资

SELECT deptno, AVG(sal) , MAX(sal) FROM empGROUP BY deptno;

在这里插入图片描述

2. 显示每个部门的每种岗位的平均工资和最低工资.

思路与上个问题一样,化繁为简

SELECT job , AVG(sal) , MIN(sal) FROM empGROUP BY job;

在这里插入图片描述

3.显示平均工资低于1000的部门号,和它的平均工资.

我们先查找部门的平均工资,然后再过滤,一步一步来

SELECT deptno,AVG(sal) AS sal FROM empGROUP BY deptnoHAVING sal < 1000;

在这里插入图片描述

字符串相关函数 :

在MySQL中存在着非常便捷的一种函数 – 对字符串进行操作的函数,接下来我来介绍这些函数.

CHARSET 函数:

CHARSET 函数 的作用是返回表中字符串的字符集.

SELECT CHARSET(ename) FROM emp;

在这里插入图片描述
因为在创建表的时候,没有指定字符集,所以会以默认的字符集utf8

CONCAT 函数

CONCAT 函数 的使用是可以来拼接字符串,就相当于Java语法中的 ‘+’

SELECT CONCAT(ename, ' 工作是 ', job) FROM emp;

在这里插入图片描述

INSTR 函数:

INSTR 函数 的作用是返回子串在字符串中首次出现的位置.
DUAL 是一个亚元表,是MySQL中的一个相当于虚拟的表,因为我们这个函数并不需要在某个表中查询,所以就可以使用亚元表.

SELECT INSTR('123456','456') FROM DUAL;

在这里插入图片描述

UCASE 与 LCASE 函数:

UCASE 与 LCASE 函数 这两个函数是来对字符串英文字母进行大小写转化的.

SELECT UCASE('sss') FROM DUAL;
SELECT LCASE('AAA') FROM DUAL;

LEFT (string , n)函数:

LEFT 函数 是从字符串的左边起,去n个字符

SELECT LEFT('123456',3) FROM DUAL;

在这里插入图片描述

LENGTH 函数:

LENGTH 函数: 这个函数应该很熟悉,在Java中的字符串长度的方法.

SELECT LENGTH('123456789') FROM DUAL;

在这里插入图片描述

REPLACE (str,search_str,replace_str)函数:

REPLACE (str,search_str,replace_str)函数: 是在str中使用replace_str 替换search_str

SELECT REPLACE('123456789','123','111');

在这里插入图片描述

STRCMP(str1,str2) 函数:

STRCMP 函数: 是来比较字符串大小的函数.如果str1长则返回1,如果str2长则返回-1

SELECT STRCMP('111','1111');

在这里插入图片描述

SELECT STRCMP('111','1');

在这里插入图片描述

SUBSTRING(str,position,length)

SUBSTRING(str,position,length) 函数在str中从position开始,取length个字符

SELECT SUBSTRING('123456789',2,2);

在这里插入图片描述

LTRIM 与 RTRIM函数:

该函数的作用在于去除字符串前端的空格或者后端的空格,也可以去除前后端的空格 – TRIM

SELECT LTRIM('    11');

在这里插入图片描述

字符串函数综合运用:

我们要以首字符为小写的方式显示所有的员工emp表的名字:

方法1:

我们可以使用REPLACE 将首字母替换为小写,其余的不变.

SELECT REPLACE(ename,LEFT(ename,1),LCASE(LEFT(ename,1))) FROM emp;

在这里插入图片描述

方法2:

我们可以使用CONCAT 函数来进行字符串拼接.

SELECT CONCAT(LCASE(SUBSTRING(ename,1,1)),SUBSTRING(ename,2,LENGTH(ename) - 1))FROM emp;

在这里插入图片描述

数学相关函数:

MySQL中提供了很多数学函数可以供我们使用,这些函数都很简单,我就不一一展示,将用途统计起来给各位看…

在这里插入图片描述

时间日期函数:

在我们实际中的开发上,会在很多方面都与时间相关,所以MySQL中的时间相关的函数就尤为重要.接下来我们来一起看看这些跟日期相关的函数

时间的函数可以分为4组:

当前时间:

在这里插入图片描述

SELECT CURRENT_DATE() FROM DUAL;
SELECT CURRENT_TIME() FROM DUAL;
SELECT CURRENT_TIMESTAMP() FROM DUAL;

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

日期的运算:

在这里插入图片描述
往当前日期加10天.

SELECT DATE_ADD('2022-11-5',INTERVAL 10 DAY) FROM DUAL;

在这里插入图片描述

在当前日期减10天

SELECT DATE_SUB('2022-11-5',INTERVAL 10 DAY) FROM DUAL;

计算两个日期的天数差.是第一个时间 减 第二个时间

SELECT DATEDIFF('2022-11-05','2022-11-01') FROM DUAL;

在这里插入图片描述

在这里插入图片描述

SELECT NOW() FROM DUAL;

在这里插入图片描述

加密函数:

MD5 函数:

该函数可以给一串没有经过处理的密码给进行加密,计算出MD5 32位的字符串

SELECT MD5('1hj') FROM DUAL;

在这里插入图片描述

PASSWORD(str) 函数:

PASSWORD(str) 函数也是一个给密码进行加密的函数,在MySQL8之前中的密码其实就是用PASSWORD函数来进行加密的,MySQL8后就移除了该函数.

红色的框内是我MySQL的密码.

在这里插入图片描述
在这里插入图片描述
接下来我们来看看MySQL中的密码加密后的结果是否与现在的一样.

SELECT * FROM mysql.user;

在这里插入图片描述

这就是MySQL中的加密函数password()

流程控制函数:

在这里插入图片描述

IF函数 与Java中的三目运算符相似,在第一个表达式为真的情况下,就返回第二个表达式,为假就返回第三个表达式.
IFNULL 如果第一个表达式为NULL,就返回第二个表达式,若不为null,就返回第一个表达式.
在这里插入图片描述
这个函数相当于Java中的多分支也是很简单很简单的

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...