Mysql——相关函数

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

函数表:

1.统计合计函数作用
COUNT(*)返回满足条件记录的行数
COUNT(列)返回行数,但不统计NULL
SUM()求总和
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

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

SELECT COUNT(*) FROM student;
SELECT COUNT(*) FROM student WHERE math>=80;

在这里插入图片描述

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

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

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

简单示例:

SELECT SUM(`math`) FROM studen

在这里插入图片描述

SELECT AVG(`math`) FROM student

在这里插入图片描述

SELECT MAX(math) FROM student

在这里插入图片描述

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

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

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


#创建表EMP雇员
CREATE TABLE emp
(empno  MEDIUMINT UNSIGNED  NOT NULL  DEFAULT 0, /*编号*/
ename VARCHAR(20) NOT NULL DEFAULT "", /*名字*/
job VARCHAR(9) NOT NULL DEFAULT "",/*工作*/
mgr MEDIUMINT UNSIGNED NOT NULL DEFAULT 0,/*上级编号*/
hiredate DATE NOT NULL,/*入职时间*/
sal DECIMAL(7,2)  NOT NULL,/*薪水*/
comm DECIMAL(7,2),/*红利*/
deptno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0 /*部门编号*/
) ;
-- drop table emp
INSERT INTO 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

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

SELECT SUM(`sal`),AVG(`sal`),deptno FROM emp GROUP BY deptno

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

在这里插入代码片SELECT AVG(`sal`) AS avg_sal,deptno FROM emp GROUP BY deptno
                                             HAVING avg_sal<2000;

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

4.字符串函数

简单例子:

SELECT CHARSET(sal) FROM emp

在这里插入图片描述

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

在这里插入图片描述

SELECT UCASE(sal) FROM emp; 

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

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

在这里插入图片描述

5.数学函数

在这里插入图片描述

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

SELECT CURRENT_DATE() FROM DUAL

在这里插入图片描述

SELECT CURRENT_TIME() FROM DUAL

SELECT CURRENT_TIMESTAMP() FROM DUAL

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

6.加密函数和系统函数

在这里插入图片描述

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

在这里插入图片描述

SELECT DATABASE() FROM DUAL

在这里插入图片描述

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

在这里插入图片描述

7.控制流程函数

在这里插入图片描述

SELECT IF(TRUE,12,23) FROM DUAL

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

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

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

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

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

  • 12
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值