前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL一万字深度总结,基础+进阶(二),建议收藏。

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

原创
作者头像
Java学术趴
修改2021-08-10 10:34:55
3700
修改2021-08-10 10:34:55
举报
文章被收录于专栏:Java全栈·

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

👨‍🎓作者:Java学术趴 🏦仓库:Github、Gitee ✏️博客:CSDN、掘金、InfoQ、云+社区 💌公号:Java学术趴 🚫特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系小编授权。 🙏版权声明:文章里的部分文字或者图片来自于互联网以及百度百科,如有侵权请尽快联系小编。微信搜索公众号Java学术趴联系小编。 ☠️每日毒鸡汤:一朵花的美丽在于它曾经凋谢过。

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

1.排序(升序,降序)

语法格式:

代码语言:txt
复制
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 员工,并且要求按照薪资的降序排序

代码语言:txt
复制
 select
     ename,job,sal
 from
    emp
 where
    job = 'SALESMAN'
 order by 
    sal desc;

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

代码语言:txt
复制
   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 执行之后才会执行的。

代码语言:txt
复制
 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;

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 💖✨MySQL一万字深度总结,基础+进阶(二)
    • 1.排序(升序,降序)
      • 1.1 按照工资升序,找出员工名和薪资
      • 1.2按照工资的降序排列,当工资相同的时候在按照名字的升序排列。
      • 1.3找出工作岗位是 SALESMAN 员工,并且要求按照薪资的降序排序
    • 2.分组函数
      • 2.1分组函数/聚合函数/多行处理函数
      • 2.2找出工资的总和?
      • 2.3找出最高工资
      • 2.4找出最低工资
      • 2.5找出平均工资
      • 2.6找出总人数
      • 2.7分组函数自动忽略NULL。
      • 2.8找出工资高于平均工资的员工
    • 3.count(*) 和 count(具体某个字段) , 他们有什么区别?
      • 4.分组函数也可以组合起来用
      相关产品与服务
      云数据库 SQL Server
      腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档