0


Mysql——相关函数

*博客主页——小杰同学要加油的博客主页
*欢迎关注点赞收藏留言
*刚刚学习,如果有不对的地方,请大佬斧正!
在这里插入图片描述

函数表:
1.统计合计函数作用COUNT(*)返回满足条件记录的行数COUNT(列)返回行数,但不统计NULLSUM()求总和AVG()求平均数MAX()求最大值MIN()求最小值2.字符串函数作用CHARSET()返回字串字符集CONCAT ()连接字串UCASE()变大写LCASE()变小写LENGTH()字串长度REPLACE(str,search_str,replace_str)代替字窜SUBSTRING(str,position,[,length])截取字串3.数学函数作用ABS()返回绝对值CEILING()向上取整FLOOR()向下取整FORMAT(num.decimal_places)保留小数位RAND([seed])保留小数位字符串函数作用CHARSET()返回字串字符集CONCAT ()连接字串UCASE()变大写LCASE()变小写LENGTH()字串长度REPLACE(str,search_str,replace_str)代替字窜SUBSTRING(str,position,[,length])截取字串

文章目录

1.统计函数-COUNT

模板
在这里插入图片描述
简单示例:

SELECTCOUNT(*)FROM student;SELECTCOUNT(*)FROM student WHERE math>=80;

在这里插入图片描述

在这里插入图片描述
细节说明:
count(*)与count(列)的区别:

1.count(*)用于返回满足条件记录的行数。
2.count(列)统计满足条件记录的列又多少个,但是会排除NULL。即如果列数据中又NULL,则不算进去统计数。

2.合计函数-SUM-AVG-MAX-MIN

简单示例:

SELECTSUM(`math`)FROM studen

在这里插入图片描述

SELECTAVG(`math`)FROM student

在这里插入图片描述

SELECTMAX(math)FROM student

在这里插入图片描述

细节说明:
1.SUM仅对数值起作用,对其他数值类型没有意义
2.对多列求和,“,”号不能少

3.分组统计-使用统计函数

模板:
在这里插入图片描述
在这里插入图片描述
简单示例:
首先创建一个雇员emp表,并且插入一些信息:

#创建表EMP雇员CREATETABLE emp
(empno  MEDIUMINTUNSIGNEDNOTNULLDEFAULT0,/*编号*/
ename VARCHAR(20)NOTNULLDEFAULT"",/*名字*/
job VARCHAR(9)NOTNULLDEFAULT"",/*工作*/
mgr MEDIUMINTUNSIGNEDNOTNULLDEFAULT0,/*上级编号*/
hiredate DATENOTNULL,/*入职时间*/
sal DECIMAL(7,2)NOTNULL,/*薪水*/
comm DECIMAL(7,2),/*红利*/
deptno MEDIUMINTUNSIGNEDNOTNULLDEFAULT0/*部门编号*/);-- drop table empINSERTINTO emp VALUES(7369,'SMITH','CLERK',7902,'1990-12-17',800.00,NULL,20),(7499,'ALLEN','SALESMAN',7698,'1991-2-20',1600.00,300.00,30),(7521,'WARD','SALESMAN',7698,'1991-2-22',1250.00,500.00,30),(7566,'JONES','MANAGER',7839,'1991-4-2',2975.00,NULL,20),(7654,'MARTIN','SALESMAN',7698,'1991-9-28',1250.00,1400.00,30),(7698,'BLAKE','MANAGER',7839,'1991-5-1',2850.00,NULL,30),(7782,'CLARK','MANAGER',7839,'1991-6-9',2450.00,NULL,10),(7788,'SCOTT','ANALYST',7566,'1997-4-19',3000.00,NULL,20),(7844,'TURNER','SALESMAN',7698,'1991-9-8',1500.00,NULL,30),(7900,'JAMES','CLERK',7698,'1991-12-3',950.00,NULL,30),(7902,'FORD','ANALYST',7566,'1991-12-3',3000.00,NULL,20),(7934,'MILLER','CLERK',7782,'1992-1-23',1300.00,NULL,10);SELECT*FROM emp

在这里插入图片描述
由两个问题引出分组:
在这里插入图片描述

SELECTSUM(`sal`),AVG(`sal`),deptno FROM emp GROUPBY deptno

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

在这里插入代码片SELECTAVG(`sal`)AS avg_sal,deptno FROM emp GROUPBY deptno
                                             HAVING avg_sal<2000;

在这里插入图片描述
个人理解:
在这里插入图片描述
如果没有搭配统计函数,极可能报错:
在这里插入图片描述

4.字符串函数

简单例子:

SELECTCHARSET(sal)FROM emp

在这里插入图片描述

SELECT CONCAT(ename,'  ',job)FROM emp;

在这里插入图片描述

SELECTUCASE(sal)FROM emp;

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

SELECT empno,CONCAT(LCASE(SUBSTRING(ename,1,1)),SUBSTRING(ename,2))FROM emp

在这里插入图片描述

5.数学函数

在这里插入图片描述

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

SELECTCURRENT_DATE()FROM DUAL

在这里插入图片描述

SELECTCURRENT_TIME()FROM DUAL

SELECTCURRENT_TIMESTAMP()FROM DUAL

在这里插入图片描述
小细节:
在这里插入图片描述
在这里插入图片描述
LAST_DAY()可以得到这个月的最后一天的日期

6.加密函数和系统函数

在这里插入图片描述

SELECTUSER()FROM DUAL(查看登入到mysql的用户有哪些,以及登入ip)

在这里插入图片描述

SELECTDATABASE()FROM DUAL

在这里插入图片描述

SELECT MD5('wangjie')FROM DUAL(进行密码加密)

在这里插入图片描述

7.控制流程函数

在这里插入图片描述

SELECTIF(TRUE,12,23)FROM DUAL

在这里插入图片描述
小细节:
在这里插入图片描述
小例子

CREATETABLE t10(
    id INT,`name`VARCHAR(12));INSERTINTO t10 VALUES(11,'clerk');INSERTINTO t10 VALUES(12,'manager');INSERTINTO t10 VALUES(13,'saleman');INSERTINTO t10 VALUES(14,'clerk');INSERTINTO t10 VALUES(15,'manager');INSERTINTO t10 VALUES(16,'saleman');SELECT*FROM t10

在这里插入图片描述
如何把表中的英文换成中文?
实现代码:

SELECT id,(SELECTCASEWHEN`name`='clerk'THEN'书记'WHEN`name`='manager'THEN'经理'WHEN`name`='saleman'THEN'售货员'ELSE`name`END)AS'new'FROM t10;

在这里插入图片描述
以上部分截取韩顺平老师java课程的PPT!
在这里插入图片描述


本文转载自: https://blog.csdn.net/weixin_51488200/article/details/122534873
版权归原作者 小杰同学要加油 所有, 如有侵权,请联系我们删除。

“Mysql&mdash;&mdash;相关函数”的评论:

还没有评论