# 笛卡尔积, 代表X乘以Y的积
# 交叉连接,自然连接,自连接,内连接,外连接,全连接(mysql不支持),交并补差(mysql不支持)
# 交叉连接:直接在from后面跟表名,会产生笛卡尔积 缺点:1:查询结果不对,2:影响数据库性能
# 隐式交叉连接
SELECT * FROM EMP,DEPT
# 显式交叉连接
SELECT * FROM EMP CROSS JOIN DEPT
# 自然连接 将两张表中等值的列自动合到一起放在第一排显式并隐藏结果集中的笛卡尔积。
SELECT * FROM EMP NATURAL JOIN DEPT
SELECT * FROM EMP JOIN DEPT ON(EMP.DEPTNO=DEPT.DEPTNO)
#显式内连接 只显式符合ON后面条件对比的数据,
SELECT * FROM EMP INNER JOIN DEPT ON EMP.DEPTNO=DEPT.DEPTNO;
#隐式内连接 不使用INNER JOIN ON关键字,直接在 WHERE 之后对比条件
SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO=DEPT.DEPTNO;
# 左外连接 左侧的表显式全部内容无论是否符合条件,右边的表只显示符合条件的
SELECT * FROM DEPT D LEFT JOIN EMP E ON D.DEPTNO=E.DEPTNO;
# 右外连接 右侧的表显式全部内容无论是否符合条件,左边的表只显示符合条件的
SELECT * FROM DEPT D RIGHT JOIN EMP E ON D.DEPTNO=E.DEPTNO;
-- 自连接 适用于树形结构,表之中存在父级ID,需要关联的条件就在自身表里面。
-- 求出每个员工的领导姓名
SELECT EMP1.EMPNO '员工编号', EMP1.ENAME '员工姓名',EMP2.ENAME '领导姓名' FROM EMP EMP1,EMP EMP2
WHERE EMP1.MGR=EMP2.EMPNO;
-- 找出emp表与salgrade 表中的关系,发现sal 都在 losal与hisal 的范围之内正好适用BETWEEN AND
SELECT * FROM EMP E,salgrade s
WHERE E.SAL BETWEEN s.LOSAL AND s.HISAL
笛卡尔积,连接
最新推荐文章于 2023-10-09 21:23:43 发布