MySQL DQL数据查询语言详解与实战

木白
木白
发布时间:2026-10-15| 3人浏览过
原创

DQL(Data Query Language)是MySQL中专门用于执行数据检索的语言,核心功能是从表中筛选并返回指定记录。掌握其标准的语法顺序、灵活的过滤条件设置以及强大的统计聚合能力,是实现高效数据分析的基础。

1. 基础查询操作

基础查询是数据获取的第一步,主要涉及字段的提取、去重及命名优化。

第1步:指定字段查询

目的:从表中仅提取需要的列,减少网络传输开销。

操作:在 SELECT 后列出具体字段名,或使用通配符 *。

-- 查询特定字段
SELECT name, workno, age FROM emp;

-- 查询所有字段(生产环境建议避免)
SELECT * FROM emp;

第2步:设置字段别名

目的:提高结果集的可读性,或掩盖底层字段名称。

操作:使用 AS 关键字或直接以空格分隔。

-- 使用 AS 关键字
SELECT workaddress AS '工作地址' FROM emp;

-- 省略 AS(部分数据库支持)
SELECT workaddress '工作地址' FROM emp;

第3步:去除重复记录

目的:获取唯一值列表,常用于下拉菜单选项或统计维度。

操作:使用 DISTINCT 关键字作用于字段列表。

-- 获取不重复的工作地址
SELECT DISTINCT workaddress AS '工作地址' FROM emp;

2. 条件过滤查询

通过 WHERE 子句实现精确或范围化的数据筛选。

第4步:使用比较逻辑运算符

目的:根据数值的数学关系进行筛选。

符号含义示例场景
=等于查找特定员工
>, <大于/小于查找薪资范围
>=, <=包含边界的范围查找年龄区间
!= 或 <>不等于排除特定状态

第5步:使用范围与集合查询

目的:简化复杂条件的表达。

-- BETWEEN ... AND ... (闭区间,含两端)
SELECT * FROM emp WHERE age BETWEEN 15 AND 20;

-- IN (...) (多选一匹配)
SELECT * FROM emp WHERE age IN (18, 20, 40);

第6步:模糊匹配与空值判断

目的:处理文本特征或缺失数据。

  • LIKE:使用 % 代表任意字符,_ 代表单字符。例如:name LIKE '__' 匹配两个字的姓名。
  • IS NULL:判断字段是否为空。idcard IS NULL 查找未填写身份证信息的员工。

第7步:组合逻辑条件

目的:同时满足或排除多个限制条件。

  • AND:多条件必须同时成立。
  • OR:多条件至少一个成立即可。

3. 数据聚合分析

无需导出原始数据,直接在数据库中生成统计指标。

第8步:统计数量与极值

目的:获取总量、最高/最低值。

-- 统计总人数(忽略NULL)
SELECT COUNT(*) FROM emp;

-- 统计有效身份证号人数
SELECT COUNT(idcard) FROM emp;

-- 获取最大/最小年龄
SELECT MAX(age), MIN(age) FROM emp;

第9步:数值计算

目的:自动求和与求平均值。

-- 求平均年龄
SELECT AVG(age) FROM emp;

-- 求特定地区员工的年龄总和
SELECT SUM(age) FROM emp WHERE workaddress = '西安';

总结

理解 SELECT → FROM → WHERE → GROUP BY → ORDER BY → LIMIT 的执行顺序是优化SQL的关键。在实际应用中,应避免无必要地使用 * 全表扫描,并注意区分 COUNT(*) 与 COUNT(字段) 对空值处理的差异。

以上就是MySQL DQL数据查询语言的详细内容,更多关于SQL语句优化与实战的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。