C Oracle Join Syntax Copyright 2006 Oracle All
- Slides: 22
C Oracle Join Syntax Copyright © 2006, Oracle. All rights reserved.
Objectives After completing this lesson, you should be able to do the following: • Write SELECT statements to access data from more than one table using equijoins and nonequijoins • Use outer joins to view data that generally does not meet a join condition • Join a table to itself by using a self-join C-2 Copyright © 2006, Oracle. All rights reserved.
Obtaining Data from Multiple Tables EMPLOYEES DEPARTMENTS … … C-3 Copyright © 2006, Oracle. All rights reserved.
Cartesian Products • A Cartesian product is formed when: – A join condition is omitted – A join condition is invalid – All rows in the first table are joined to all rows in the second table • To avoid a Cartesian product, always include a valid join condition in a WHERE clause. C-4 Copyright © 2006, Oracle. All rights reserved.
Generating a Cartesian Product EMPLOYEES (20 rows) DEPARTMENTS (8 rows) … Cartesian product: 20 x 8 = 160 rows … C-5 Copyright © 2006, Oracle. All rights reserved.
Types of Joins Oracle-proprietary joins (8 i and earlier releases) • • C-6 Equijoin Nonequijoin Outer join Self-join SQL: 1999–compliant joins • • Cross join Natural join Using clause Full (or two-sided) outer join • Arbitrary join condition for outer join Copyright © 2006, Oracle. All rights reserved.
Joining Tables Using Oracle Syntax Use a join to query data from more than one table: SELECT FROM WHERE table 1. column, table 2. column table 1, table 2 table 1. column 1 = table 2. column 2; • Write the join condition in the WHERE clause. • Prefix the column name with the table name when the same column name appears in more than one table. C-7 Copyright © 2006, Oracle. All rights reserved.
Equijoins EMPLOYEES DEPARTMENTS … … Foreign key C-8 Primary key Copyright © 2006, Oracle. All rights reserved.
Retrieving Records with Equijoins SELECT employees. employee_id, employees. last_name, employees. department_id, departments. location_id FROM employees, departments WHERE employees. department_id = departments. department_id; … C-9 Copyright © 2006, Oracle. All rights reserved.
Additional Search Conditions Using the AND Operator EMPLOYEES … C - 10 DEPARTMENTS … Copyright © 2006, Oracle. All rights reserved.
Qualifying Ambiguous Column Names • Use table prefixes to qualify column names that are in multiple tables. • Use table prefixes to improve performance. • Use column aliases to distinguish columns that have identical names but reside in different tables. C - 11 Copyright © 2006, Oracle. All rights reserved.
Using Table Aliases • Use table aliases to simplify queries. • Use table prefixes to improve performance. SELECT e. employee_id, e. last_name, e. department_id, d. location_id FROM employees e , departments d WHERE e. department_id = d. department_id; C - 12 Copyright © 2006, Oracle. All rights reserved.
Joining More Than Two Tables EMPLOYEES … C - 13 DEPARTMENTS LOCATIONS To join n tables together, you need a minimum of n– 1 join conditions. For example, to join three tables, a minimum of two joins is required. Copyright © 2006, Oracle. All rights reserved.
Nonequijoins EMPLOYEES JOB_GRADES … Salary in the EMPLOYEES table must be between lowest salary and highest salary in the JOB_GRADES table. C - 14 Copyright © 2006, Oracle. All rights reserved.
Retrieving Records with Nonequijoins SELECT e. last_name, e. salary, j. grade_level FROM employees e, job_grades j WHERE e. salary BETWEEN j. lowest_sal AND j. highest_sal; … C - 15 Copyright © 2006, Oracle. All rights reserved.
Outer Joins DEPARTMENTS EMPLOYEES … There are no employees in department 190. C - 16 Copyright © 2006, Oracle. All rights reserved.
Outer Joins Syntax • You use an outer join to see rows that do not meet the join condition. • The outer join operator is the plus sign (+). SELECT table 1. column, table 2. column FROM table 1, table 2 WHERE table 1. column(+) = table 2. column; SELECT table 1. column, table 2. column FROM table 1, table 2 WHERE table 1. column = table 2. column(+); C - 17 Copyright © 2006, Oracle. All rights reserved.
Using Outer Joins SELECT e. last_name, e. department_id, d. department_name FROM employees e, departments d WHERE e. department_id(+) = d. department_id ; … C - 18 Copyright © 2006, Oracle. All rights reserved.
Self-Joins EMPLOYEES (WORKER) EMPLOYEES (MANAGER) … … MANAGER_ID in the WORKER table is equal to EMPLOYEE_ID in the MANAGER table. C - 19 Copyright © 2006, Oracle. All rights reserved.
Joining a Table to Itself SELECT worker. last_name || ' works for ' || manager. last_name FROM employees worker, employees manager WHERE worker. manager_id = manager. employee_id ; … C - 20 Copyright © 2006, Oracle. All rights reserved.
Summary In this appendix, you should have learned how to use joins to display data from multiple tables by using Oracleproprietary syntax for versions 8 i and earlier. C - 21 Copyright © 2006, Oracle. All rights reserved.
Practice C: Overview This practice covers writing queries to join tables using Oracle syntax. C - 22 Copyright © 2006, Oracle. All rights reserved.
- Syntax directed definition and syntax directed translation
- Copyright 2006
- Copyright 2006
- Job_grades oracle
- Oracle anti join
- 카테시안 조인
- Name all rays
- Omg they all join
- Join hands prayer
- Copyright 2015 all rights reserved
- Copyright 2015 all rights reserved
- Dell all rights reserved copyright 2009
- Copyright © 2018 all rights reserved
- Love all serve all help ever hurt never meaning in hindi
- Interventi sociali rivolti alla persona
- Crucified laid behind a stone
- I work all night i work all day
- All to one reduction
- Sistem all in all out
- Carpi volare
- Silent night holy night all is calm
- You are my all in all images
- All of you is more than enough for all of me