🔥MySQL一万字深度总结,基础+进阶(二),建议收藏。✨💖

264 阅读4分钟

💖✨MySQL一万字深度总结,基础+进阶(一)

这是我参与 8 月更文挑战的第 2 天,活动详情查看: 8月更文挑战

👨‍🎓作者:Java学术趴

🏦仓库:GithubGitee

✏️博客:CSDN掘金InfoQ云+社区

💌公众号:Java学术趴

🚫特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系小编授权。

🙏版权声明:文章里的部分文字或者图片来自于互联网以及百度百科,如有侵权请尽快联系小编。微信搜索公众号Java学术趴联系小编。

☠️每日毒鸡汤:一朵花的美丽在于它曾经凋谢过。

👋大家好!我是你们的老朋友Java学术趴,今天继续给大家分享小编精心为大家整理的一万字MySQL数据库核心知识、在接下来的几天为大家持续分享,💘关注不迷路呦!!!💘。数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。数据库是一个按数据结构来存储和管理数据的计算机软件系统。🦄

1.排序(升序,降序)

语法格式:

select      
字段值1,字段值2...
from
表名
order by
字段值;

1.1 按照工资升序,找出员工名和薪资

select ename,sal from emp order by sal; (这个为默认,默认升序)

注意:默认是升序。怎么指定升序或者降序?asc表示升序,desc表示降序。

select ename,sal from emp order by sal; (默认升序)

select ename,sal from emp order by sal asc;

select ename,sal from emp order by sal desc;

1.2按照工资的降序排列,当工资相同的时候在按照名字的升序排列。

select ename,sal from emp order by sal desc,ename asc;

注意: 越靠前的字段越能起主导作用。只有当前面的字段无法完成排序的时候,才会启用后面的字段。

练手:

select ename,sal from emp order by 1;

select ename,sal from emp order by 2;

select * from emp order by 6;

1.3找出工作岗位是 SALESMAN 员工,并且要求按照薪资的降序排序

 select
     ename,job,sal
 from
    emp
 where
    job = 'SALESMAN'
 order by 
    sal desc;

执行顺序 : 先执行from,在执行where,在执行select,最后在执行order by 。

   select
    *      3
from
tablename  1
where          
    条件    2
order by    
    ...    4

order by 是最后执行的。

2.分组函数

2.1分组函数/聚合函数/多行处理函数

  • count 计数
  • sum 求和
  • avg 平均数
  • max 最大值
  • min 最小值

记住: 所有的分组函数都是对“某一组”数据进行操作的。

2.2找出工资的总和?

select sum(sal) from emp;

2.3找出最高工资

select max(sal) from emp;

2.4找出最低工资

select min(sal) from emp;

2.5找出平均工资

select avg(sal) from emp;

2.6找出总人数

select count(*) from emp;

select count(ename) from emp;

分组函数一共有5个。分组函数还有另一个名字:多行处理函数。 多行处理函数的特点:输入多行,最终输出的结果是 1 行。

2.7分组函数自动忽略NULL。

select count(comm) from emp;

select sun(comm) from emp;

多此一举:不需要添加这个额外的过滤条件,分组函数自动忽略null

select sum(comm) from emp where comm is not null;

2.8找出工资高于平均工资的员工

第一步 : 找出平均工资

select avg(sal) from emp;

第二步 : 找出工资高于平均工资的员工

select ename,sal from emp where sal > (select avg(sal) from emp);

以下的错误信息:无效的使用了分组函数。

以上的错误原因:**SQL语句当中有一个语法规则,分组函数不可以直接使用在where子句当中。

因为group by 是在 where 执行之后才会执行的。

 select  5
 ...
 from    1
 ... 
 where   2
 ...
 group by  3
 ...
 having   4  
 ...
 order by  6
 ...

3.count(*) 和 count(具体某个字段) , 他们有什么区别?

  • count(*) : 不是统计某个字段中数据的个数,而是统计总记录条数。(和某个字段无关)

  • count(comm) : 表示统计comm字段中不为NULL的数据总数量。

    select count(*) from emp;

select count(comm) from emp;

select count(job) from emp;

4.分组函数也可以组合起来用

select count(*),sum(sal),avg(sal),max(sal),min(sal) from emp;

今天就先分享到这里,明天继续给大家分享,关注不迷路呦,我们明天见😊。
以上项目的源代码,点击星球🌍进行免费获取 星球(Github地址)如果没有Github的小伙伴儿。可以搜索🔍微信公众号:Java学术趴,📭发送MySQL,免费给发给大家项目源码,代码是经过小编亲自测试🔧的,绝对可靠,免费拿去使用。

--------💘看完的大佬们可以关注一下小编,会一直更新小技巧,免费分享给大家呦!!!💝---------

点击🌍星球可快速进入小编的Github星球呦!!里边还有更多好玩的技术,等待大家去探索呦💪!!