MySQL学习笔记2

一、DQL语句

条件查询

语法格式:

 select 字段1, 字段2, ~~~|* from 表 [where 条件]   *是通配符的意思

# 从student表中查询id,name,age字段
select id, name, age from student ;
# 查询全部列
select * from student;
# 查询所有人的入学时间,起别名 (as可以省略)
select entrydate as '入学时间' from student;
# 加入判断语句(过滤查询)
select * from student where gender = '男';

使用聚合函数查询

语法格式:

select 聚合函数 from 表 [where 条件]

聚合函数

# 注:表格中的所有null值不参与函数的运算

/*
sum(列)  求和
avg(列)  求平均值
min(列)  求最小值
max(列)  求最大值
count(列|*) 求数量
*/
使用举例
# 统计员工数量
select count(*) from emp ;   # 显示emp表中的所有信息
select count(name) from emp ;   # 显示emp表中的所有人员的名字
# 统计员工的平均年龄
select avg(age) from emp ;
# 统计员工的最大年龄
select max(age) from emp ;
# 统计员工的最小年龄
select min(age) from emp ;
# 统计所有职员的年龄之和
select sum(age) from emp where job = '职员' ;

分组查询

语法格式:

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

#where与having的区别

# 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组   之后对结果进行过滤

# 判断条件不同:where不能对聚合函数进行判断,而having可以

# 根据性别分组统计男性员工和女性员工的数量
select gender, count(*) from emp group by gender ;
# 查询年龄小于45的员工,并按照职位分组,获取员工数量大于等于2的工作职位
select job, count(*) from emp where age < 45 group by job having count(*) >= 2;

排序查询

语法格式:

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

#排序方式       ASC升序 DESC降序

# 根据年龄对公司的员工进行升序排序
select * from emp order by age asc ;
# 根据年龄对公司的员工进行升序排序,年龄相同,在按照入职时间进行降序排序
select * from emp order by age asc , entrydate desc;

分页查询

语法格式:

select 字段列表 from 表名 limit 起始索引, 查询记录数;

# 查询第一页员工数据,每页查询10条记录
select * from emp limit 0, 10;   # 从起始查询,0可以省略
# 查询第二页员工数据,每页展示10条记录
select * from emp limit 10, 10;

查询综合案例

# 查询年龄为20,21,22,23岁的女性员工信息
select * from emp where gender = '女' and age in (20,21,22,23);

# 查询年龄为男,并且年龄在20-40岁之间(包含)以内的姓名为三个字的员工
select * from emp where gender = '男' and age between 20 and 40 and name like '___' ;

# 统计员工表中,年龄小于60岁的男性员工和女性员工的人数
select gender,count(*) from emp where age < 60 group by gender;

# 查询所有年龄小于等于35岁的员工姓名和年龄,对查询结果根据年龄升序排序,年龄相同,在按照入职时间进行升序排序
select name, age from emp where age <= 35 order by age asc , entrydate asc ;

# 查询性别为男,且年龄在20-40岁(包含)以内的前5个员工,对查询结果根据年龄升序排序,年龄相同,在按照入职时间进行升序排序
select * from emp where age between 20 and 40 order by age asc, entrydate asc limit 5;

二、DQL执行顺序

编写顺序

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

执行顺序

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

  • 17
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值