SQL.Oracle 多表常见的几种连接方式

开发工具与关键技术:SQL.Oracle
作者:周水生
撰写时间:2019年3月27日

笛卡尔集
笛卡尔集会在下面条件下产生:
1.省略连接条件
2.连接条件无效
3.所有表中的所有行互相连接
为了避免笛卡尔集, 可以在 WHERE 加入有效的连接条件
例子:
在这里插入图片描述
如果WHERE没有加入有效的连接条件,这样会生成大部分无意义的数据,而且查询速度慢,还占用运行内存;

等值连接
SELECT table1.column, table2.column
FROM table1, table2
WHERE table1.column1 = table2.column2;
在 WHERE 子句中写入连接条件。
在表中有相同列时,在列名之前加上表名前缀
例子:
在这里插入图片描述

叉集
SELECT last_name, department_name
FROM employees
CROSS JOIN departments ;

使用CROSS JOIN 子句使连接的表产生叉集。
叉集和笛卡尔集是相同的

外连接语法
右外连接
SELECT table1.column, table2.column
FROM table1, table2
WHERE table1.column(+) = table2.column;
以table2为主表进行查询

左外连接
SELECT table1.column, table2.column
FROM table1, table2
WHERE table1.column = table2.column(+);.SQL DML 查询的多表连接

猜你喜欢

转载自blog.csdn.net/weixin_44564406/article/details/88949869