0
点赞
收藏
分享

微信扫一扫

mysql基础学习--day7

花明 2022-04-02 阅读 84
学习mysql

去重  : distinct

表示按照某个字段或某几个字段去重,相同的记录只保留一个
    注意:只有一个字段时,可以加括号,如果是按照多个字段去重时,不可以加括号,否则会报错


示例:查询员工信息表中的性别信息,并按照性别去重
select distinct sex from emp 

练习:查询员工信息emp表中的部门编号信息,并按照部门编号去重
select distinct(deptno) from emp


设置别名  as
给查询返回的字段或者查询的表起个临时的名字
        注意:1、起的别名只是在本次查询中生效
                    2、给字段起的别名不能跟在where后面进行判断(但是可以跟在group by,having和order by后面)
                    3、as可以忽略不写(但是建议写上,提高可读性)

select ename as 姓名,deptno as 部门编号,empno as 员工编号 from emp 


排序  ---order by
将查询出来的字段按照指定的字段,指定的方式进行展示

语法:
select 查询内容 from 表 where 限定条件 order by 排序条件1,排序条件2,
排序方式: 升序--asc
            降序---desc
            不知道排序方式的情况下,默认是升序(asc可以不写,但是建议写上)
            注意:如果要对中文的内容按照拼音的顺序进行排序的话,需要将其字符集转换成gbk后再排序

示例:查询员工信息表中张姓员工的员工编号,姓名,性别和工资信息,并按照工资降序展示
select empno as 员工编号,ename as 姓名,sex as 性别,sal as 工资信息 from emp where ename like '张%' order by 工资信息 desc;

示例:查询员工信息表,并按照员工姓名升序展示
select * from emp order by ename asc;
select * from emp order by convert(ename using gbk) asc;

练习:查询员工信息表emp中工资大于10000的员工编号,姓名,工资以及部门编号信息,并按照性别升序,部门编号降序展示
select ename as 姓名,empno as 员工编号,sal as 工资·,deptno as 部门编号,sex as 性别 from emp where sal > 10000 order by sex,deptno desc;

分组  ---group by
将查询的结果按照指定的条件进行分组统计
语法:
select 查询内容 from 表 where 限定条件 group by 分组条件1,分组条件2 order by 排序条件1 排序方式.....

示例:查询员工信息表emp,并按照部门编号分组显示
select * from emp group by deptno


练习:查询员工信息emp表中姓张的员工信息,并按照性别,部门编号分组,并按照性别升序,部门编号降序展示
select ename as 姓名,sex as 性别,deptno as 部门编号 from emp where ename like '张%' group by sex,deptno order by sex asc,deptno desc;


聚合函数:

计数函数  ---count()
返回查询的语句一共多少条数据

count(*) --查询的时候,只要有一行数据,那么就在返回的结果中+1
count(字段) --查询的时候,如果该字段不为空,那么就在返回结果上+1,否则忽略不计
count(0) --返回值与count(*)是一样的

示例:查询emp表中公司共有多少个人
select count(*) as 总人数 from emp 

练习1:查询员工信息emp表中各性别有多少人
select sex as 性别,count(*) as 人数 from emp group by sex

练习2:查询员工信息emp表中工资大于40000的张姓员工的各性别有多少人,并按照人员数量降序展示
select ename as 姓名,sal as 工资,sex as 性别,count(*) as 人员数量 from emp where sal > 40000 and ename like '张%' group by sex order by 人员数量 desc

练习3: 查询员工信息emp表中共有多少个部门
select deptno from emp group by deptno;
select count(distinct deptno) from emp


求和函数 --- sum()
返回某个字段相加的总和,为null的字段当做忽略不算

示例:查询emp表中各性别的薪资总和
select sex as 性别,sum(sal) as 薪资总和 from emp group by sex


求平均数 ---avg()
返回某个字段的平均数,为null的行不参与求平均

示例:查询emp表中各性别的平均薪资
select sex as 性别,avg(sal) as 平均薪资 from emp group by 性别

求最大值 ---max()
返回某个字段的最大值

求最小值 ---min()
返回某个字段的最小值

练习:查询员工信息表中各部门的张姓男员工的总人数,工资总和,平均工资,最高工资和最低工资,并按照平均工资降序展示
select deptno as 部门,count(*) as 总人数,sum(sal) as 工资总和,avg(sal) as 平均工资,max(sal) as 最高工资,min(sal) as 最低工资 from emp where ename like '张%' group by 部门 order by 平均工资 desc;
 

举报

相关推荐

0 条评论