资讯动态

数据查询语言-DQL操作

发布时间:2026/9/11 19:17:33 来源:尧图企业网站定制
DQL的全称为Data Query Language(数据查询语言)用来查询数据库中表的记录关键字 :SELECTSELECT 字段列表 FROM 表名列表 WHERE 条件列表 GROUP BY 分组字段列表 HAVING 分组后条件列表 ORDER BY 排序字段列表 LIMIT 分页参数下面操作都是基于以下表内容idworknonamegenderageidcardworkaddressentrydate11柳岩女20123456789012345678北京2000-01-0122张无忌男18123456789012345670北京2005-09-0133韦一笑男38123456789712345670上海2005-08-0144赵敏女18123456757123845670北京2009-12-0155小昭女16123456789012345678上海2007-07-0166杨逍男2812345678931234567X北京2006-01-0177范瑶男40123456789212345670北京2005-05-0188黛绮丝女3812345615712345670天津2015-05-0199范凉凉女45123156789012345678北京2010-04-011010陈友谅男53123456789012345670上海2011-01-011111张士诚男5512356789712345670江苏2015-05-011212常遇春男32123446757152345670北京2004-02-011313张三丰男88123456789012345678江苏2020-11-011414灭绝女65123456719012345670西安2019-05-011515胡青牛男7012345674971234567X西安2018-04-011616周芷若女18(Null)北京2012-06-01依次执行下面两句语句即可创建createtableemp(idintcomment编号,worknovarchar(10)comment工号,namevarchar(10)comment姓名,genderchar(1)comment性别,agetinyintunsignedcomment年龄,idcardchar(18)comment身份证号,workaddressvarchar(50)comment工作地址,entrydatedatecomment入职时间)comment员工表;insertintoemp(id,workno,name,gender,age,idcard,workaddress,entrydate)values(1,1,柳岩,女,20,123456789012345678,北京,2000-01-01),(2,2,张无忌,男,18,123456789012345670,北京,2005-09-01),(3,3,韦一笑,男,38,123456789712345670,上海,2005-08-01),(4,4,赵敏,女,18,123456757123845670,北京,2009-12-01),(5,5,小昭,女,16,123456789012345678,上海,2007-07-01),(6,6,杨逍,男,28,12345678931234567X,北京,2006-01-01),(7,7,范瑶,男,40,123456789212345670,北京,2005-05-01),(8,8,黛绮丝,女,38,12345615712345670,天津,2015-05-01),(9,9,范凉凉,女,45,123156789012345678,北京,2010-04-01),(10,10,陈友谅,男,53,123456789012345670,上海,2011-01-01),(11,11,张士诚,男,55,12356789712345670,江苏,2015-05-01),(12,12,常遇春,男,32,123446757152345670,北京,2004-02-01),(13,13,张三丰,男,88,123456789012345678,江苏,2020-11-01),(14,14,灭绝,女,65,123456719012345670,西安,2019-05-01),(15,15,胡青牛,男,70,12345674971234567X,西安,2018-04-01),(16,16,周芷若,女,18,null,北京,2012-06-01);基本查询查询多个字段select 字段1,字段2... from 表名; select * from 表名;设置别名select 字段1 [as 别名1],字段2[as 别名]条件查询语法select 字段列表 from 表名 where 条件列表;比较运算符比较运算符功能大于大于等于小于小于等于等于 或 !不等于BETWEEN … AND …在某个范围之内(含最小、最大值)IN(…)在in之后的列表中的值多选一LIKE 占位符模糊匹配(_匹配单个字符, %匹配任意个字符)IS NULL是NULL逻辑运算符逻辑运算符功能AND 或 并且 (多个条件同时成立)OR 或 ||或者 (多个条件任意一个成立)NOT 或 !非不是聚合函数函数功能count统计数量max最大值min最小值avg平均值sum求和-- 统计该企业员工数量 select count(*) from emp; -- 统计该企业员工的平均年龄 select avg(age) from emp; -- 统计企业员工的最大年龄 select max(age) from emp; -- 统计西安地区员工的年龄之和 select sum(age) from emp where workaddress 西安;分组查询select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];where和having 的区别执行时机的不同where 是分组之前过滤不满足where条件的不参与分组而having 是分组之后进行过滤。判断条件不同where不能对聚合函数进行判断而having 可以。注意执行顺序where 聚合函数 having分组之后查询的字段一般为聚合函数和分组字段查询其他字段无任何意义。-- 根据性别分组统计男员工和女员工的数量 select gender, count(*) from emp group by gender; -- 根据性别分组统计男员工和女员工的平均年龄 select gender, avg(age) from emp group by gender; -- 查询年龄小于45的员工并根据工作地址分组获取员工数量3的工作地址 select workaddress, count(*) from emp where age 45 group by workaddress having count(*) 3;排序查询语法select 字段列表 from 表名 order by 字段1 排序方式1, 字段2 排序方式2;排序方式-- 根据年龄对公司的员工进行升序排序 select * from emp order by age; -- 根据入职时间对员工进行降序排序 select * from emp order by entrydate desc; -- 根据年龄对公司的员工进行升序排序年龄相同在按照入职时间进行降序排序 select * from emp order by age, entrydate desc;注意如果是多字段排序当第一个字段值相同的时才会比较第二个字段分页查询语法select 字段列表 from 表名 limit 起始索引,查询记录数;注意起始索引从0开始起始索引查询页码-1*每页显示记录数分页查询是数据库的方言不同数据库有不同的实现Mysql是limit如果查询的是第一页数据起始索引可以省略直接简写limit 10-- 查询第1页员工数据每页展示10条记录 select * from emp limit 10; -- 查询第2页员工数据每页展示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 age between 20 and 40 and gender 男 and name like ___; -- 统计员工表中年龄小于60岁的男员工和女员工的人数。 select gender, count(*) from emp where age 60 group by gender; -- 查询所有年龄35岁员工的年龄和姓名并对查询结果按年龄升序排序如果年龄相同按入职时间降序排序 select age, name from emp where age 35 order by age, entrydate desc; -- 查询性别为男且年龄在20-40岁以内的前5个员工信息对查询的结果按年龄升序排序年龄相同按入职时间升序排序 select * from emp where gnder 男 and age 20 and age 40 order by age, entrydate desc limit 0,5;执行顺序编写顺序我们正常写的顺序select 字段列表 from 表名列表 where 条件列表 group by 分组字段列表 having 分组后条件列表 order by 排序字段列表 limit 分页参数执行顺序逻辑顺序-- 解释先from先选表where进行筛选group by把选出来进行分组having对分组后进行再筛选select把筛过的需要的部分拿出来order by对这些进行排序limit 再进行分页。 from 表名列表 where 条件列表 group by 分组字段列表 having 分组后条件列表 select 字段列表 order by 排序字段列表 limit 分页参数

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价