一文带你学透MySQL核心——DQL语言

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: DQL:英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。

 前言

 本期的主要内容是关于SQL语句中的核心语句,我们在生活中使用最多的查询语句DQL语句。

image.gif编辑

文章目录

前言

DQL 数据库查询语言

1.介绍

2. 基本查询

2.1 查询多个字段

2.2 查询所有字段

2.3 设置别名

2.4 去除重复记录

2.5 基本查询练习案例

3. 条件查询 where

3.1 语句格式

3.2 条件运算符编辑

3.3 条件查询练习案例

4.聚合函数

4.1 介绍

4.2 聚合函数分类

4.3 语法

4.4聚合函数练习案例

5.分组查询 group by

5.1 语句格式

5.2 where 和 having 区别

5.3 分组查询练习案例

6.排序查询 order by

6.1 语句格式

6.2 排序方式

6.3 排序查询练习案例

7.分页查询 limit

7.1语句格式

7.2 注意事项

7.3 分页查询练习案例

总结


DQL 数据库查询语言

1.介绍

DQL:英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。

  可能我们感觉不到使用数据查询语言,但却是我们在现实社会中使用最多的语言。比如说我们可能遇到不会的题目,我的第一个想法是去百度搜索一下看看有没有答案,当我们在百度浏览器的文本框中输入完所要查询的内容,点击”搜索“,其实我们已经使用了数据库查询语言。

2. 基本查询

2.1 查询多个字段

Select 字段1,字段2,字段3……. from 表名;

image.gif

2.2 查询所有字段

Select * from 表名;

image.gif

2.3 设置别名

Select 字段1[AS 别名1],字段2[AS 别名2]…… from 表名;

image.gif

[]括号中不是必须要写的。

2.4 去除重复记录

Select distinct 字段列表 from 表名;

image.gif

2.5 基本查询练习案例

创建一个员工表其中字段包括 编号、工号、姓名、性别、年龄、身份证号、工作地址、入职时间,根据自己对上一期数据类型的了解,定义为合适的类型。

create table emp(
id int comment'编号',
workno varchar(10) comment '工号',
name varchar(10) comment '姓名',
gender char(1) comment '性别',
age tinyint unsigned comment '年龄',
idcard char(18) comment '身份证号码',
workaddress varchar(50) comment '工作地址',
entrydate date comment'入职时间') comment '工作表';

image.gif

插入两条测试数据.

insert into emp values(1,'1','李飞','男',20,'123456789012345678','上海','2001-01-01'),
(2,'2','哈哈','男',22,'123456789012345678','上海','2001-01-01');

image.gif

2.5.1 查询指定字段name,workno,age

select name,workno,age from emp;

image.gif

2.5.2 查询所有字段返回

select * from emp;

image.gif

2.5.3查询所有员工的工作地址

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

image.gif

2.5.4查询公司员工的上边地址不重复

select distinct workaddress as'上班地址' from emp;

image.gif

3. 条件查询 where

3.1 语句格式

Select 字段列表 from 表名 where 条件运算;

image.gif

3.2 条件运算符image.gif编辑

3.3 条件查询练习案例

3.3.1 查询年龄等于22的员工

select *from emp where age=22;

image.gif

3.3.2 查询年龄小于30的与共信息

select * from emp where age<30;

image.gif

3.3.3 查询年龄小于等于30的与共信息

select * from emp where age<=30;

image.gif

3.3.4 查询身份证号为空的员工信息

select * from emp where idcard is null;

image.gif

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

select * from emp where idcard is not null;

image.gif

3.3.6 查询年龄不等于22的员工信息

select * from emp where age!=88;

image.gif

3.3.7 查询年龄在2025(包括25)之间的员工信息

select * from emp where age between 20 and 25;

image.gif

3.3.8 查询性别为女且年龄不少于25岁的员工信息

select * from emp where gender='女'and age>=25;

image.gif

3.3.9 查询年龄为2330的员工信息

select * from emp where age=30 or age=25;

image.gif

select * from emp where age in(23,30);

image.gif

3.3.10 查询姓名为两个字的员工信息下__和%

select * from emp where name like'__';

image.gif

3.3.11查询身份证号码最后一位为x的员工信息

select * from emp where name like'__';

image.gif

4.聚合函数

4.1 介绍

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

4.2 聚合函数分类

image.gif编辑

4.3 语法

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

image.gif

注意:null不参与聚合函数的计算。

4.4聚合函数练习案例

4.4.1 统计该企业员工的数量

select count(id) from emp;

image.gif

select count(*) from emp;

image.gif

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

select avg(age) from emp;

image.gif

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

select max(age) from emp;

image.gif

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

select min(age)from emp;

image.gif

4.4.5 统计上海地区的年龄之和

select sum(age) from emp where workaddress='上海';

image.gif

5.分组查询 group by

5.1 语句格式

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

image.gif

5.2 where 和 having 区别

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

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

 执行顺序:where>聚合函数>having

 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。

5.3 分组查询练习案例

当前emp表内容

image.gif编辑

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

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

image.gif

image.gif编辑

5.3.2 更具性别分组,统计男性员工和女性员工的平均年龄

image.gif编辑

5.3.3 查询年龄小于25岁的员工,并更具工作地址分组,获取员工数量大于等于1的工作地址

select workaddress from emp where age<25 group by workaddress having count(*)>1;

image.gif

select workaddress,count(*) from emp where age<25 group by workaddress having count(*)>1;

image.gif

6.排序查询 order by

6.1 语句格式

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

image.gif

6.2 排序方式

asc:升序 默认值

Desc: 降序

注意:如果是多个字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。

6.3 排序查询练习案例

6.3.1 根据入职时间对公司的员工进行升序排序

select * from emp order by entrydate asc;

image.gif

image.gif编辑

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

select * from emp order by entrydate desc;

image.gif

image.gif编辑

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

select * from emp order by age,entrydate desc;

image.gif

7.分页查询 limit

7.1语句格式

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

image.gif

7.2 注意事项

1.起始索引从0开始,起始索引= (查询页码-1)* 每页显示记录数。

2.分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。

3.如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10。

7.3 分页查询练习案例

7.3.1 查询第一页的员工数据,每页显示2条数据

select * from emp limit 0,2;

image.gif

select * from emp limit 2;

image.gif

7.3.2 查询第2页员工数据,每页显示2条记录

select * from emp limit 2,2;

image.gif

总结

 我相信能坚持学习到这里的各位小伙伴,你已经对MySQL数据库有了更深入的了解,数据库查询语言DQL你已经不在话下了,恭喜你!后续我们会学习函数,期待我们下期再见!


image.gif编辑


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6天前
|
SQL 关系型数据库 MySQL
【Go语言专栏】使用Go语言连接MySQL数据库
【4月更文挑战第30天】本文介绍了如何使用Go语言连接和操作MySQL数据库,包括选择`go-sql-driver/mysql`驱动、安装导入、建立连接、执行SQL查询、插入/更新/删除操作、事务处理以及性能优化和最佳实践。通过示例代码,展示了连接数据库、使用连接池、事务管理和性能调优的方法,帮助开发者构建高效、稳定的Web应用。
|
1天前
|
SQL 关系型数据库 MySQL
RDS for MySQL的DDL、DML和DQL
这篇文章介绍了MySQL中处理数据的几种主要操作:DDL(Data Definition Language),DML(Data Manipulation Language)和DQL(Data Query Language)。首先讲解了如何使用CREATE DATABASE, ALTER DATABASE和DROP DATABASE语句来创建、修改和删除数据库。
9 1
|
6天前
|
SQL 关系型数据库 MySQL
DQL操作MySql
DQL操作MySql
13 0
|
6天前
|
传感器 人工智能 前端开发
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
智慧校园电子班牌,坐落于班级的门口,适合于各类型学校的场景应用,班级学校日常内容更新可由班级自行管理,也可由学校统一管理。让我们一起看看,电子班牌有哪些功能呢?
108 4
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
|
6天前
|
关系型数据库 MySQL 数据库
【MySQL-10】DCL-数据控制语言-【管理用户&权限控制】 (语法语句&案例演示&可cv案例代码)
【MySQL-10】DCL-数据控制语言-【管理用户&权限控制】 (语法语句&案例演示&可cv案例代码)
【MySQL-10】DCL-数据控制语言-【管理用户&权限控制】 (语法语句&案例演示&可cv案例代码)
|
6天前
|
SQL 关系型数据库 MySQL
【MySQL】DQL-案例练习-DQL基本介绍&语法&执行顺序(代码演示)
【MySQL】DQL-案例练习-DQL基本介绍&语法&执行顺序(代码演示)
|
6天前
|
SQL 关系型数据库 MySQL
【MySQL】DQL-排序查询-语法&注意事项&可cv例题语句
【MySQL】DQL-排序查询-语法&注意事项&可cv例题语句
|
6天前
|
SQL 关系型数据库 MySQL
【MySQL】DQL-排序查询-语法&排序方式&注意事项&可cv例题语句
【MySQL】DQL-排序查询-语法&排序方式&注意事项&可cv例题语句
|
6天前
|
SQL 关系型数据库 MySQL
【MySQL】DQL-分组查询-语法&where与having的区别&注意事项&可cv例题语句
【MySQL】DQL-分组查询-语法&where与having的区别&注意事项&可cv例题语句
【MySQL】DQL-分组查询-语法&where与having的区别&注意事项&可cv例题语句
|
6天前
|
SQL 关系型数据库 MySQL
【MySQL-8】DQL-查询语句全解 [ 基础/条件/分组/排序/分页查询 ](附带代码演示&案例练习)
【MySQL-8】DQL-查询语句全解 [ 基础/条件/分组/排序/分页查询 ](附带代码演示&案例练习)