Oracle数据库中两张表的关联查询

oracle数据库中,关联查询是一种常见的操作,用于从多个表中获取数据,
关联查询的基本思想是将两个或多个表中的数据进行连接,以便在一个查询结果中显示这些数据,关联查询可以分为内连接、左外连接、右外连接和全外连接等几种类型。,下面,我们将通过一个实际的例子来介绍如何在Oracle数据库中进行两张表的关联查询,假设我们有两个表:员工表(employees)和部门表(departments),它们之间的关系是:一个部门可以有多个员工,一个员工只能属于一个部门。,1、准备工作,我们需要创建这两个表,以下是创建员工表和部门表的SQL语句:,接下来,我们需要向这两个表中插入一些数据:,2、
内连接查询,内连接(INNER JOIN)是最常用的关联查询类型,它会返回两个表中具有匹配关系的记录,以下是一个内连接查询的示例:,这个查询将返回员工表和部门表中具有匹配关系的记录,即员工的所属部门,查询结果如下:,3、左外连接查询,左外连接(LEFT OUTER JOIN)会返回左表中的所有记录,以及右表中与左表匹配的记录,如果右表中没有匹配的记录,则返回NULL值,以下是一个左外连接查询的示例:,这个查询将返回员工表中的所有记录,以及与之匹配的部门表中的记录,查询结果如下:,可以看到,最后一个记录的员工没有所属部门,因此部门名称为NULL。,4、右外连接查询,右外连接(RIGHT OUTER JOIN)与左外连接类似,但它会返回右表中的所有记录,以及左表中与右表匹配的记录,如果左表中没有匹配的记录,则返回NULL值,以下是一个右外连接查询的示例:,这个查询将返回部门表中的所有记录,以及与之匹配的员工表中的记录,查询结果如下:,可以看到,最后一个记录的部门没有员工,因此员工名称为NULL。,
,CREATE TABLE employees ( id NUMBER PRIMARY KEY, name VARCHAR2(50), age NUMBER, department_id NUMBER ); CREATE TABLE departments ( id NUMBER PRIMARY KEY, name VARCHAR2(50), location VARCHAR2(50) );,INSERT INTO employees (id, name, age, department_id) VALUES (1, ‘张三’, 30, 1); INSERT INTO employees (id, name, age, department_id) VALUES (2, ‘李四’, 28, 1); INSERT INTO employees (id, name, age, department_id) VALUES (3, ‘王五’, 32, 2); INSERT INTO employees (id, name, age, department_id) VALUES (4, ‘赵六’, 25, 2); INSERT INTO departments (id, name, location) VALUES (1, ‘人事部’, ‘北京’); INSERT INTO departments (id, name, location) VALUES (2, ‘技术部’, ‘上海’);,SELECT e.name AS employee_name, d.name AS department_name FROM employees e INNER JOIN departments d ON e.department_id = d.id;,EMPLOYEE_NAME | DEPARTMENT_NAME | 张三 | 人事部 李四 | 人事部 王五 | 技术部 赵六 | 技术部,SELECT e.name AS employee_name, d.name AS department_name FROM employees e LEFT OUTER JOIN departments d ON e.department_id = d.id;

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Oracle数据库中两张表的关联查询》
文章链接:https://zhuji.vsping.com/322350.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。