Chapter 7: advanced sql Jeffrey A. Hoffer, V. Ramesh, Heikki Topi

Slides:



Advertisements
Similar presentations
Advanced SQL (part 1) CS263 Lecture 7.
Advertisements

© 2007 by Prentice Hall (Hoffer, Prescott & McFadden) 1 Joins and Sub-queries in SQL.
A Guide to SQL, Seventh Edition. Objectives Use joins to retrieve data from more than one table Use the IN and EXISTS operators to query multiple tables.
Chapter 7 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 1 Modern Database Management 11 th Edition Jeffrey A. Hoffer, V. Ramesh, Heikki Topi.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 5 More SQL: Complex Queries, Triggers, Views, and Schema Modification.
Relational Algebra, Join and QBE Yong Choi School of Business CSUB, Bakersfield.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 5 More SQL: Complex Queries, Triggers, Views, and Schema Modification.
Introduction to Structured Query Language (SQL)
© 2007 by Prentice Hall 1 Chapter 8: Advanced SQL Modern Database Management 8 th Edition Jeffrey A. Hoffer, Mary B. Prescott, Fred R. McFadden.
Introduction to Structured Query Language (SQL)
IS 4420 Database Fundamentals Chapter 8: Advanced SQL Leon Chen
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 8 Advanced SQL.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 8 Advanced SQL.
Fundamentals, Design, and Implementation, 9/e Chapter 7 Using SQL in Applications.
Chapter 7 Advanced SQL Database Systems: Design, Implementation, and Management, Sixth Edition, Rob and Coronel.
Database Systems More SQL Database Design -- More SQL1.
Introduction to Structured Query Language (SQL)
Concepts of Database Management Sixth Edition
Database Systems: Design, Implementation, and Management Tenth Edition Chapter 8 Advanced SQL.
© 2013 Pearson Education, Inc. Publishing as Prentice Hall 1 CHAPTER 7: ADVANCED SQL Modern Database Management 11 th Edition Jeffrey A. Hoffer, V. Ramesh,
© 2009 Pearson Education, Inc. Publishing as Prentice Hall 1 Chapter 8 (Part b): Advanced SQL Modern Database Management 9 th Edition Jeffrey A. Hoffer,
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Database Performance Tuning and Query Optimization.
Copyright © 2014 Pearson Education, Inc. 1 CHAPTER 7: ADVANCED SQL Essentials of Database Management Jeffrey A. Hoffer, Heikki Topi, V. Ramesh.
CSE314 Database Systems More SQL: Complex Queries, Triggers, Views, and Schema Modification Doç. Dr. Mehmet Göktürk src: Elmasri & Navanthe 6E Pearson.
Modern Database Management
SQL advanced select using Oracle 1 7. Multiple Tables: Joins and Set Operations 8. Subqueries: Nested Queries.
1 Chapter 8: Advanced SQL. Chapter 8 2 Processing Multiple Tables – Joins Join – a relational operation that causes two or more tables with a common domain.
A Guide to MySQL 5. 2 Objectives Use joins to retrieve data from more than one table Use the IN and EXISTS operators to query multiple tables Use a subquery.
Dr. Chen, Data Base Management Chapter 7: Advanced SQL Jason C. H. Chen, Ph.D. Professor of MIS School of Business Administration Gonzaga University Spokane,
Chapter 7 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 1 Modern Database Management 11 th Edition Jeffrey A. Hoffer, V. Ramesh, Heikki Topi.
© 2011 Pearson Education, Inc. Publishing as Prentice Hall 1 Chapter 7: Advanced SQL Modern Database Management 10 th Edition Jeffrey A. Hoffer, V. Ramesh,
Using Special Operators (LIKE and IN)
Concepts of Database Management Seventh Edition
CHAPTER 6: INTRODUCTION TO SQL Copyright © 2014 Pearson Education, Inc. 1 Essentials of Database Management Jeffrey A. Hoffer, Heikki Topi, V. Ramesh.
1 Chapter 8: Advanced SQL Modern Database Management Jeffrey A. Hoffer, Mary B. Prescott, Fred R. McFadden.
1 © Prentice Hall, 2002 Chapter 8: Advanced SQL Modern Database Management 6 th Edition Jeffrey A. Hoffer, Mary B. Prescott, Fred R. McFadden.
Modern Database Management Chapter 8: Advanced SQL.
6 1 Lecture 8: Introduction to Structured Query Language (SQL) J. S. Chou, P.E., Ph.D.
1 Chapter 10 Joins and Subqueries. 2 Joins & Subqueries Joins – Methods to combine data from multiple tables – Optimizer information can be limited based.
8 1 Chapter 8 Advanced SQL Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
Database Systems Design, Implementation, and Management Coronel | Morris 11e ©2015 Cengage Learning. All Rights Reserved. May not be scanned, copied or.
© 2009 Pearson Education, Inc. Publishing as Prentice Hall 1 Chapter 7 (Part a): Introduction to SQL Modern Database Management 9 th Edition Jeffrey A.
© 2009 Pearson Education, Inc. Publishing as Prentice Hall 1 Chapter 8: Advanced SQL Modern Database Management 9 th Edition Jeffrey A. Hoffer, Mary B.
AL-MAAREFA COLLEGE FOR SCIENCE AND TECHNOLOGY INFO 232: DATABASE SYSTEMS CHAPTER 7 (Part II) INTRODUCTION TO STRUCTURED QUERY LANGUAGE (SQL) Instructor.
Chapter 7: advanced sql Jeffrey A. Hoffer, V. Ramesh, Heikki Topi
SQL advanced select using Oracle 1. 2 Select Simple –data from a single table Advanced –data from more tables join sub-queries.
Physical Database Design Purpose- translate the logical description of data into the technical specifications for storing and retrieving data Goal - create.
Chapter 7 © 2013 Pearson Education, Inc. Publishing as Prentice Hall 1 Modern Database Management 11 th Edition Jeffrey A. Hoffer, V. Ramesh, Heikki Topi.
A Guide to SQL, Eighth Edition Chapter Five Multiple-Table Queries.
7 1 Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel 7.6 Advanced Select Queries SQL provides useful functions that.
Database Systems, 8 th Edition SQL Performance Tuning Evaluated from client perspective –Most current relational DBMSs perform automatic query optimization.
CSC314 DAY 8 Introduction to SQL 1. Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall SQL OVERVIEW  Structured Query Language  The.
Copyright © 2016 Pearson Education, Inc. CHAPTER 7: ADVANCED SQL (PART I) Modern Database Management 12 th Edition Jeff Hoffer, Ramesh Venkataraman, Heikki.
BTM 382 Database Management Chapter 8 Advanced SQL Chitu Okoli Associate Professor in Business Technology Management John Molson School of Business, Concordia.
CSC314 DAY 9 Intermediate SQL 1. Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall USING AND DEFINING VIEWS  Views provide users controlled.
Concepts of Database Management, Fifth Edition Chapter 3: The Relational Model 2: SQL.
Chapter 8 1 Lecture Advanced SQL. Chapter 8 2 Processing Multiple Tables–Joins Join – a relational operation that causes two or more tables with.
© 2007 by Prentice Hall (Hoffer, Prescott & McFadden) 1 Advanced SQL.
More SQL: Complex Queries, Triggers, Views, and Schema Modification
Chapter 7: advanced SQL (Part 2 – Subqueries)
Database Systems: Design, Implementation, and Management Tenth Edition
Modern Database Management Jeffrey A. Hoffer, Mary B. Prescott,
David M. Kroenke and David J
CHAPTER 7: ADVANCED SQL.
More SQL: Complex Queries, Triggers, Views, and Schema Modification
Contents Preface I Introduction Lesson Objectives I-2
Chapter 8 Advanced SQL.
Database Systems: Design, Implementation, and Management Tenth Edition
Presentation transcript:

Chapter 7: advanced sql Jeffrey A. Hoffer, V. Ramesh, Heikki Topi Modern Database Management 11th Edition, International Edition Jeffrey A. Hoffer, V. Ramesh, Heikki Topi © 2013 Pearson Education

Chapter Outline Processing Multiple Tables Tips for Developing Queries Ensuring Transaction Integrity Data Dictionary Facilities SQL:2008 Enhancements and Extensions Triggers and Routines Embedded SQL and Dynamic SQL

Learning Objectives Understand definitions of terms Write single and multiple table SQL queries Define and use three types of table joins Write noncorrelated and correlated subqueries Understand and use SQL in procedural languages (e.g. PHP, PL/SQL) Understand triggers and stored procedures Discuss SQL:2008 standard and its enhancements and extensions

SQL Queries Processing Multiple Tables Join (結合、連結、匯合) a relational operation that causes two or more tables with common columns 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 twice in the result table Natural join (自然結合) an equi-join in which one of the duplicate columns is eliminated in the result table Example The common columns in joined tables are usually the primary key of the dominant (parent) table and the foreign key of the dependent (child) table in 1:M relationships.

SQL Queries Processing Multiple Tables Outer join In joining two tables, a data row in one table may not have a matching (對應的) row in the other table. A join in which data rows that do not have matching values in common columns are also included in the result table As opposed to inner join, in which data rows must have matching values in order to appear in the result table Union join Includes all columns from the two joined tables, and an instance for each row of each table Example

Figure 7-2 : Visualization of different join types with results returned in shaded area

Corresponding Relational Schema The following slide is relational schema for this enterprise data model (from Chapter 1, Figure 1-3) Corresponding Relational Schema

(From Figure 4-5 Relational Schema for Pine Valley Furniture) Data Example © 2013 Pearson Education Chapter 4 8

From Figure 6.3 : Sample Data of a Relational Database (Data Files at ftp://163.25.117.117 → cchen→104Spring →102S_DBMS →Data Files) 9

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 common columns These tables are used in queries that follow © 2013 Pearson Education Chapter 7 10

Equi-Join Example Note : Customer ID appears twice in the result Relational schema Query : What are the IDs and names of all customers, along with the order IDs for all the orders they have placed? Tables & Data Note : Customer ID appears twice in the result

Equi-Join Example – alternative syntax This query produces same results as previous equi-join example. INNER JOIN clause is an alternative to WHERE clause, and it is used to match primary and foreign keys. An INNER JOIN will only return data rows from each table that have matching rows in the other.

Natural Join Example Relational schema Query : What are the IDs and names of all customers, along with the order IDs for all the orders they have placed? 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 join

Left Outer Join Example Venn Diagram Left Outer Join Example Relational schema Query : List customer name, ID number, and order number for all customers listed in the CUSTOMER table. Include the customer ID number and name even if that customer hasn’t placed an order. LEFT OUTER JOIN 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 result

Left Outer Join Result customer rows with no matching order rows © 2013 Pearson Education Chapter 7 15

Multiple Table Join Example Relational schema Query : Assemble all information necessary to create an invoice (發貨單) for order number 1006. Result 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. Linking Example

DIAGRAM DEPICTING A FOUR-TABLE JOIN

Figure 7-4 Results from a four-table join (edited for readability) From CUSTOMER_T table Data From Product_T table From Order_T From OrderLine_T

Self-Join Example Data Example The same table is used on both sides of the join; distinguished by using table aliases Self-joins are usually used on tables with unary relationships.

Figure 7-5 Example of a self-join

Processing Multiple Tables Using Subqueries Subquery–placing an inner query (SELECT statement) inside an outer query Options: In a condition of the WHERE clause Within the HAVING clause (in a condition for groups) As a “table” of the FROM clause Subqueries can be: Noncorrelated–executed once for the entire outer query Correlated–executed once for each row processed by the outer query

Example of SUBQUERY in WHERE Clause Query : What are the names of customers who have placed orders? Data Example The IN operator checks if the CUSTOMER_ID value of a data row is in the list returned from the subquery Subquery is embedded in parentheses. It returns a list that will be used in the WHERE clause of the outer query

Join vs. Subquery Some queries could be accomplished by either a join or a subquery Data Example Join version Graphical illustration Subquery version Graphical illustration

Figure 7-6 (a) : Graphical depiction of two ways to answer a query with different types of joins Step 2 Step 1 Step 3

Figure 7-6 (b) : Graphical depiction of two ways to answer a query with different types of joins Step 2 Show the customerID of the customer who placed order 1008, i.e., WHERE Customer_T.CustomerID = ( SELECT Order_T.CustomerID FROM Order_T WHERE OrderID = 1008 ) Step 1

Correlated vs. Noncorrelated Subqueries The inner query does not depend on data from the outer query The inner query executes once for the entire outer query Correlated subqueries: The inner query make use of data from the outer query The inner query executes once for each row of the outer query Often use the EXISTS operator Example

Figure 7-8a Processing a noncorrelated subquery Slide 21 2 1 A noncorrelated subquery processes completely before the outer query begins. © 2013 Pearson Education Chapter 7 27

Correlated Subquery Example Query: What are the order IDs for all orders that have included furniture finished in “Natural Ash” ? Relational schema The EXISTS operator returns a TRUE value if the subquery resulted in a non-empty set, otherwise it returns a FALSE result A correlated subquery always refers to an attribute from a table in outer query The subquery tests for a value that comes from outer query

Correlated Subquery Example Query: Display the order IDs for all orders that have included furniture finished in “Natural Ash” ? The subquery is executed once for each data row in the outer query. The subquery checks for each order line to see if the finish of the ordered product is natural ash. If TRUE, the outer query displays the order ID for that order Detailed steps 29

Figure 7-8b Processing a correlated subquery Subquery refers to outer-query data, so it 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. © 2013 Pearson Education Chapter 7 30

Example of SUBQUERY AS A TABLE Relational schema Query : Show the product description, product standard price, and overall average standard price for all products that have a standard price that is higher than the average standard price. 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 a derived table used in the FROM clause of the outer query The WHERE clause normally cannot include aggregate functions. But, because the aggregate is performed in the subquery, its result is a derived table that can be used in the outer query’s WHERE clause. result

Result of Using SUBQUERY AS A TABLE used used Attribute of a table derived from a subquery 32

Union Queries Combine the output of multiple queries (union of multiple queries) into a single result table First query 1 Combine Second query Step explanation 2

Figure 7-9 Combining queries using UNION 2 1 Note: In UNION queries, the number and data types of the attributes in the SELECT clauses of both queries must be identical. © 2013 Pearson Education result Chapter 7 34

RESULT OF UNION EXAMPLE Data 35

Tips for Developing Queries Be familiar with the data model (entities and relationships) or relational schema Understand the data and desired results Know the attributes desired in results 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 D.M. R.S. data

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

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 if possible Don’t combine a query with itself (if possible avoid self-joins)

Guidelines for Better Query Design (cont.) Create temporary tables for groups of queries Combine multiple update commands into one if possible Retrieve only the data you need Don’t have the DBMS sort without an index Practice more! Consider the total query processing time for ad hoc queries

Ensuring Transaction Integrity Transaction = A set of works 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

Figure 7-12 An SQL Transaction example (in pseudocode) © 2013 Pearson Education Chapter 7 41

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 DBA_TABLES – descriptions of tables DBA_CONSTRAINTS – description of constraints DBA_USERS – information about the users Examples in Microsoft SQL Server 2008 sys.columns – table and column definitions sys.indexes – table index information sys.foreign_key_columns – details about columns in foreign key constraints

Routines and Triggers 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 Triggers–routines that execute in response to a database event (INSERT, UPDATE, or DELETE)

Procedures are called explicitly Figure7-13 Triggers contrasted with stored procedures (based on Mullins 1995) Procedures are called explicitly Triggers are event-driven Source: adapted from Mullins, 1995. © 2013 Pearson Education Chapter 7 44

Figure 7-14 Simplified trigger syntax, SQL:2008 © 2013 Pearson Education Chapter 7 45

Embedded and Dynamic SQL Embedded (嵌入的) SQL SQL statements hard-coded(預寫) in a program written in another language such as C or Java Dynamic (動態的) SQL SQL code dynamically generated by an application program, as the application is running

隨堂作業題目 第七章 Problems and Exercises (365~369頁) 1 : b. 4 : b.

Copyright © 2013 Pearson Education 48