MySql—-基础SQL篇(DQL)

基本语法

select
   字段列表
from
   表名列表
where
   条件列表
group by
   分组字段列表
having
   分组后条件列表
order by
   排序字母列表
limit
    分页参数

基本查询

查询多个字段

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

1-2 案例

在这里插入图片描述

select name,workno,age from emp;

在这里插入图片描述

select id,workno,name,gender,age,idcard,woraddress,entrydate from emp;
select * from emp;

字段设置别名

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

1-3 案例

在这里插入图片描述

select woraddress as '工作地址' from emp;

去除重复记录

select distinct 字段列表 from 表名;

1-4 案例

在这里插入图片描述

select distinct woraddress '工作地址' from emp;

条件查询

语法

select 字段名 from 表名 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 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 < 25;

查询年龄等于 18 或 20 或 40 的员工

select * from emp where age = 18 or age = 20 or age =40;
select * from emp where age in (18,20,40);

查询姓名为两个字的员工__%

select * from emp where name like '__';

查询身份证最后一位是 X 的员工

select * from emp where idcard like '%9';

聚合函数

将一列数据作为整体,进行纵向计算

常见聚合函数

在这里插入图片描述

语法

select 聚合函数(字段列表) from 表名;

注意:NULL 值是不参与所有聚合函数运算的

案例

统计该企业员工数量

select count(*) from emp;
select count(idcard) from emp;

对于 count 聚合函数,统计符合条件的总记录数,还可以通过 count(数字 / 字符串)的形式进行统计查询,比如:

select count(1) from emp;

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

select avg(age) from emp;

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

select max(age) from emp;

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

select min(age) from emp;

统计广东地区员工的年龄之和

select sum(age) from emp where woraddress = '广东';

分组查询

语法

select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];

where 与 having 区别

执行时机不同:where 是分组之前进行过滤,不满足 where 条件,不参与分组;而 having 是分组之后对结果进行过滤
判断条件不同:where 不能对聚合函数进行判断。而 having 可以。

案例

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

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

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

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

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

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

统计各个工作地址上班的女性及女性员工的数量

select woraddress,gender,count(*),'数量' from emp group by gender,woraddress;

排序查询

语法

select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;

排序方式

ASC: 升序(默认值)
DESC: 降序
注意事项
如果是升序,可以不指定排序方式 ASC;
如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序

案例

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

select * from emp order by age asc;
select * from emp order by age;

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

select * from emp order by entrydate desc;

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

select * from emp order by age asc,entrydate desc;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值