SlideShare a Scribd company logo
1 of 42
Copyright © 2014 Pearson Education, Inc.
1
CHAPTER 7:
ADVANCED SQL
Essentials of Database Management
Jeffrey A. Hoffer, Heikki Topi, V. Ramesh
Chapter 7 Copyright © 2014 Pearson Education, Inc.
 Define terms
 Write single and multiple table SQL
queries
 Define and use three types of joins
 Write noncorrelated and correlated
subqueries
 Understand and use SQL in procedural
languages (e.g. PHP, PL/SQL)
 Understand triggers and stored
procedures
2
OBJECTIVES
Chapter 7 Copyright © 2014 Pearson Education, Inc.
PROCESSING MULTIPLE TABLES
 Join–a relational operation that causes two or
more tables with a common domain to be combined
into a single table or view
 Equi-join–a join in which the joining condition is
based on equality between values in the common
columns; common columns appear redundantly in
the result table
 Natural join–an equi-join in which one of the
duplicate columns is eliminated in the result table
3
The common columns in joined tables are usually the primary key
of the dominant table and the foreign key of the dependent table in
1:M relationships
Chapter 7 Copyright © 2014 Pearson Education, Inc.
PROCESSING MULTIPLE TABLES
 Outer join–a join in which rows that do not
have matching values in common columns are
nonetheless included in the result table (as
opposed to inner join, in which rows must have
matching values in order to appear in the result
table)
 Union join–includes all columns from each
table in the join, and an instance for each row of
each table
 Self join–Matching rows of a table with other
rows from the same table
4
Chapter 7 Copyright © 2014 Pearson Education, Inc.
5
Figure 7-2
Visualization of different join types with results returned
in shaded area
Chapter 7 Copyright © 2014 Pearson Education, Inc.
THE FOLLOWING SLIDES CREATE TABLES FOR
THIS ENTERPRISE DATA MODEL
6
(from Chapter 1, Figure 1-3)
7
These tables are used in queries that follow
Figure 7-1 Pine Valley Furniture Company Customer_T and
Order_T tables with pointers from customers to their orders
7
Chapter 7 Copyright © 2014 Pearson Education, Inc.
Chapter 7 Copyright © 2014 Pearson Education, Inc.
EQUI-JOIN EXAMPLE
 For each customer who placed an order, what is
the customer’s name and order number?
8
Customer ID
appears twice in the
result
Chapter 7 Copyright © 2014 Pearson Education, Inc.
EQUI-JOIN EXAMPLE – ALTERNATIVE
SYNTAX
9
INNER JOIN clause is an alternative to WHERE clause, and is
used to match primary and foreign keys.
An INNER join will only return rows from each table that have
matching rows in the other.
This query produces same results as previous equi-join example.
Chapter 7 Copyright © 2014 Pearson Education, Inc.
NATURAL JOIN EXAMPLE
 For each customer who placed an order, what is the
customer’s name and order number?
10
Join involves multiple tables in FROM clause
ON clause performs the equality
check for common columns of the
two tables
Note: from Fig. 7-1, you see that only
10 Customers have links with orders
 Only 10 rows will be returned from
this INNER join
Chapter 7 Copyright © 2014 Pearson Education, Inc.
OUTER JOIN EXAMPLE
 List the customer name, ID number, and order number
for all customers. Include customer information even
for customers that do have an order.
11
LEFT OUTER JOIN clause
causes customer data to
appear even if there is no
corresponding order data
Unlike INNER join, this
will include customer
rows with no matching
order rows
12
Outer Join
Results
Unlike
INNER join,
this will
include
customer
rows with no
matching
order rows
12
Chapter 7 Copyright © 2014 Pearson Education, Inc.
Chapter 7 Copyright © 2014 Pearson Education, Inc.
MULTIPLE TABLE JOIN EXAMPLE
 Assemble all information necessary to create an invoice for
order number 1006
13
Four tables
involved in
this join
Each pair of tables requires an equality-check condition in the WHERE clause,
matching primary keys against foreign keys
Chapter 7 Copyright © 2014 Pearson Education, Inc.
14
Figure 7-4 Results from a four-table join (edited for readability)
From CUSTOMER_T table
From ORDER_T table From PRODUCT_T table
Chapter 7 Copyright © 2014 Pearson Education, Inc.
SELF-JOIN EXAMPLE
15
The same table is
used on both sides
of the join;
distinguished using
table aliases
Self-joins are usually used on tables with unary relationships
Chapter 7 Copyright © 2014 Pearson Education, Inc.
16
Figure 7-5 Example of a self-join
Chapter 7 Copyright © 2014 Pearson Education, Inc.
PROCESSING MULTIPLE TABLES
USING SUBQUERIES
 Subquery–placing an inner query (SELECT
statement) inside an outer query
 Options:
 In a condition of the WHERE clause
 As a “table” of the FROM clause
 Within the HAVING clause
 Subqueries can be:
 Noncorrelated–executed once for the entire outer
query
 Correlated–executed once for each row returned by
the outer query
17
Chapter 7 Copyright © 2014 Pearson Education, Inc.
SUBQUERY EXAMPLE
 Show all customers who have placed an order
18
Subquery is embedded in parentheses. In
this case it returns a list that will be used
in the WHERE clause of the outer query
The IN operator will test to
see if the CUSTOMER_ID
value of a row is included in
the list returned from the
subquery
Chapter 7 Copyright © 2014 Pearson Education, Inc.
JOIN VS. SUBQUERY
 Some queries could be accomplished by either
a join or a subquery
19
Join version
Subquery version
Chapter 7 Copyright © 2014 Pearson Education, Inc.
20
Figure 7-6 Graphical depiction of two ways to
answer a query with different types of joins
Chapter 7 Copyright © 2014 Pearson Education, Inc.
21
Figure 7-6 Graphical depiction of two ways to
answer a query with different types of joins
Chapter 7 Copyright © 2014 Pearson Education, Inc.
CORRELATED VS. NONCORRELATED
SUBQUERIES
 Noncorrelated subqueries:
Do not depend on data from the outer
query
Execute once for the entire outer query
 Correlated subqueries:
Make use of data from the outer query
Execute once for each row of the outer
query
Can use the EXISTS operator 22
23
Figure 7-8a Processing a noncorrelated subquery
A noncorrelated subquery processes completely before the outer query begins
23
Chapter 7 Copyright © 2014 Pearson Education, Inc.
Chapter 7 Copyright © 2014 Pearson Education, Inc.
CORRELATED SUBQUERY EXAMPLE
 Show all orders that include furniture finished in
natural ash
24
The subquery is testing
for a value that comes
from the outer query
The EXISTS operator will return a
TRUE value if the subquery resulted
in a non-empty set, otherwise it
returns a FALSE
 A correlated subquery always refers to
an attribute from a table referenced in
the outer query
25
Figure 7-8b
Processing a
correlated
subquery
Subquery refers to outer-
query data, so executes once
for each row of outer query
Note: only the
orders that
involve products
with Natural
Ash will be
included in the
final results
25
Chapter 7 Copyright © 2014 Pearson Education, Inc.
Chapter 7 Copyright © 2014 Pearson Education, Inc.
ANOTHER SUBQUERY EXAMPLE
 Show all products whose standard price is higher than
the average price
26
The WHERE clause normally cannot include aggregate functions, but because
the aggregate is performed in the subquery its result can be used in the outer
query’s WHERE clause
One column of the subquery is an
aggregate function that has an alias
name. That alias can then be
referred to in the outer query
Subquery forms the derived
table used in the FROM clause
of the outer query
Chapter 7 Copyright © 2014 Pearson Education, Inc.
UNION QUERIES
 Combine the output (union of multiple queries)
together into a single result table
27
First query
Second query
Combine
28
Figure 7-9 Combining queries using UNION
Note: with UNION
queries, the
quantity and data
types of the
attributes in the
SELECT clauses
of both queries
must be identical
28
Chapter 7 Copyright © 2014 Pearson Education, Inc.
Chapter 7 Copyright © 2014 Pearson Education, Inc.
TIPS FOR DEVELOPING QUERIES
 Be familiar with the data model (entities and
relationships)
 Understand the desired results
 Know the attributes desired in result
 Identify the entities that contain desired
attributes
 Review ERD
 Construct a WHERE equality for each link
 Fine tune with GROUP BY and HAVING
clauses if needed
 Consider the effect on unusual data
29
Chapter 7 Copyright © 2014 Pearson Education, Inc.
QUERY EFFICIENCY CONSIDERATIONS
 Instead of SELECT *, identify the specific
attributes in the SELECT clause; this helps
reduce network traffic of result set
 Limit the number of subqueries; try to
make everything done in a single query if
possible
 If data is to be used many times, make a
separate query and store it as a view
30
Chapter 7 Copyright © 2014 Pearson Education, Inc.
GUIDELINES FOR BETTER QUERY
DESIGN
 Understand how indexes are used in query
processing
 Keep optimizer statistics up-to-date
 Use compatible data types for fields and literals
 Write simple queries
 Break complex queries into multiple simple parts
 Don’t nest one query inside another query
 Don’t combine a query with itself (if possible
avoid self-joins)
31
Chapter 7 Copyright © 2014 Pearson Education, Inc.
GUIDELINES FOR BETTER QUERY
DESIGN (CONT.)
 Create temporary tables for groups of queries
 Combine update operations
 Retrieve only the data you need
 Don’t have the DBMS sort without an index
 Learn!
 Consider the total query processing time for ad
hoc queries
32
Chapter 7 Copyright © 2014 Pearson Education, Inc.
ENSURING TRANSACTION INTEGRITY
 Transaction = A discrete unit of work that
must be completely processed or not
processed at all
 May involve multiple updates
 If any update fails, then all other updates must be
cancelled
 SQL commands for transactions
 BEGIN TRANSACTION/END TRANSACTION
 Marks boundaries of a transaction
 COMMIT
 Makes all updates permanent
 ROLLBACK
 Cancels updates since the last COMMIT
33
34
Figure 7-10 An SQL Transaction sequence (in pseudocode)
34
Chapter 7 Copyright © 2014 Pearson Education, Inc.
Chapter 7 Copyright © 2014 Pearson Education, Inc.
DATA DICTIONARY FACILITIES
 System tables that store metadata
 Users usually can view some of these tables
 Users are restricted from updating them
 Some examples in Oracle 11g
35
Chapter 7 Copyright © 2014 Pearson Education, Inc.
TRIGGERS AND ROUTINES
 Triggers–routines that execute in
response to a database event (INSERT,
UPDATE, or DELETE)
 Routines
 Program modules that execute on demand
 Functions–routines that return values
and take input parameters
 Procedures–routines that do not return
values and can take input or output
parameters
36
37
Figure 7-11 Triggers contrasted with stored procedures (based on
Mullins 1995)
Procedures are called explicitly
Triggers are event-driven
Source: adapted from Mullins, 1995.
37
Chapter 7 Copyright © 2014 Pearson Education, Inc.
38
Figure 7-12 Trigger syntax in SQL:2008
Figure 7-13 Syntax for creating a routine, SQL:2008
38
Chapter 7 Copyright © 2014 Pearson Education, Inc.
39
39
Chapter 7 Copyright © 2014 Pearson Education, Inc.
Chapter 7 Copyright © 2014 Pearson Education, Inc.
EMBEDDED AND DYNAMIC SQL
 Embedded SQL
Including hard-coded SQL statements in a
program written in another language such
as C or Java
 Dynamic SQL
Ability for an application program to
generate SQL code on the fly, as the
application is running
40
Chapter 7 Copyright © 2014 Pearson Education, Inc.
REASONS TO EMBED SQL IN 3GL
 Can create a more flexible, accessible
interface for the user
 Possible performance improvement
 Database security improvement; grant
access only to the application instead of
users
41
42
All rights reserved. No part of this publication may be reproduced, stored in a
retrieval system, or transmitted, in any form or by any means, electronic,
mechanical, photocopying, recording, or otherwise, without the prior written
permission of the publisher. Printed in the United States of America.
Copyright © 2014 Pearson Education, Inc.

More Related Content

Similar to hoffer_edm_pp_ch07 (1).ppt

mis4200not type of joins in dbms pdddddpt
mis4200not type of joins in dbms pdddddptmis4200not type of joins in dbms pdddddpt
mis4200not type of joins in dbms pdddddpt
Punit gupta
 
gratisexam.com-Oracle.BrainDumps.1z0-061.v2016-10-10.by.Laura.75q.pdf
gratisexam.com-Oracle.BrainDumps.1z0-061.v2016-10-10.by.Laura.75q.pdfgratisexam.com-Oracle.BrainDumps.1z0-061.v2016-10-10.by.Laura.75q.pdf
gratisexam.com-Oracle.BrainDumps.1z0-061.v2016-10-10.by.Laura.75q.pdf
NarReg
 
1Copyright © 2014 Pearson Education, Inc. Publishing as Pren.docx
1Copyright © 2014 Pearson Education, Inc. Publishing as Pren.docx1Copyright © 2014 Pearson Education, Inc. Publishing as Pren.docx
1Copyright © 2014 Pearson Education, Inc. Publishing as Pren.docx
hyacinthshackley2629
 
Database DESIGN CONCEPTSDr. Dexter Francis2Data Design
Database DESIGN CONCEPTSDr. Dexter Francis2Data DesignDatabase DESIGN CONCEPTSDr. Dexter Francis2Data Design
Database DESIGN CONCEPTSDr. Dexter Francis2Data Design
OllieShoresna
 

Similar to hoffer_edm_pp_ch07 (1).ppt (20)

SQLB1.ppt
SQLB1.pptSQLB1.ppt
SQLB1.ppt
 
hoffer_edm_pp_ch06.ppt
hoffer_edm_pp_ch06.ppthoffer_edm_pp_ch06.ppt
hoffer_edm_pp_ch06.ppt
 
SQL.ppt
SQL.pptSQL.ppt
SQL.ppt
 
Advanced Excel
Advanced ExcelAdvanced Excel
Advanced Excel
 
mis4200notes7_2.ppt
mis4200notes7_2.pptmis4200notes7_2.ppt
mis4200notes7_2.ppt
 
mis4200not type of joins in dbms pdddddpt
mis4200not type of joins in dbms pdddddptmis4200not type of joins in dbms pdddddpt
mis4200not type of joins in dbms pdddddpt
 
Merging data (1)
Merging data (1)Merging data (1)
Merging data (1)
 
E-Book 25 Tips and Tricks MS Excel Functions & Formulaes
E-Book 25 Tips and Tricks MS Excel Functions & FormulaesE-Book 25 Tips and Tricks MS Excel Functions & Formulaes
E-Book 25 Tips and Tricks MS Excel Functions & Formulaes
 
gratisexam.com-Oracle.BrainDumps.1z0-061.v2016-10-10.by.Laura.75q.pdf
gratisexam.com-Oracle.BrainDumps.1z0-061.v2016-10-10.by.Laura.75q.pdfgratisexam.com-Oracle.BrainDumps.1z0-061.v2016-10-10.by.Laura.75q.pdf
gratisexam.com-Oracle.BrainDumps.1z0-061.v2016-10-10.by.Laura.75q.pdf
 
Sql xp 04
Sql xp 04Sql xp 04
Sql xp 04
 
1Copyright © 2014 Pearson Education, Inc. Publishing as Pren.docx
1Copyright © 2014 Pearson Education, Inc. Publishing as Pren.docx1Copyright © 2014 Pearson Education, Inc. Publishing as Pren.docx
1Copyright © 2014 Pearson Education, Inc. Publishing as Pren.docx
 
Database DESIGN CONCEPTSDr. Dexter Francis2Data Design
Database DESIGN CONCEPTSDr. Dexter Francis2Data DesignDatabase DESIGN CONCEPTSDr. Dexter Francis2Data Design
Database DESIGN CONCEPTSDr. Dexter Francis2Data Design
 
advanced sql(database)
advanced sql(database)advanced sql(database)
advanced sql(database)
 
The Database Environment Chapter 7
The Database Environment Chapter 7The Database Environment Chapter 7
The Database Environment Chapter 7
 
Question 2B
Question 2BQuestion 2B
Question 2B
 
Sql Server 2014 Course Content
Sql Server 2014 Course ContentSql Server 2014 Course Content
Sql Server 2014 Course Content
 
Bis 345-week-4-i lab-new
Bis 345-week-4-i lab-newBis 345-week-4-i lab-new
Bis 345-week-4-i lab-new
 
21792 relational database managementsystem
21792 relational database managementsystem21792 relational database managementsystem
21792 relational database managementsystem
 
Power BI Interview Questions and Answers | Power BI Certification | Power BI ...
Power BI Interview Questions and Answers | Power BI Certification | Power BI ...Power BI Interview Questions and Answers | Power BI Certification | Power BI ...
Power BI Interview Questions and Answers | Power BI Certification | Power BI ...
 
Stored procedure tunning
Stored procedure tunningStored procedure tunning
Stored procedure tunning
 

Recently uploaded

Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
gajnagarg
 
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...
HyderabadDolls
 
Computer science Sql cheat sheet.pdf.pdf
Computer science Sql cheat sheet.pdf.pdfComputer science Sql cheat sheet.pdf.pdf
Computer science Sql cheat sheet.pdf.pdf
SayantanBiswas37
 
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi ArabiaIn Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
ahmedjiabur940
 
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...
nirzagarg
 
+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...
+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...
+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...
Health
 
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
vexqp
 
Sonagachi * best call girls in Kolkata | ₹,9500 Pay Cash 8005736733 Free Home...
Sonagachi * best call girls in Kolkata | ₹,9500 Pay Cash 8005736733 Free Home...Sonagachi * best call girls in Kolkata | ₹,9500 Pay Cash 8005736733 Free Home...
Sonagachi * best call girls in Kolkata | ₹,9500 Pay Cash 8005736733 Free Home...
HyderabadDolls
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
nirzagarg
 

Recently uploaded (20)

Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
 
Fun all Day Call Girls in Jaipur 9332606886 High Profile Call Girls You Ca...
Fun all Day Call Girls in Jaipur   9332606886  High Profile Call Girls You Ca...Fun all Day Call Girls in Jaipur   9332606886  High Profile Call Girls You Ca...
Fun all Day Call Girls in Jaipur 9332606886 High Profile Call Girls You Ca...
 
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...
 
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With OrangePredicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
 
Computer science Sql cheat sheet.pdf.pdf
Computer science Sql cheat sheet.pdf.pdfComputer science Sql cheat sheet.pdf.pdf
Computer science Sql cheat sheet.pdf.pdf
 
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi ArabiaIn Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
 
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...
 
+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...
+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...
+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Research
 
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
 
Sonagachi * best call girls in Kolkata | ₹,9500 Pay Cash 8005736733 Free Home...
Sonagachi * best call girls in Kolkata | ₹,9500 Pay Cash 8005736733 Free Home...Sonagachi * best call girls in Kolkata | ₹,9500 Pay Cash 8005736733 Free Home...
Sonagachi * best call girls in Kolkata | ₹,9500 Pay Cash 8005736733 Free Home...
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Gulbai Tekra * Cheap Call Girls In Ahmedabad Phone No 8005736733 Elite Escort...
Gulbai Tekra * Cheap Call Girls In Ahmedabad Phone No 8005736733 Elite Escort...Gulbai Tekra * Cheap Call Girls In Ahmedabad Phone No 8005736733 Elite Escort...
Gulbai Tekra * Cheap Call Girls In Ahmedabad Phone No 8005736733 Elite Escort...
 
Dubai Call Girls Peeing O525547819 Call Girls Dubai
Dubai Call Girls Peeing O525547819 Call Girls DubaiDubai Call Girls Peeing O525547819 Call Girls Dubai
Dubai Call Girls Peeing O525547819 Call Girls Dubai
 
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
 
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
 
Kings of Saudi Arabia, information about them
Kings of Saudi Arabia, information about themKings of Saudi Arabia, information about them
Kings of Saudi Arabia, information about them
 
Top Call Girls in Balaghat 9332606886Call Girls Advance Cash On Delivery Ser...
Top Call Girls in Balaghat  9332606886Call Girls Advance Cash On Delivery Ser...Top Call Girls in Balaghat  9332606886Call Girls Advance Cash On Delivery Ser...
Top Call Girls in Balaghat 9332606886Call Girls Advance Cash On Delivery Ser...
 
Ranking and Scoring Exercises for Research
Ranking and Scoring Exercises for ResearchRanking and Scoring Exercises for Research
Ranking and Scoring Exercises for Research
 
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
 

hoffer_edm_pp_ch07 (1).ppt

  • 1. Copyright © 2014 Pearson Education, Inc. 1 CHAPTER 7: ADVANCED SQL Essentials of Database Management Jeffrey A. Hoffer, Heikki Topi, V. Ramesh
  • 2. Chapter 7 Copyright © 2014 Pearson Education, Inc.  Define terms  Write single and multiple table SQL queries  Define and use three types of joins  Write noncorrelated and correlated subqueries  Understand and use SQL in procedural languages (e.g. PHP, PL/SQL)  Understand triggers and stored procedures 2 OBJECTIVES
  • 3. Chapter 7 Copyright © 2014 Pearson Education, Inc. PROCESSING MULTIPLE TABLES  Join–a relational operation that causes two or more tables with a common domain to be combined into a single table or view  Equi-join–a join in which the joining condition is based on equality between values in the common columns; common columns appear redundantly in the result table  Natural join–an equi-join in which one of the duplicate columns is eliminated in the result table 3 The common columns in joined tables are usually the primary key of the dominant table and the foreign key of the dependent table in 1:M relationships
  • 4. Chapter 7 Copyright © 2014 Pearson Education, Inc. PROCESSING MULTIPLE TABLES  Outer join–a join in which rows that do not have matching values in common columns are nonetheless included in the result table (as opposed to inner join, in which rows must have matching values in order to appear in the result table)  Union join–includes all columns from each table in the join, and an instance for each row of each table  Self join–Matching rows of a table with other rows from the same table 4
  • 5. Chapter 7 Copyright © 2014 Pearson Education, Inc. 5 Figure 7-2 Visualization of different join types with results returned in shaded area
  • 6. Chapter 7 Copyright © 2014 Pearson Education, Inc. THE FOLLOWING SLIDES CREATE TABLES FOR THIS ENTERPRISE DATA MODEL 6 (from Chapter 1, Figure 1-3)
  • 7. 7 These tables are used in queries that follow Figure 7-1 Pine Valley Furniture Company Customer_T and Order_T tables with pointers from customers to their orders 7 Chapter 7 Copyright © 2014 Pearson Education, Inc.
  • 8. Chapter 7 Copyright © 2014 Pearson Education, Inc. EQUI-JOIN EXAMPLE  For each customer who placed an order, what is the customer’s name and order number? 8 Customer ID appears twice in the result
  • 9. Chapter 7 Copyright © 2014 Pearson Education, Inc. EQUI-JOIN EXAMPLE – ALTERNATIVE SYNTAX 9 INNER JOIN clause is an alternative to WHERE clause, and is used to match primary and foreign keys. An INNER join will only return rows from each table that have matching rows in the other. This query produces same results as previous equi-join example.
  • 10. Chapter 7 Copyright © 2014 Pearson Education, Inc. NATURAL JOIN EXAMPLE  For each customer who placed an order, what is the customer’s name and order number? 10 Join involves multiple tables in FROM clause ON clause performs the equality check for common columns of the two tables Note: from Fig. 7-1, you see that only 10 Customers have links with orders  Only 10 rows will be returned from this INNER join
  • 11. Chapter 7 Copyright © 2014 Pearson Education, Inc. OUTER JOIN EXAMPLE  List the customer name, ID number, and order number for all customers. Include customer information even for customers that do have an order. 11 LEFT OUTER JOIN clause causes customer data to appear even if there is no corresponding order data Unlike INNER join, this will include customer rows with no matching order rows
  • 12. 12 Outer Join Results Unlike INNER join, this will include customer rows with no matching order rows 12 Chapter 7 Copyright © 2014 Pearson Education, Inc.
  • 13. Chapter 7 Copyright © 2014 Pearson Education, Inc. MULTIPLE TABLE JOIN EXAMPLE  Assemble all information necessary to create an invoice for order number 1006 13 Four tables involved in this join Each pair of tables requires an equality-check condition in the WHERE clause, matching primary keys against foreign keys
  • 14. Chapter 7 Copyright © 2014 Pearson Education, Inc. 14 Figure 7-4 Results from a four-table join (edited for readability) From CUSTOMER_T table From ORDER_T table From PRODUCT_T table
  • 15. Chapter 7 Copyright © 2014 Pearson Education, Inc. SELF-JOIN EXAMPLE 15 The same table is used on both sides of the join; distinguished using table aliases Self-joins are usually used on tables with unary relationships
  • 16. Chapter 7 Copyright © 2014 Pearson Education, Inc. 16 Figure 7-5 Example of a self-join
  • 17. Chapter 7 Copyright © 2014 Pearson Education, Inc. PROCESSING MULTIPLE TABLES USING SUBQUERIES  Subquery–placing an inner query (SELECT statement) inside an outer query  Options:  In a condition of the WHERE clause  As a “table” of the FROM clause  Within the HAVING clause  Subqueries can be:  Noncorrelated–executed once for the entire outer query  Correlated–executed once for each row returned by the outer query 17
  • 18. Chapter 7 Copyright © 2014 Pearson Education, Inc. SUBQUERY EXAMPLE  Show all customers who have placed an order 18 Subquery is embedded in parentheses. In this case it returns a list that will be used in the WHERE clause of the outer query The IN operator will test to see if the CUSTOMER_ID value of a row is included in the list returned from the subquery
  • 19. Chapter 7 Copyright © 2014 Pearson Education, Inc. JOIN VS. SUBQUERY  Some queries could be accomplished by either a join or a subquery 19 Join version Subquery version
  • 20. Chapter 7 Copyright © 2014 Pearson Education, Inc. 20 Figure 7-6 Graphical depiction of two ways to answer a query with different types of joins
  • 21. Chapter 7 Copyright © 2014 Pearson Education, Inc. 21 Figure 7-6 Graphical depiction of two ways to answer a query with different types of joins
  • 22. Chapter 7 Copyright © 2014 Pearson Education, Inc. CORRELATED VS. NONCORRELATED SUBQUERIES  Noncorrelated subqueries: Do not depend on data from the outer query Execute once for the entire outer query  Correlated subqueries: Make use of data from the outer query Execute once for each row of the outer query Can use the EXISTS operator 22
  • 23. 23 Figure 7-8a Processing a noncorrelated subquery A noncorrelated subquery processes completely before the outer query begins 23 Chapter 7 Copyright © 2014 Pearson Education, Inc.
  • 24. Chapter 7 Copyright © 2014 Pearson Education, Inc. CORRELATED SUBQUERY EXAMPLE  Show all orders that include furniture finished in natural ash 24 The subquery is testing for a value that comes from the outer query The EXISTS operator will return a TRUE value if the subquery resulted in a non-empty set, otherwise it returns a FALSE  A correlated subquery always refers to an attribute from a table referenced in the outer query
  • 25. 25 Figure 7-8b Processing a correlated subquery Subquery refers to outer- query data, so executes once for each row of outer query Note: only the orders that involve products with Natural Ash will be included in the final results 25 Chapter 7 Copyright © 2014 Pearson Education, Inc.
  • 26. Chapter 7 Copyright © 2014 Pearson Education, Inc. ANOTHER SUBQUERY EXAMPLE  Show all products whose standard price is higher than the average price 26 The WHERE clause normally cannot include aggregate functions, but because the aggregate is performed in the subquery its result can be used in the outer query’s WHERE clause One column of the subquery is an aggregate function that has an alias name. That alias can then be referred to in the outer query Subquery forms the derived table used in the FROM clause of the outer query
  • 27. Chapter 7 Copyright © 2014 Pearson Education, Inc. UNION QUERIES  Combine the output (union of multiple queries) together into a single result table 27 First query Second query Combine
  • 28. 28 Figure 7-9 Combining queries using UNION Note: with UNION queries, the quantity and data types of the attributes in the SELECT clauses of both queries must be identical 28 Chapter 7 Copyright © 2014 Pearson Education, Inc.
  • 29. Chapter 7 Copyright © 2014 Pearson Education, Inc. TIPS FOR DEVELOPING QUERIES  Be familiar with the data model (entities and relationships)  Understand the desired results  Know the attributes desired in result  Identify the entities that contain desired attributes  Review ERD  Construct a WHERE equality for each link  Fine tune with GROUP BY and HAVING clauses if needed  Consider the effect on unusual data 29
  • 30. Chapter 7 Copyright © 2014 Pearson Education, Inc. QUERY EFFICIENCY CONSIDERATIONS  Instead of SELECT *, identify the specific attributes in the SELECT clause; this helps reduce network traffic of result set  Limit the number of subqueries; try to make everything done in a single query if possible  If data is to be used many times, make a separate query and store it as a view 30
  • 31. Chapter 7 Copyright © 2014 Pearson Education, Inc. GUIDELINES FOR BETTER QUERY DESIGN  Understand how indexes are used in query processing  Keep optimizer statistics up-to-date  Use compatible data types for fields and literals  Write simple queries  Break complex queries into multiple simple parts  Don’t nest one query inside another query  Don’t combine a query with itself (if possible avoid self-joins) 31
  • 32. Chapter 7 Copyright © 2014 Pearson Education, Inc. GUIDELINES FOR BETTER QUERY DESIGN (CONT.)  Create temporary tables for groups of queries  Combine update operations  Retrieve only the data you need  Don’t have the DBMS sort without an index  Learn!  Consider the total query processing time for ad hoc queries 32
  • 33. Chapter 7 Copyright © 2014 Pearson Education, Inc. ENSURING TRANSACTION INTEGRITY  Transaction = A discrete unit of work that must be completely processed or not processed at all  May involve multiple updates  If any update fails, then all other updates must be cancelled  SQL commands for transactions  BEGIN TRANSACTION/END TRANSACTION  Marks boundaries of a transaction  COMMIT  Makes all updates permanent  ROLLBACK  Cancels updates since the last COMMIT 33
  • 34. 34 Figure 7-10 An SQL Transaction sequence (in pseudocode) 34 Chapter 7 Copyright © 2014 Pearson Education, Inc.
  • 35. Chapter 7 Copyright © 2014 Pearson Education, Inc. DATA DICTIONARY FACILITIES  System tables that store metadata  Users usually can view some of these tables  Users are restricted from updating them  Some examples in Oracle 11g 35
  • 36. Chapter 7 Copyright © 2014 Pearson Education, Inc. TRIGGERS AND ROUTINES  Triggers–routines that execute in response to a database event (INSERT, UPDATE, or DELETE)  Routines  Program modules that execute on demand  Functions–routines that return values and take input parameters  Procedures–routines that do not return values and can take input or output parameters 36
  • 37. 37 Figure 7-11 Triggers contrasted with stored procedures (based on Mullins 1995) Procedures are called explicitly Triggers are event-driven Source: adapted from Mullins, 1995. 37 Chapter 7 Copyright © 2014 Pearson Education, Inc.
  • 38. 38 Figure 7-12 Trigger syntax in SQL:2008 Figure 7-13 Syntax for creating a routine, SQL:2008 38 Chapter 7 Copyright © 2014 Pearson Education, Inc.
  • 39. 39 39 Chapter 7 Copyright © 2014 Pearson Education, Inc.
  • 40. Chapter 7 Copyright © 2014 Pearson Education, Inc. EMBEDDED AND DYNAMIC SQL  Embedded SQL Including hard-coded SQL statements in a program written in another language such as C or Java  Dynamic SQL Ability for an application program to generate SQL code on the fly, as the application is running 40
  • 41. Chapter 7 Copyright © 2014 Pearson Education, Inc. REASONS TO EMBED SQL IN 3GL  Can create a more flexible, accessible interface for the user  Possible performance improvement  Database security improvement; grant access only to the application instead of users 41
  • 42. 42 All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of the publisher. Printed in the United States of America. Copyright © 2014 Pearson Education, Inc.