1. MySQL复合查询实战指南:从入门到精通
作为一名数据库开发工程师,我经常遇到需要从多个表中提取数据的场景。单表查询虽然简单,但在实际业务中远远不够用。今天我就来分享MySQL复合查询的核心技巧,这些内容都是我多年实战经验的总结。
复合查询主要包括多表查询、自连接、子查询和合并查询四大类。掌握这些技能,你就能应对90%以上的复杂查询需求。下面我会用大量实战案例,带你深入理解每种查询的用法和注意事项。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 多表查询:跨表关联的艺术
2.1 理解多表查询的本质
多表查询的核心是通过"关联字段"将多个表的数据连接起来。最常见的关联方式是通过主键和外键建立关系。比如员工表(emp)中的deptno字段关联到部门表(dept)的deptno字段。
sql复制-- 基础多表查询语法
select 表1.字段, 表2.字段
from 表1, 表2
where 表1.关联字段 = 表2.关联字段;
2.2 实战案例解析
案例1:员工与部门信息关联
sql复制select e.ename, e.sal, d.dname
from emp e, dept d
where e.deptno = d.deptno;
这个查询获取每个员工的姓名、工资和所在部门名称。注意我们给表起了别名(e和d),这样写起来更方便。
案例2:多条件筛选
sql复制select e.ename, e.sal, d.dname
from emp e, dept d
where e.deptno = d.deptno
and d.deptno = 10
and e.sal > 2000;
这里我们增加了两个筛选条件:只查询10号部门,且工资大于2000的员工。
案例3:三表关联
sql复制select e.ename, e.sal, s.grade
from emp e, salgrade s
where e.sal between s.losal and s.hisal;
这个查询将员工表与薪资等级表关联,找出每个员工的薪资等级。
2.3 性能优化技巧
- 索引优化:确保关联字段上有索引,可以大幅提升查询速度。比如在emp.dept
