*博客主页——小杰同学要加油的博客主页
*欢迎关注点赞收藏留言
*刚刚学习,如果有不对的地方,请大佬斧正!
函数表:
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!
版权归原作者 小杰同学要加油 所有, 如有侵权,请联系我们删除。