一、多表查询基础笛卡尔积两张表所有行的组合会产生大量无效数据必须用连接条件消除笛卡尔积多表查询分类连接查询内连接、外连接、自连接子查询嵌套查询联合查询合并结果集二、连接查询1. 内连接INNER JOIN作用只返回两张表交集数据语法sql-- 隐式 SELECT 字段 FROM 表1,表2 WHERE 条件; -- 显式推荐 SELECT 字段 FROM 表1 JOIN 表2 ON 连接条件;2. 外连接左连接LEFT JOIN以左表为主返回左表全部数据右表无匹配则为 NULLsqlSELECT 字段 FROM 表1 LEFT JOIN 表2 ON 条件;右连接RIGHT JOIN以右表为主返回右表全部数据左表无匹配则为 NULLsqlSELECT 字段 FROM 表1 RIGHT JOIN 表2 ON 条件;3. 自连接一张表自己连接自己必须起别名常用于层级结构、上下级关系sqlSELECT 字段 FROM 表 别名1 JOIN 表 别名2 ON 条件;三、表关系一对多在多的一方加外键指向一的一方主键例部门一→ 员工多多对多建立中间表包含两个外键分别关联两张主表例学生 ↔ 课程一对一任意一方加外键并设置UNIQUE例用户 ↔ 用户详情四、子查询嵌套查询1. 概念一个SELECT嵌套在另一个 SQL 中位置WHERE/FROM/SELECT后2. 按结果分类标量子查询返回单个值操作符 列子查询返回一列多行操作符INNOT INANYALL行子查询返回一行多列操作符IN表子查询返回多行多列当作临时表使用放在FROM后面