SQL语法之DQL语句

一、单表查询

1、基本查询

  1. 查询多个字段

select 字段1,字段2,字段3... from 表名;

查询所有字段返回

select * from 表名;

  1. 设置别名

select 字段1 [as 别名1],字段2 [as 别名2] ... from 表名;

注意:as可以省略不写

  1. 去除重复记录

select distinct 字段列表 from 表名;

2、条件查询(where)

①查询年龄等于88的员工。

select * from emp where age = 88;

②查询年龄小于20的员工。

select * from emp where age < 20;

③查询年龄小于等于20的员工。

select * from emp where age <= 20;

④查询没有身份证号的员工信息。

select * from emp where idcard is null;

⑤查询有身份证号的员工信息。

select * from emp where idcard is not null;

⑥查询年龄不等于88的员工。

select * from emp where age != 88;

或者

select * from emp where age <> 88;

⑦查询年龄在15岁(包含)到20岁(包含)之间的员工信息。

select * from emp where age >=15 && age <=20;

或者

select * from emp where age >=15 and age <=20;

或者

select * from emp where age between 15 and 20;

⑧查询性别为女且年龄小于25岁的员工信息。

select * from emp where gender = "女" and age <=20;

3、聚合函数(count、max、min、avg、sum)

①统计该企业员工数量。

select count(*) from emp ;  
select count(id) from emp ;  //count(某个字段)
select count(idcard) from emp ;  //count(某个字段)

②统计该企业员工的平均年龄。

select avg(age) from emp;

③统计该企业员工的最大年龄。

select max(age) from emp;

④统计该企业员工的最小年龄。

select min(age) from emp;

⑤统计西安地区员工的年龄之和。

select sum(age) from emp where workaddress = “西安”;

4、分组查询(group by)和分组后条件列表(having)

①根据性别分组,统计男性员工 和 女性员工的数量。

select gender,count(*) from emp group by gender;

②根据性别分组,统计男性员工 和 女性员工的平均年龄。

select gender,avg(age) from emp group by gender;

③查询年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于3的工作地址。

select workaddress ,count(*) from emp 
where age < 45 
group by workaddress 
having count(*) >= 3;
select workaddress ,count(*) address_count from emp 
where age < 45 
group by workaddress 
having address_count >= 3;

5、排序查询(order by)

①根据年龄对公司的员工进行升序排序

select * from emp order by age asc;

②根据入职时间,对员工进行降序排序

select * from emp order by entrydate desc;

③根据年龄对公司的员工进行升序排序,年龄相同,再按照入职时间进行降序排序

select * from emp order by age asc , entrydate desc;

注意:默认asc排序是可以省略不写的。

6、分页查询(limit)

①查询第1页员工数据,每页展示10条记录

select * from emp limit 0,10;
-- 或者
select * from emp limit 10;

①查询第2页员工数据,每页展示10条记录------(页码-1)*页展示记录数

select * from emp limit 10,10;

7、案例实操

1.
select * from emp where age in (20,21,22,23);
2.
select * from emp 
where gender="男" 
and (age between 20 and 40) 
and name like "___";
3.
select gender,count(*) from emp 
where age < 60 group by gender;
4.
select name,age from emp 
where age <= 35 
order by age asc, entrydate desc;
5.
select * from emp 
where gender="男" 
and age between 20 and 40 
order by age asc, entrydate desc 
limit 5;

8、执行顺序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

火乐暖阳85105

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值