欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > MySQL中的DQL

MySQL中的DQL

2025/10/1 11:49:31 来源:https://blog.csdn.net/2401_84246493/article/details/140626453  浏览:    关键词:MySQL中的DQL

首先,见上一篇博客我们可以知道DQL就是(data query language)数据查询语言。

主功能就是查询数据库中的数据。

接下来,我们看一看DQL的基础功能和语法。

具体实例:

一.基础查询

语法:

1.查询多个字段
select 字段列表 from 表名;
select * from 表名; -- 查询所有数据2.去除重复记录
select distinct 字段列表 from 表名;3.起别名
as:as也可省略,但需要空格分隔

* 表示所有,但是不建议使用

例:

二.条件查询

1.查询语法
select 字段列表 from 表名 where 条件列表;

注意:null值比较不能用=,!=。需要使用is,is not。

例:

模糊查询

三.排序查询

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

排序方式:

  •  asc(ascend):升序排序(默认值)
  •  desc(descend):降序排序

注意:如果有多个排序条件,当前边条件值一样时,才会根据第二条件进行排序

例:

-- 查询,以数学成绩升序排序,一样的数值下按英语成绩降序排序
select * from stu order by math asc,english desc;

四.分组查询

统计操作(聚合函数)

分组查询

具体是从group by分隔开来,前半部分是分组前的查询,后半部分是分组和分组后考虑的结果。

group by 后的分组字段名值指按什么分组

select后字段列表是指最后表格中显示的哪些东西(列)

例:

原表格:

-- 查询男女的数学平均分与总人数,其中数学分不及格的不参与运算
select gender,avg(math),count(*) from stu where math > 60 group by gender;-- 查询男女的数学平均分与总人数,其中数学分不及格的不参与运算,分组之后人数大于两个人
select gender,avg(math),count(*) from stu where math > 60 group by gender having count(*)>2;

运行结果:

第一句:第二句:

五.分页查询

例:

select id,name,math,english from stu limit 0,3;-- 第一页,每页三条
select id,name,math,english from stu limit 3,3;-- 第二页,每页三人

起始索引是指每页的第一行数据=(当前页码-1)*每页显示条数

分页查询是MySQL的方言

运行结果:

第一句:

第二句:

总:

基础语句就是以下内容了

代码见下

-- 创建学生表
create table stu(
id int primary key auto_increment, -- 编号
name varchar(5), -- 姓名
gender char(1), -- 性别
age int, -- 年龄
admission_date date, -- 入学日期
teacher_s int, -- 教学老师
math int,
english int
);insert into stu values(1,'李明','男',19,'2021-9-1',1,91,67),
(2,'李花','女',19,'2021-9-1',2,90,89),
(3,'张青','女',18,'2022-9-1',1,68,97),
(4,'王五','男',18,'2022-9-1',1,84,79),
(5,'张三','男',19,'2021-9-1',2,93,96),
(6,'王清','女',20,'2020-9-1',1,58,65),
(7,'姬发','男',20,'2020-9-1',2,96,92);-- 查询
select * from stu;
select distinct age_s from stu;-- 去重
-- 条件查询
select * from stu where math between 60 and 90;
select * from stu where name like '王_';
-- 排序查询
select * from stu order by math asc,english desc;
-- 分组查询
-- 查询男女的数学平均分与总人数,其中数学分不及格的不参与运算
select gender,avg(math),count(*) from stu where math > 60 group by gender;
-- 查询男女的数学平均分与总人数,其中数学分不及格的不参与运算,分组之后人数大于两个人
select gender,avg(math),count(*) from stu where math > 60 group by gender having count(*)>2;
-- 分页查询select id,name,math,english from stu limit 0,3;-- 第一页,每页三条
select id,name,math,english from stu limit 3,3;-- 第二页,每页三人

其他内容请听下回讲解

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词