Mis4200notes7 2
Mis4200notes7 2
Monday 2/9/2015
2
Joining Multiple Tables
a Join
– Combines data from multiple tables using foreign key
references
Syntax
SELECT column1, column2, …
FROM table1, table2
WHERE table1.joincolumn = table2.joincolumn
AND search_condition(s);
4
Inner Joins
Simplest type of join
Also called: Equality join, Equijoin, Natural join
VALUES in one table equal to values in other table
Query design diagram helps get the query right
5
Display column, search column, join column
Display columns: appear in SELECT clause
Search columns: appear in search condition
Join columns: primary key and foreign key column
on which you join the tables.
Linkage table: contains join column to link other
tables through foreign key values.
SELECT f_last
FROM faculty, course_section, term
WHERE faculty.f_id = course_section.f_id
AND course_section.term_id = term.term_id
6
AND term_desc = 'Summer 2007';
Deriving a SQL Query From a Query
Design Diagram
4 tables, 3 links
All 4 tables must be named in the
FROM clause
Query must have 3 join conditions
because there are 3 links SELECT course_name, grade
Always 1 fewer join condition than FROM student, enrollment, course_section, course
WHERE student.s_id = enrollment.s_id
number of tables that query joins. AND enrollment.c_sec_id = course_section.c_sec_id
AND course_section.course_no = course.course_no
If you omit one join condition, the AND s_last = 'Jones'
query creates a Cartesian product AND s_first = 'Tammy';
8
(+) operator signals Oracle to insert NULL for columns from the outer table with no matching rows in the inner table.
Self-join
Query that joins table to itself
Must create table alias
– Alternate name assigned to table in query’s FROM clause
– Syntax: FROM table1 alias1, table1 alias2 …
9
Creating Nested Queries
Nested query
– Consists of a main query and one or more subqueries
– Main query
• First query that appears in SELECT command
– Subquery
• Retrieves values that main query’s search condition must match
Subquery is evaluated first. Then, DBMS substitute
subquery’s output into main query.
10
Creating Nested Queries
12
Using Multiple Subqueries Within a
Nested Query
Use AND and OR operators
– To join search conditions associated with subqueries
13
Using SET operators to combine Query Results
UNION
– Queries must have
same number of
display column in
their SELECT clause
– Corresponding display
columns must have
same data type
Note: S_LAST, S_FIRST, S_PHONE used as
display title even though there are faculty 14
members names displayed along with students.
Using SET operators to combine Query Results
INTERSECT
– Queries must have
same number of
display column in
their SELECT clause
– Corresponding display
columns must have
same data type
– Suppresses duplicates
15
Using SET operators to combine Query Results
MINUS
– Queries must have
same number of
display column in
their SELECT clause
– Corresponding display
columns must have
same data type
– Suppresses duplicates
– Finds difference
between two query 16
results
Creating and Using Database Views
Source query
– Used to create view
– Specify subset of single table’s columns or rows or join
multiple tables
Updatable views
– Can be used to update database
Syntax
CREATE VIEW view_name
AS source_query;
– Or
CREATE OR REPLACE VIEW view_name
AS source_query;
17
Removing Views
DROP VIEW command
– Remove view from user schema
– Syntax
• DROP VIEW view_name;
18