脚本宝典收集整理的这篇文章主要介绍了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]) | 截取字串 |
模板:
简单示例:SELECT COUNT(*) FROM student;
SELECT COUNT(*) FROM student WHERE math>=80;
细节说明: count(*)与count(列)的区别:
1.count(*)用于返回满足条件记录的行数。 2.count(列)统计满足条件记录的列又多少个,但是会排除NULL。即如果列数据中又NULL,则不算进去统计数。
简单示例:
SELECT SUM(`math`) FROM studen
SELECT AVG(`math`) FROM student
SELECT MAX(math) FROM student
细节说明: 1.SUM仅对数值起作用,对其他数值类型没有意义 2.对多列求和,“,”号不能少
模板:
简单示例: 首先创建一个雇员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;
个人理解: 如果没有搭配统计函数,极可能报错:
简单例子:
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
SELECT CURRENT_DATE() FROM DUAL
SELECT CURRENT_TIME() FROM DUAL
SELECT CURRENT_TIMESTAMP() FROM DUAL
小细节: LAST_DAY()可以得到这个月的最后一天的日期
SELECT USER() FROM DUAL(查看登入到mysql的用户有哪些,以及登入ip)
SELECT DATABASE() FROM DUAL
SELECT MD5('wangjie') FROM DUAL(进行密码加密)
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!
以上是脚本宝典为你收集整理的Mysql——相关函数全部内容,希望文章能够帮你解决Mysql——相关函数所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。