数据库
首页 > 数据库> > MySQL【4】

MySQL【4】

作者:互联网

聚合函数

1.查询总数 count

select 列名count(*)from as 别名 表名称 group by 列名

如 查询表employees中gender列中的数据总数 select gender,count(*) as 总数 from employees group by gender;

 

 

 2.查询总和  sum

select sum(列名)as 别名 from 表名

如 查询表salaries中salary列的数据总和select sum(salary) as 总薪资  from salaries;

 

 

 3.查询平均 avg 

select avg(列名)as 别名 from 表名

如 查询表salaries中salary列的数据平均值select avg(salary) as 平均薪资 from salaries;

 

 

 4.查询最高 max

select max(列名)as 别名 from 表名

如 查询表salaries中salary列的数据最高值select max(salary) as 最高薪资 from salaries;

 

 

 5.查询最低 min

select min(列名)as 别名 from 表名

如 查询表salaries中salary列的数据最低值select min(salary) as 最低薪资 form salaries;

 

 

 如 按照年份和薪资划分 查询表salaries中总薪资从低到高的11条数据

select year(from_date) as 年份 ,sum(salary) as 总薪资 from salaries group by 年份 order by 总薪资 asc limit 10;

 

 

 6.去重 distinct     

select distinct 列名 from 表名

如 去除表student中grade重复的数据 select distinct grade from student;

 

 

7.筛选 having

筛选出表salaries中平均薪资超过112000的十个员工账号

select emp_no as 员工编号, avg(salary) as 平均薪资 from salaries group by emp_no having 平均薪资 >112000 order by 平均薪资  desc limit 10;

 

 

 二.表关联查询

1.内关联 inner  join on 

select * from 表A名称 inner join 表B名称 on 表A与表B的相同数据类型 where 条件

有表A  B  C  D

 

 

 

已知表A中的数据类型id以及数据与表B中的数据类型id以及数据一致,根据A表已知数据age=21查询AB表所有数据

select * from user as A inner join student as B on A.id=B.id where a.age=21

 已知表A中的数据类型id以及数据与表B中的数据类型id以及数据一致,B表中的数据类型stu_id以及数据与表B中的数据类型stu_id以及数据一致,根据A表数据name=tang查询ABC表所有数据

select * from user as A inner join student as B on A.id=B.id inner join studentinfo as C on B.stu_id=C.stu_id where A.name="tang";

 

 已知表A中的数据类型id以及数据与表B中的数据类型id以及数据一致,B表中的数据类型stu_id以及数据与表B中的数据类型stu_id以及数据一致,表C中的数据类型cityid以及数据与表D中的数据类型cityid以及数据一致,根据A表数据birthday=2000-03-19查询ABC表所有数据

select * from user as A inner join student as B on A.id=B.id inner join studentinfo as C on B.stu_id=C.stu_id inner join city as D on C.cityid=D.cityid where A.birthday="2000-03-19";

 

标签:数据类型,salaries,查询,MySQL,薪资,id,select
来源: https://www.cnblogs.com/teangtang/p/15467306.html