Chapter 12 Subqueries and MERGE Oracle 10g: SQL

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.
Chapter 4 Joining Multiple Tables
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.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 5 More SQL: Complex Queries, Triggers, Views, and Schema Modification.
Dr. Chen, Oracle Database System (Oracle) 1 Chapter 12 Subqueries and Merge Statements (up to p.451) Jason C. H. Chen, Ph.D. Professor of MIS School of.
Chapter 11 Group Functions
Copyright  Oracle Corporation, All rights reserved. 6 Writing Correlated Subqueries.
Instructor: Craig Duckett CASE, ORDER BY, GROUP BY, HAVING, Subqueries
Introduction to Oracle9i: SQL1 Subqueries. Introduction to Oracle9i: SQL2 Chapter Objectives Determine when it is appropriate to use a subquery Identify.
Introduction to Structured Query Language (SQL)
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 8 Advanced SQL.
Database Systems More SQL Database Design -- More SQL1.
Introduction to Structured Query Language (SQL)
Chapter 5 Data Manipulation and Transaction Control Oracle 10g: SQL
Copyright 2007, Paradigm Publishing Inc. BACKNEXTEND 3-1 LINKS TO OBJECTIVES Save a Filter as a Query Save a Filter as a Query Parameter Query Inner, Left,
Introduction to Databases Chapter 7: Data Access and Manipulation.
CSE314 Database Systems More SQL: Complex Queries, Triggers, Views, and Schema Modification Doç. Dr. Mehmet Göktürk src: Elmasri & Navanthe 6E Pearson.
Chapter 9 Joining Data from Multiple Tables
SQL advanced select using Oracle 1 7. Multiple Tables: Joins and Set Operations 8. Subqueries: Nested Queries.
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.
1 Definition of a subquery Nested subqueries Correlated subqueries The ISNULL function Derived tables The EXISTS operator Mixing data types: CAST & CONVERT.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Using Special Operators (LIKE and IN)
7 1 Chapter 7 Introduction to Structured Query Language (SQL) Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
Chapter 4 Multiple-Table Queries
Chapter 4Introduction to Oracle9i: SQL1 Chapter 4 Joining Multiple Tables.
6 1 Lecture 8: Introduction to Structured Query Language (SQL) J. S. Chou, P.E., Ph.D.
1 JOIN SUBQUERY Structured Query Language (SQL) - Part III.
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.
Database Systems Design, Implementation, and Management Coronel | Morris 11e ©2015 Cengage Learning. All Rights Reserved. May not be scanned, copied or.
AL-MAAREFA COLLEGE FOR SCIENCE AND TECHNOLOGY INFO 232: DATABASE SYSTEMS CHAPTER 7 (Part II) INTRODUCTION TO STRUCTURED QUERY LANGUAGE (SQL) Instructor.
SQL advanced select using Oracle 1. 2 Select Simple –data from a single table Advanced –data from more tables join sub-queries.
Chapter 12 Subqueries and Merge Statements
Chapter 13 Views Oracle 10g: SQL. Oracle 10g: SQL2 Objectives Create a view, using CREATE VIEW command or the CREATE OR REPLACE VIEW command Employ the.
A Guide to SQL, Eighth Edition Chapter Five Multiple-Table Queries.
Subqueries.
In this session, you will learn to: Query data by using joins Query data by using subqueries Objectives.
Oracle 10g Database Administrator: Implementation and Administration Chapter 10 Basic Data Management.
7 1 Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel 7.6 Advanced Select Queries SQL provides useful functions that.
Chapter 7 Subqueries. Chapter Objectives  Determine when it is appropriate to use a subquery  Identify which clauses can contain subqueries  Distinguish.
Slide 1 of 32ASH-Training Querying and Managing Data Using SQL Server 2014 By: Segla In this session, you will learn to: Query data by using joins Query.
Select Complex Queries Database Management Fundamentals LESSON 3.1b.
Oracle 11g: SQL Chapter 5 Data Manipulation and Transaction Control.
More SQL: Complex Queries, Triggers, Views, and Schema Modification
Using Subqueries to Solve Queries
Relational Database Design
Prepared by : Moshira M. Ali CS490 Coordinator Arab Open University
Multiple Table Queries
Instructor: Craig Duckett Lecture 09: Tuesday, April 25th, 2017
Subqueries.
Subqueries Schedule: Timing Topic 25 minutes Lecture
Database Systems: Design, Implementation, and Management Tenth Edition
Introduction to Oracle9i: SQL
Using Subqueries to Solve Queries
Writing Correlated Subqueries
Chapter # 7 Introduction to Structured Query Language (SQL) Part II.
Using Subqueries to Solve Queries
SQL Subquery.
Contents Preface I Introduction Lesson Objectives I-2
Chapter 8 Advanced SQL.
Subqueries Schedule: Timing Topic 25 minutes Lecture
Database Management System
Using Subqueries to Solve Queries
Subqueries.
Database Systems: Design, Implementation, and Management Tenth Edition
Using Subqueries to Solve Queries
Subqueries Schedule: Timing Topic 25 minutes Lecture
Subqueries Schedule: Timing Topic 25 minutes Lecture
Presentation transcript:

Chapter 12 Subqueries and MERGE Oracle 10g: SQL

Objectives Determine when it is appropriate to use a subquery Identify which clauses can contain subqueries Distinguish between an outer query and a subquery Use a single-row subquery in a WHERE clause Use a single-row subquery in a HAVING clause Use a single-row subquery in a SELECT clause Oracle 10g: SQL

Objectives (continued) Distinguish between single-row and multiple-row comparison operators Use a multiple-row subquery in a WHERE clause Use a multiple-row subquery in a HAVING clause Use a multiple-column subquery in a WHERE clause Oracle 10g: SQL

Objectives (continued) Create an inline view using a multiple-column subquery in a FROM clause Compensate for NULL values in subqueries Distinguish between correlated and uncorrelated subqueries Nest a subquery inside another subquery Process multiple DML actions with a MERGE statement Oracle 10g: SQL

Subqueries and Their Uses Subquery - a query nested inside another query Used when a query is based on an unknown value Requires SELECT and FROM clauses Must be enclosed in parentheses Place on right side of comparison operator Oracle 10g: SQL

Types of Subqueries Oracle 10g: SQL

Single-Row Subqueries Can only return one result to the outer query Operators include =, >, <, >=, <=, < > Oracle 10g: SQL

Single-Row Subquery in a WHERE Clause Used for comparison against individual data Oracle 10g: SQL

Single-Row Subquery in a HAVING Clause Required when returned value is compared to grouped data Oracle 10g: SQL

Single-Row Subquery in a SELECT Clause Replicates subquery value for each row displayed Oracle 10g: SQL

Multiple-Row Subqueries Return more than one row of results Require use of IN, ANY, ALL, or EXISTS operators Oracle 10g: SQL

ANY and ALL Operators Combine with arithmetic operators Oracle 10g: SQL

Multiple-Row Subquery in a WHERE Clause Note: Could use IN operator or =ANY Oracle 10g: SQL

Multiple-Row Subquery in a WHERE Clause (continued) Oracle 10g: SQL

EXISTS Operator Determines whether condition exists in subquery Oracle 10g: SQL

Multiple-Row Subquery in a HAVING Clause Oracle 10g: SQL

Multiple-Column Subqueries Return more than one column in results Can return more than one row Column list on the left side of operator must be in parentheses Use the IN operator for WHERE and HAVING clauses Oracle 10g: SQL

Multiple-Column Subquery in a FROM Clause Creates a temporary table Oracle 10g: SQL

Multiple-Column Subquery in a WHERE Clause Returns multiple columns for evaluation Oracle 10g: SQL

NULL Values When a subquery might return NULL values, use NVL function Oracle 10g: SQL

Uncorrelated Subqueries Processing sequence: Inner query is executed first Result is passed to outer query Outer query is executed Oracle 10g: SQL

Correlated Subqueries Inner query is executed once for each row processed by the outer query Inner query references the row contained in the outer query Oracle 10g: SQL

Correlated Subqueries (continued) Oracle 10g: SQL

Nested Subqueries Maximum of 255 subqueries if nested in the WHERE clause No limit if nested in the FROM clause Innermost subquery is resolved first, then the next level, etc. Oracle 10g: SQL

Nested Subqueries Innermost is resolved first (3), then the second level (2), then the outer query (1) Oracle 10g: SQL

MERGE Statement With a MERGE statement, a series of DML actions can occur with a single SQL statement Conditionally updates one data source based on another Oracle 10g: SQL

MERGE Statement (continued) Conditions comparing the two data sources Oracle 10g: SQL

MERGE Statement (continued) The following explains each part of the previous MERGE statement: MERGE INTO books_1 a: The BOOKS_1 table is to be changed and a table alias of “a” is assigned to this table USING books_2 b: The BOOKS_2 table will provide the data to update and/or insert into BOOKS_1 and a table alias of “b” is assigned to this table ON (a.isbn = b.isbn): The rows of the two tables will be joined or matched based on isbn WHEN MATCHED THEN: If a row match based on ISBN is discovered, execute the UPDATE action in this clause. The UPDATE action instructs the system to modify only two columns (Retail and Category) WHEN NOT MATCHED THEN: If no match is found based on the ISBN (a books exists in BOOKS_2 that is not in BOOKS_1), then perform the INSERT action in this clause Oracle 10g: SQL

MERGE with WHERE conditions Oracle 10g: SQL

MERGE with DELETE Oracle 10g: SQL

Summary A subquery is a complete query nested in the SELECT, FROM, HAVING, or WHERE clause of another query The subquery must be enclosed in parentheses and have a SELECT and a FROM clause, at a minimum Subqueries are completed first; the result of the subquery is used as input for the outer query A single-row subquery can return a maximum of one value Single-row operators include =, >, <, >=, <=, and <> Multiple-row subqueries return more than one row of results Oracle 10g: SQL

Summary (continued) Operators that can be used with multiple-row subqueries include IN, ALL, ANY, and EXISTS Multiple-column subqueries return more than one column to the outer query NULL values returned by a multiple-row or multiple-column subquery will not present a problem if the IN or =ANY operator is used Correlated subqueries reference a column contained in the outer query Subqueries can be nested to a maximum depth of 255 subqueries in the WHERE clause of the parent query Oracle 10g: SQL

Summary (continued) With nested subqueries, the innermost subquery is executed first, then the next highest level subquery is executed, and so on, until the outermost query is reached A MERGE statement allows multiple DML actions to be conditionally performed while comparing data of two tables Oracle 10g: SQL