MySQL学习记录(常用函数+演示分析)六 DML

本章关键字:

CONCAT    连接

UPPER       转换大写

LENGTH     返回字符串长度 

SUBSTR     从第几位置开始获取字段,到第几个位置结束;    #返回结果:es;

NOW()         返回当前系统时间

YEAR()        查询入职时间年

MONTH()    查询入职时间月

if                  函数,如果字段不为null,则取第二个值,如果为空,取第三个值

ifnull             函数,如果字段不为null,则直接返回该值,如果为空,取第二个值

AVG(sal)      平均工资

SUM(sal)      总工资

MAX(sal)      最大工资

MIN(sal)       最小工资

count             不统计null, 统计的是记录数

DISTINCT      返回不包含重复得查询结果

GROUP BY    来对查询出来的数据进行分组

LIMIT              常用来分页     (Mysql特有)

继"五"的学习记录的那2张表


# CONCAT 连接            返回结果:财务部北京

SELECT CONCAT(dname,loc) FROM tb_dept;   #dname和loc字符串连接在一起




#插入一条数据测试下面函数
INSERT INTO tb_emp(empno,ename,sal)
VALUES(8000,'test',500);




# UPPER转换大写      #返回结果:TEST
SELECT UPPER(ename) FROM tb_emp WHERE empno=8000;




# LENGTH返回字符串长度            #返回结果:4
SELECT LENGTH(ename) FROM tb_emp WHERE empno=8000;




# SUBSTR  从第几位置开始获取字段,到第几个位置结束;    #返回结果:es;
SELECT SUBSTR(ename,2,2) FROM tb_emp WHERE empno=8000;




# NOW()  返回当前系统时间
SELECT NOW();




#查询入职时间是1980年       YEAR()
SELECT * FROM tb_emp
WHERE YEAR(HIREDATE) = 1980;




#查询入职时间是1981年2月        MONTH()
SELECT * FROM tb_emp
WHERE YEAR(HIREDATE) = 1981
AND MONTH(HIREDATE) = 2;




#插入日期     #可以使用NOW()插入当前系统日期
INSERT INTO tb_emp(empno,ename,job,hiredate,sal)
VALUES(8001,'周杰伦','天王','2011-12-14',600);


INSERT INTO tb_emp(empno,ename,job,hiredate,sal)
VALUES(8002,'蔡依林','小天后',NOW(),600);




#if函数,如果字段不为null,则取第二个值,如果为空,取第三个值         

#字段comm+200为第二个值;100为第三个值

SELECT comm,IF(comm,comm+200,100) AS comm2 FROM tb_emp;




#ifnull函数,如果字段不为null,则直接返回该值,如果为空,取第二个值
SELECT comm,IFNULL(comm,100) AS comm2 FROM tb_emp;




#条件判断语句
SELECT ename,job,sal,comm '原定奖金',
CASE 
WHEN comm IS NULL THEN 100
ELSE comm
END AS '奖金'
FROM tb_emp;




#聚合函数,也叫组合函数
SELECT AVG(sal) FROM tb_emp ##平均工资


SELECT SUM(sal) FROM tb_emp ##总工资


SELECT MAX(sal) FROM tb_emp ##最大工资


SELECT MIN(sal) FROM tb_emp ##最小工资




SELECT SUM(sal) AS 工资总额,MAX(sal) AS 最高工资,
       MIN(sal) AS 最低工资,AVG(sal) AS 平均工资
       FROM tb_emp


SELECT COUNT(*) FROM tb_emp #count不统计null, 统计的是记录数


SELECT COUNT(comm) FROM tb_emp  #count不统计null


SELECT COUNT(deptno) FROM tb_emp


SELECT COUNT(DISTINCT deptno) FROM tb_emp   #查询部门(不包含重复)


SELECT AVG(comm) FROM tb_emp   #组合函数都是忽略空值 2200/4=550


#IFNULL(arg,arg) 如果第一个参数为null,则取第二个参数的值
SELECT comm FROM tb_emp;


SELECT IFNULL(comm,0) FROM tb_emp;


SELECT AVG(IFNULL(comm,0)) FROM tb_emp;




#GROUP BY字句的真正作用在于各种聚合函数配合使用。
来对查询出来的数据进行分组
#每个部门的平均工资

SELECT deptno,AVG(sal) FROM tb_emp GROUP BY deptno
#每个部门的员工数
SELECT deptno,COUNT(*) FROM tb_emp GROUP BY deptno


#查询每个部门的整体工资情况
#如果select语句中的列未使用组函数,那么它必须出现在GROUP BY子句中
#而出现在GROUP BY子句中的列,不一定要出现在SELECT语句中

SELECT deptno,AVG(sal),MAX(sal),MIN(sal),SUM(sal),COUNT(1)
FROM tb_emp
GROUP BY deptno #根据部门编号分组


#每个部门每个职位的平均工资
SELECT deptno,job,AVG(sal) FROM tb_emp WHERE deptno=10 GROUP BY deptno,job




#查询部门平均工资大于2000的
#分组后加条件 使用having
#where和having都是用来做条件限定的,但是having只能用在group by之后

SELECT deptno,AVG(sal),MAX(sal),MIN(sal),SUM(sal),COUNT(1)
FROM tb_emp
#where avg(sal) > 2000      where子句中不可以使用组函数
GROUP BY deptno
HAVING AVG(sal) > 2000
ORDER BY AVG(sal) ASC      #将sal进行从小到大排序,注意ORDER BY必须放在having后面
LIMIT 1,2


/*LIMIT,常用来分页     (Mysql特有)
select ... LIMIT offset_start,row_count;
offset_start:第一个返回记录行的偏移量。默认为0.
row_count:要返回记录行的最大数目。*/
SELECT * FROM tb_emp LIMIT 5; #检索前5个记录

SELECT * FROM tb_emp LIMIT 5,10; #检索记录行6-15   从第6行开始查,查10条记录



www.java1234.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了python应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值