请分别使plsql, 举例说明左连接 (LEFT JOIN)、内连接 (INNER JOIN) 和右连接 (RIGHT JOIN) 的区别,和各自的查询例子
时间: 2024-10-09 10:07:31 浏览: 26
左外连接右外连接,内连接区别
5星 · 资源好评率100%
在PL/SQL(Oracle数据库的编程语言)中,`JOIN`操作也分为左连接(LEFT OUTER JOIN)、内连接(INNER JOIN)和右连接(RIGHT OUTER JOIN)。它们的区别如下:
1. **内连接 (INNER JOIN)**:
- 只返回两个表中有匹配行的结果。
- 示例:查找员工(employees)表中已加入部门(departments)的员工信息。
```sql
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments
ON employees.department_id = departments.department_id;
```
2. **左连接 (LEFT OUTER JOIN)**:
- 包含左表(第一个表)的所有行,即使右表(第二个表)没有匹配的行也会显示结果,通常右侧会填充NULL值。
- 例如,查找所有员工及其所在部门的信息,即使部门不存在也包含员工。
```sql
SELECT employees.*, departments.department_name
FROM employees
LEFT OUTER JOIN departments
ON employees.department_id = departments.department_id;
```
3. **右连接 (RIGHT OUTER JOIN)**:
- 类似于左连接,但返回的是右表的所有行,左侧的匹配行会被显示,如果没有匹配则左侧为NULL。
- 比如,显示所有部门及至少有一名员工的部门名称。
```sql
SELECT departments.*, employees.name
FROM departments
RIGHT OUTER JOIN employees
ON departments.department_id = employees.department_id;
```
阅读全文