MYSQL入门-DQL

MYSQL入门-DQL



前言

本文是本人根据黑马学习mysql做的笔记,分享出来,供大家一同学习,希望大家多多关注,点赞,收藏哦


一、DQL是什么?

DQL(Data Query Language) 数据查询语言,用来查询数据库中表的记录

二、DQL语法

在这里插入图片描述

三、具体实例

下面通过一张具体的表进行讲解说明
在这里插入图片描述

1.基本查询

语法:

SELECT * FROM 表名;
SELECT 字段1,字段2,字段3... FROM 表名
//起别名
SELECT 字段1[AS 别名],字段2[As 别名] FROM 表名
//去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;

代码如下(示例):

select workno ,name ,age from emp;
select * from emp;
select workaddress as "工作地址" from emp; //as可以省略
select DISTINCT workaddress as "工作地址" from emp; //去除重复记录

2.条件查询

语法:

SELECT 字段列表 FROM 表名 WHERE 条件列表;

代码如下(示例):

-- 1.查询年龄等于27员工
select * from emp where age = 27;
-- 2. 查询年龄小于30的员工
select * from emp where age < 30;
-- 3. 查询年龄小于等于30的员工
select * from emp where age <= 30;
-- 4.查询没有身份证的员工
select * from emp where idcard is null;
-- 5.查询有身份证号的员工
select * from emp where idcard is not null;
-- 6.查询年龄不等于24的员工
select * from emp where age !=24;
select * from emp where age <>24;
-- 7.查询年龄在15岁(包含)到30(包含)员工
select * from emp where age>=15 and age<=30;
select * from emp where age between 15 and 30;
-- 8.查询性别为女且年龄小于30的员工
select * from emp where gender="女" and age<30;
-- 9.查询年龄等于21或年龄等于24的员工
select * from emp where age =21 or age =24;
select * from emp where age in (21,24);
-- 10.查询姓名为两个字的员工
select * from emp where name like "__";
-- 11.查询身份证号最后一个是X的员工
select * from emp where idcard like "%X";

主要的条件如下图:
在这里插入图片描述

3.聚合函数

语法:

SELECT 聚合函数(字段列表) FROM 表名

代码如下(示例):

-- 1.统计企业员工数量
select count(*) from emp;
-- 2.统计员工平均年龄
select avg(age) from emp;
-- 3.统计员工最大年龄
select max(age) from emp;
-- 4.统计员工最小年龄
select min(age) from emp;
-- 5.统计北京地区员工的年龄之和
select sum(age) from emp where workaddress ="北京";

主要的聚合函数如下图:
在这里插入图片描述

4.分组查询

语法:

SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组过滤条件];

代码如下(示例):

-- 1.根据员工性别分组,统计男性员工女性员工数量
select gender,count(*) from emp group by gender;
-- 2. 根据性别分组,统计男性女性员工平均年龄
select gender,avg(age) from emp GROUP BY gender;
-- 3. 查询年龄小于45的员工,并根据工作地址分组,获取员工大于等于2的工作地址
select workaddress as "工作地址",count(*) from emp where age<45 GROUP BY workaddress having count(*)>=2;

这里需要区分where和having:主要有以下两点不同:

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

注意:

  • 执行顺序:where>聚合函数>having
  • 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无意义

5.排序查询

语法:

SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式,字段2 排序方式

代码如下(示例):

-- 1.根据年龄对员工进行升序排序
select * from emp order by age;
-- 2.根据入职时间,对员工进行降序排序
select * from emp order by entrydate desc;
-- 3.根据年龄对员工升序排序,年龄相同,再按照入职时间进行降序排序
select * from emp order by age, entrydate desc;

注:

  • ASC升序
  • DESC降序

6.分页查询

语法:

SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数

代码如下(示例):

-- 1.查询第一页员工数据,每页展示10个
select * from emp limit 0,10;
-- 2.查询第二页员工数据,每页展示10条
select * from emp limit 10,10;

注意:

  • 起始索引从0开始,起始索引=(查询页码-1)*每页记录数
  • 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT
  • 如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10.

总结

以上是对SQL语句中的DQL的总结,希望对你能够有用!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值