Mysql——003 DQL

1.概括:

#DQL,数据查询语言,用来查询数据库中表的记录
/*select  基本查询
where 条件查询
group by 分组查询
order by 排序查询
limit   分页查询*/

2.

#1.基本查询
#查询多个字段
select name,workno,age from emp;

#设置别名
select workaddress as '工作地址' from emp;#as可以省略

#去除重复记录
select distinct name '名字' from emp;#distinct

3.

#2.条件查询
select * from emp where age<=20;#查询年龄小于等于20
select * from emp where age<>18;#查询年龄不等于18
select * from emp where age>=15 and age<=18;
select * from emp where age between 15 and 19;
select * from emp where idcard is  not null;#查询身份证号不是空的
select * from emp where gender='男' and age<=17;


select * from emp where age=18 or age=17 or age=19;
select * from emp where age in(17,18,19); #等价于or

select * from emp where name like '__'; #查询名字为两个字的名字
select * from emp where idcard like '%6'; # %代表6前面的所有字符

4.

#3.分组查询
#聚合函数(所有的null值不参与)
select count(*) from emp; #统计数量
select count(idcard) from emp;

select avg(age) from emp;#统计平均年龄

select max(age) from emp;#查询最大年龄

select sum(age) from emp where workaddress='江西理工大学信息学院'; #统计江西理工大学的学生年龄总和

#where和having的区别:执行时机不同,where在分组之前,having是分组之后对结果进行过滤;where不能对聚合函数进行判断,而having可以
select gender,count(*) from emp group by gender;#根据性别分组,统计男女的数量
select gender,avg(age) from emp group by gender;#根据性别分组,统计男女的平均年龄
select workaddress,count(*) from emp where age<45 group by workaddress having count(*)>=3;#查询年龄小于45的员工,根据工作地址分组,获取员工数量》=3的工作地址

5.

#4.排序查询
select  * from emp order by age asc;#根据年龄升序排序
select  * from emp order by age desc ;#根据年龄进行降序排序
select  * from emp order by  entrydate desc;#根据入职时期降序排序
select  * from emp order by age asc,entrydate desc; #根据年龄升序排序,年龄相同,再按照入职时期进行排序

6.

#5.分页查询
select * from emp limit 0,3;#从第一页开始,每页查询3条记录
select * from emp limit 3,5;#查询第二页数据,每页展示5条记录——————>(页码-1)*上页展示记录数

7.

#6.练习
#查询年龄20,19,18的女性员工信息
select *from emp where age in(18,19,20) and gender='女';
#查询性别为男,并且年龄18-20且姓名为三个字
select *from emp where gender='男' and age between 18 and 20 and name like '___';
#统计年龄小于19的男性和女性数量
select gender,count(*) from emp where age<19  group by gender;
#查询年龄小于等于35员工的性别和年龄,并对查询结果按年龄升序排列,相同就按入职时间降序排列
select name,age from emp where age<=35 order by age,entrydate desc;

8.

#7.编写顺序
#select+字段列表+from+表名+where+条件列表+group by+分组字段列表+having+条件列表+order by+排序字段列表+limit+分页参数

#8.执行顺序
#from+表名+where+条件列表+group by+分组字段列表+having+条件列表+select+字段列表+order by+排序字段列表+limit+分页参数

9.


#9.总结
#select+字段列表+from+表名
#where+条件列表     <> like betweenand and or
# group by+分组字段列表+having+条件列表
# order by+排序字段列表
# limit+分页参数

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值