数据库
Mysql数据库学习!
yum安装mysql数据库
数据库基础知识
数据库条件约束
数据库用户及权限操作-DCL
数据库基础查询操作-DQL
数据库以及表结构操作-DDL
数据库表记录操作-DML
Mysql数据库常用安全加固设置
Redis数据库学习!
Redis数据库安装
SQL server数据库学习
SQL server2019基础安装
Mysql_windows安装
mysql数据库基本概念简介
数据库DQL操作
DDL数据库操作
数据库DML语句
DCL数据控制语句
多表查询
函数
事务
mysql存储引擎
mysql索引
mysql约束
mysql语句优化
本文档使用 MrDoc 发布
-
+
首页
多表查询
# 多表查询 ## 多表关系 - 一对多 部门和员工的关系,一个部门可以对应多个员工 - 多对多 学生与课程的关系,一个学生可以选择多门课程,一门课程可以供多个学生选择。 建立中间多,至少包含两个外键,分别关联两方的主键 - 一对一 多用于单表拆分,如用户基本信息和用户受教育信息、用户家庭情况信息等,通过主键与外键和唯一关键字约束。 ## 多表查询概述 从多个表中查询数据。笛卡尔积现象,两个表的数据相乘产生的数据冗余,需要消除。 查询格式: ```sql SELECT * from user,user_edu where user.id = user_edu.userid; ``` ## 内连接 查询A、B表交集部分数据。 - 隐式内连接 多个表使用,隔开 ```sql SELECT 字段列表 FROM 表1,表2 WHERE 条件; ``` - 显式内连接 多个表使用join连接 ```sql SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 连接条件; ``` ## 外连接 分为:左外连接和右外连接 - 左外连接 查询左表所有数据以及两张表交集部分数据 ```sql SELECT 字段列表 FROM 表1 LEFT [OUTER] JOIN 表2 ON 条件; ``` - 右外连接 查询右表所有数据以及两张表交集部分数据 ```sql SELECT 字段列表 FROM 表1 ROGHT [OUTER] JOIN 表2 ON 条件; ``` ## 自连接 当前表与自身的连接查询,自身连接必须使用表别名,可以是内连接也可以是外连接 ```sql SELECT 字段列表 FROM 表A 别名A JOIN 表A 别名B ON 条件; ``` ## 联合查询 union(去重),union all(直接合并) 把多次查询的结果合并起来,形成一个新的查询结果集。 ```sql SELECT 字段列表 FROM 表A UNION [ALL] SELECT 字段列表 FROM 表B; ``` ## 子查询 嵌套查询,子查询。 根据子查询的结果分类: - 标量子查询,查询结果为单个值(<,>,=,>=) ```sql select * from emp where entrydate > (select entry from emp where name = 'chuck'); ``` - 列子查询,查询结果为一列(IN,NOT IN ANY SOME ALL) ```sql select * from emp where dept_id in (select id from dept where name = '销售部' or name = '市场部'); select * from emp where salary > all (select salary from emp where dept_id = (select id from dept where name = '财务部')); ``` - 行子查询,查询结果为一行(= <> IN NOT IN) ```sql select * from emp where (salary,managerid) = (select salary,managerid from emp where name ='chuck'); ``` - 表子查询,查询结果为多行多列。 ```sql select * from emp where (job,salary) in (select job,salary from emp where name = 'chuck' or name = 'joan'); select e.*,d.* from (select * from emp where entrydate > '2021-01-01') e left join dept d on e.dept_id = d.id; ``` 根据子查询位置: - WHERE - FROM - SELECT
Chuck
2023年6月21日 09:53
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码