MySQL DQL数据查询语言详解与实战
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语句优化与实战的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









