0% found this document useful (0 votes)
24 views42 pages

A Guide To SQL, Ninth Edition: Chapter Five Multiple-Table Queries

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views42 pages

A Guide To SQL, Ninth Edition: Chapter Five Multiple-Table Queries

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 42

A Guide to SQL, Ninth Edition

Chapter Five
Multiple-Table Queries
Objectives
• Use joins to retrieve data from more than one
table
• Use the IN and EXISTS operators to query
multiple tables
• Use a subquery with a subquery
• Use an alias

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
2
Objectives (continued)
• Join a table to itself

• Perform set operations (union, intersection, and


difference)

• Use the ALL and ANY operators in a query

• Perform special operations (inner join, outer join,


and product)

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
3
Querying Multiple Tables
• Retrieve data from two or more tables

– Join tables

– Use the same commands as for single-table


queries

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
4
Joining Two Tables
• SELECT clause

– List all columns to display

• FROM clause
– List all tables involved in query

• WHERE clause

– Restrict to rows that have common values in


matching columns
©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
5
Joining Two Tables (continued)

Figure 5-1: Joining two tables with a single SQL command

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
6
Joining Two Tables (continued)

Figure 5-2: Restricting the rows in a join

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
7
Joining Two Tables (continued)

Figure 5-3: Joining the ORDER_LINE and ITEM tables

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
8
Comparing JOINS, IN, and EXISTS

• Can join tables using:

– WHERE clause

– IN operator with a subquery

– EXISTS operator with a subquery

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
9
Comparing JOINS, IN, and EXISTS
(continued)
• WHERE clause

Figure 5-4: Restricting the rows when joining the ORDER_LINE and ITEM tables

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
10
Using the IN Operator

Figure 5-5: Using the IN operator instead of a join to query two tables

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
11
Using the EXISTS Operator

Figure 5-7 Using the EXISTS operator to select order information

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
12
Using the EXISTS Operator (continued)

• Correlated subquery

– Subquery involves a table listed in outer query

• In Figure 5-7, the ORDERS table, listed in


FROM clause of outer query used in subquery

• Must qualify ORDER_NUM column in subquery


as ORDERS.ORDER_NUM

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
13
Using a Subquery within a
Subquery
• Nested subquery is a subquery within a
subquery

• Evaluate from innermost query to outermost

• More than one approach to formulating queries

• Many DMBSs have optimizers that analyze


queries for efficiency

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
14
Using a Subquery within a
Subquery (continued)

Figure 5-8: Nested subqueries (a subquery within a


subquery)
©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
15
Using a Subquery within a
Subquery (continued)
• Order of evaluating query
– Innermost subquery first producing a temporary
table
– Next (intermediate) subquery producing a second
temporary table
– Outer query last producing final result

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
16
A Comprehensive Example

Figure 5-10 Comprehensive example

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
17
Using an Alias
• An alternate name for a table

• Use in FROM clause

• Type name of table, press Spacebar, and then


type name of alias

• Allows for simplicity

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
18
Using an Alias (continued)

Figure 5-11: Using aliases in a query

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
19
Joining a Table to Itself
• Called a self-join

• Use a different alias for same table

• Use to compare records within one table

• Treat one table as two separate tables by using


alias

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
20
Joining a Table to Itself (continued)

Figure 5-12: Using aliases for a self-join

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
21
Using a Self-Join on a Primary
Key
• Can create a self-join that involves primary key
of table

• List table twice in FROM clause with aliases

– Same as previous self-join example

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
22
Using a Self-Join on a Primary Key
(continued)

Figure 5-15: List of employees and their managers

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
23
Joining Several Tables
• Condition relates columns for each pair of tables

Figure 5-16: Joining four tables in a query


©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
24
Joining Several Tables
(continued)
• In SELECT clause, list all columns to display

• Qualify any column names if needed

• In FROM clause, list all tables

• Include tables used in the WHERE clause, even


if they are not in the SELECT clause

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
25
Joining Several Tables
(continued)
• Take one pair of related tables at a time
• Indicate in WHERE clause the condition that
relates tables
• Join conditions with AND operator
• Include any additional conditions in WHERE
clause
• Connect them with AND operator

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
26
Set Operations
• Union

– The union of two tables is a table containing


every row that is in either the first table, the
second table, or both tables

– Use UNION operator

– Tables must be union compatible; that is, the


same number of columns and corresponding
columns have identical data types and lengths
©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
27
Set Operations (continued)

Figure 5-20: Using the UNION operator

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
28
Set Operations (continued)
• Intersection

– Intersection of two tables is a table containing all


rows that are in both tables

– Uses the INTERSECT operator

– Not supported by Microsoft Access

• Use an alternate approach

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
29
Set Operations (continued)

Figure 5-21: Using the INTERSECT operator

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
30
Set Operations (continued)
• Difference

– Difference of two tables is a table containing set


of all rows that are in first table but not in second
table

– Uses the MINUS operator

– Not supported by SQL Server and Microsoft


Access
• Use an alternate approach

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
31
Set Operations (continued)

Figure 5-23: Using the MINUS operator

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
32
ALL and ANY
• ALL operator
– Condition is true only if it satisfies all values
• ANY operator
– Condition is true only if it satisfies any value
• Precede subquery with appropriate operator

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
33
ALL and ANY (continued)

Figure 5-25: SELECT command that uses the ALL operator

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
34
ALL and ANY (continued)

Figure 5-27: SELECT command with an ANY operator

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
35
Special Operations
• Self-join

• Inner join

• Outer join

• Product

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
36
Inner Join
• Compares the tables in FROM clause and lists
only those rows that satisfy condition in WHERE
clause
• INNER JOIN command
– Update to SQL standard 1992

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
37
Inner Join (continued)

Figure 5-29: Query that uses and INNER JOIN clause

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
38
Outer Joins
• Left outer join: all rows from the table on the left
(listed first in the query) will be included; matching
rows only from the table on the right will be included

• Right outer join: all rows from the table on the right
will be included; matching rows only from the table
on the left will be included

• Full outer join: all rows from both tables will be


included regardless of matches

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
39
Product
• The product (Cartesian product) of two tables is
the combination of all rows in the first table and
all rows in the second table

• Omit the WHERE clause to form a product

©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
40
Summary
• Join tables with WHERE clause
• Join tables with IN operator
• Join tables with EXISTS operator
• A subquery can contain another
subquery
• Use an alias to simplify SQL
command as well to create self-join
©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
41
Summary (continued)
• UNION, INTERSECT, MINUS
• ALL and ANY operators
• Inner join
• Outer joins
– Left, right, full

• Cartesian product
©2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as
permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
42

You might also like