Database Systems: Design, Implementation, and Management Tenth Edition Chapter 8 Advanced SQL.

Slides:



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

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.
TURKISH STATISTICAL INSTITUTE 1 /34 SQL FUNDEMANTALS (Muscat, Oman)
Relational Algebra, Join and QBE Yong Choi School of Business CSUB, Bakersfield.
Database Systems: Design, Implementation, and Management Tenth Edition
Structure Query Language (SQL) COMSATS INSTITUTE OF INFORMATION TECHNOLOGY, VEHARI.
Introduction to Structured Query Language (SQL)
Introduction to Structured Query Language (SQL)
Introduction to Oracle9i: SQL1 Basic SQL SELECT Statements.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 8 Advanced SQL.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 8 Advanced SQL.
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)
Chapter 6 SQL: Data Manipulation Cont’d. 2 ANY and ALL u ANY and ALL used with subqueries that produce single column of numbers u ALL –Condition only.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 7 Introduction to Structured Query Language (SQL)
Introduction to SQL J.-S. Chou Assistant Professor.
Database Systems: Design, Implementation, and Management Tenth Edition Chapter 8 Advanced SQL.
AL-MAAREFA COLLEGE FOR SCIENCE AND TECHNOLOGY INFO 232: DATABASE SYSTEMS CHAPTER 7 INTRODUCTION TO STRUCTURED QUERY LANGUAGE (SQL) Instructor Ms. Arwa.
Chapter 3 Section 3.4 Relational Database Operators
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 7 Advanced SQL Database Systems: Design, Implementation, and Management, Sixth Edition, Rob and Coronel.
Chapter 9 Joining Data from Multiple Tables
SQL advanced select using Oracle 1 7. Multiple Tables: Joins and Set Operations 8. Subqueries: Nested Queries.
8 1 Chapter 8 Advanced SQL Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
Chapter 6 SQL: Data Manipulation (Advanced Commands) Pearson Education © 2009.
1 Single Table Queries. 2 Objectives  SELECT, WHERE  AND / OR / NOT conditions  Computed columns  LIKE, IN, BETWEEN operators  ORDER BY, GROUP BY,
Database Systems: Design, Implementation, and Management Tenth Edition
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 8 Advanced SQL.
7 1 Chapter 7 Introduction to Structured Query Language (SQL) Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
1 © Prentice Hall, 2002 Chapter 8: Advanced SQL Modern Database Management 6 th Edition Jeffrey A. Hoffer, Mary B. Prescott, Fred R. McFadden.
Chapter 4 Multiple-Table Queries
6 1 Lecture 8: Introduction to Structured Query Language (SQL) J. S. Chou, P.E., Ph.D.
BIS Database Systems School of Management, Business Information Systems, Assumption University A.Thanop Somprasong Chapter # 7 Introduction to Structured.
1 Multiple Table Queries. 2 Objectives  Retrieve data from more than one table by joining tables  Using IN and EXISTS to query multiple tables  Nested.
8 1 Chapter 8 Advanced SQL Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
BIS Database Systems School of Management, Business Information Systems, Assumption University A.Thanop Somprasong Chapter # 8 Advanced SQL.
Database Systems Design, Implementation, and Management Coronel | Morris 11e ©2015 Cengage Learning. All Rights Reserved. May not be scanned, copied or.
Chapter 6 Procedural Language SQL and Advanced SQL Database Principles: Fundamentals of Design, Implementation, and Management Tenth Edition.
3 3 Chapter 3 Structured Query Language (SQL) Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
Database Systems Design, Implementation, and Management Coronel | Morris 11e ©2015 Cengage Learning. All Rights Reserved. May not be scanned, copied or.
Database Fundamental & Design by A.Surasit Samaisut Copyrights : All Rights Reserved.
Chapter 8 Advanced SQL Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
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.
Views, Algebra Temporary Tables. Definition of a view A view is a virtual table which does not physically hold data but instead acts like a window into.
ITEC 3220A Using and Designing Database Systems Instructor: Prof. Z. Yang Course Website: 3220a.htm
Chapter 5 : Integrity And Security  Domain Constraints  Referential Integrity  Security  Triggers  Authorization  Authorization in SQL  Views 
A Guide to SQL, Eighth Edition Chapter Five Multiple-Table Queries.
8 1 Chapter 8 Advanced SQL Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
7 1 Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel 7.6 Advanced Select Queries SQL provides useful functions that.
Chapter 8 Advanced SQL. Relational Set Operators UNIONINTERSECTMINUS Work properly if relations are union- compatible –Names of relation attributes must.
LM 5 Introduction to SQL MISM 4135 Instructor: Dr. Lei Li.
BTM 382 Database Management Chapter 8 Advanced SQL Chitu Okoli Associate Professor in Business Technology Management John Molson School of Business, Concordia.
Select Complex Queries Database Management Fundamentals LESSON 3.1b.
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.
More SQL: Complex Queries, Triggers, Views, and Schema Modification
Relational Database Design
Database Systems: Design, Implementation, and Management Tenth Edition
Using the Set Operators
Chapter Name SQL: Data Manipulation
Chapter # 7 Introduction to Structured Query Language (SQL) Part II.
Chapter 8 Advanced SQL Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
COP 4610L: Applications in the Enterprise Spring 2005
Contents Preface I Introduction Lesson Objectives I-2
Chapter 8 Advanced SQL.
Database Systems: Design, Implementation, and Management Tenth Edition
Presentation transcript:

Database Systems: Design, Implementation, and Management Tenth Edition Chapter 8 Advanced SQL

SQL Join Operators Join operation merges rows from two tables and returns the rows with one of the following: –Inner Join Have common values in common columns –Natural join Meet a given join condition –Equality or inequality –Outer join Have common values in common columns or have no matching value –Cross join Returns same result as the Cartesian product of two sets 2

SQL Join Operators 3

Cross Join Performs relational product of two tables –Also called Cartesian product Syntax: SELECT column-list FROM table1 CROSS JOIN table2 Perform a cross join that yields specified attributes SELECT INVOICE.INV_NUMBER, CUS_CODE, INV_DATE, P_CODE FROM INVOICE CROSS JOIN LINE; OR FROM INVOICE, LINE; 4

Natural Join Not available in MS SQL – use JOIN ON Returns all rows with matching values in the matching columns –Determines the common attribute(s) by looking for attributes with identical names and compatible data types –Select only the rows with common values in the common attribute(s) –If there are no common attributes, return the relational product of the two tables –Eliminates duplicate columns Used when tables share one or more common attributes with common names Syntax: SELECT column-list FROM table1 NATURAL JOIN table2 5

Natural Join 6

JOIN USING Clause Returns only rows with matching values in the column indicated in the USING clause –The column must exist in both tables Syntax: SELECT column-list FROM table1 JOIN table2 USING (common-column) JOIN USING operand does not require table qualifiers –Oracle returns error if table name is specified 7

JOIN USING Clause 8

JOIN ON Clause Used when tables have no common attributes Returns only rows that meet the join condition –Typically includes equality comparison expression of two columns –Column names need not be the same but they must be the same data type Syntax: SELECT column-list FROM table1 JOIN table2 ON join-condition Database Systems, 10th Edition 9

JOIN ON Clause 10

JOIN ON Clause The following query will generate a list of all employees with the managers’ names SELECT E.EMP_MGR, M.EMP_LNAME, E.EMP_NUM, E.EMP_LNAME FROM EMP E JOIN EMP M ON E.EMP_MGR = M.EMP_NUM ORDER BY E.EMP_MGR 11

Outer Joins Returns rows matching the join condition Also returns rows with unmatched attribute values for tables to be joined Three types –Left –Right –Full Left and right designate order in which tables are processed 12

Outer Joins (cont’d.) Left outer join –Returns rows matching the join condition –Returns rows in left side table with unmatched values –Syntax: SELECT column-list FROM table1 LEFT [OUTER] JOIN table2 ON join-condition 13

Outer Joins (cont’d.) Right outer join –Returns rows matching join condition –Returns rows in right side table with unmatched values 14

Outer Joins (cont’d.) Full outer join –Returns rows matching join condition –Returns all rows with unmatched values in either side table –Syntax: SELECTcolumn-list FROM table1 FULL [OUTER] JOIN table2 ON join-condition 15

16

Relational Set Operators UNION INTERSECT MINUS Work properly if relations are union-compatible –Names of relation attributes must be the same and their data types must be identical Database Systems, 10th Edition 17

UNION Combines rows from two or more queries without including duplicate rows –Example: SELECTCUS_LNAME, CUS_FNAME, CUS_INITIAL, CUS_AREACODE, FROMCUSTOMER UNION SELECTCUS_LNAME, CUS_FNAME, CUS_INITIAL, CUS_AREACODE, FROMCUSTOMER_2 Can be used to unite more than two queries Database Systems, 10th Edition 18

UNION 19

UNION ALL Produces a relation that retains duplicate rows –Example query: SELECT CUS_LNAME, CUS_FNAME, CUS_INITIAL, CUS_AREACODE, FROM CUSTOMER UNION ALL SELECT CUS_LNAME, CUS_FNAME, CUS_INITIAL, CUS_AREACODE, FROM CUSTOMER_2; Can be used to unite more than two queries 20

UNION ALL 21

INTERSECT Combines rows from two queries, returning only the rows that appear in both sets Syntax: query INTERSECT query –Example query: SELECT CUS_LNAME, CUS_FNAME, CUS_INITIAL, CUS_AREACODE, FROMCUSTOMER INTERSECT SELECT CUS_LNAME, CUS_FNAME, CUS_INITIAL, CUS_AREACODE, FROM CUSTOMER_2 Database Systems, 10th Edition 22

23

MINUS Combines rows from two queries –Returns only the rows that appear in the first set but not in the second Syntax: query MINUS query (MS SQL uses EXCEPT) –Example: SELECT CUS_LNAME, CUS_FNAME, CUS_INITIAL, CUS_AREACODE, FROMCUSTOMER MINUS SELECT CUS_LNAME, CUS_FNAME, CUS_INITIAL, CUS_AREACODE, FROM CUSTOMER_2 24

MINUS 25

Syntax Alternatives IN and NOT IN subqueries can be used in place of INTERSECT or MINUS Example: INTERSECT SELECTCUS_CODE FROM CUSTOMER WHERECUS_AREACODE = ‘615’ AND CUS_CODE IN (SELECT DISTINCT CUS_CODE FROM INVOICE); MINUS would use NOT IN 26

Subqueries and Correlated Queries Often necessary to process data based on other processed data Subquery is a query inside a query, normally inside parentheses First query is the outer query –Inside query is the inner query Inner query is executed first Output of inner query is used as input for outer query Sometimes referred to as a nested query 27

Subqueries and Correlated Queries 28

WHERE Subqueries Most common type uses inner SELECT subquery on right side of WHERE comparison –Requires a subquery that returns only one single value Value generated by subquery must be of comparable data type Can be used in combination with joins 29

IN Subqueries Used when comparing a single attribute to a list of values 30

HAVING Subqueries HAVING clause restricts the output of a GROUP BY query –Applies conditional criterion to the grouped rows 31

Multirow Subquery Operators: ANY and ALL Allows comparison of single value with a list of values using inequality comparison –“Greater than ALL” equivalent to “greater than the highest in list” –“Less than ALL” equivalent to “less than lowest” –Using equal to ANY operator equivalent to IN operator –In the query below we compare a single value (P_QOH*P_PRICE) with a list of values returned by the first subquery –For a row to appear in the resultset, it has to meet the criterion P_QOH*P_PRICE>ALL of the individual values returned by the first subquery 32

SELECT V_CODE FROM VENDOR WHERE V_STATE='FL'; V_CODE SELECT P_QOH*P_PRICE FROM PRODUCT WHERE V_CODE IN (SELECT V_CODE FROM VENDOR WHERE V_STATE='FL’); QOH*PRICE SELECT P_CODE, P_QOH*P_PRICE, V_STATE FROM PRODUCT JOIN VENDOR ON PRODUCT.V_CODE=VENDOR.V_CODE WHERE P_QOH*P_PRICE > ALL ( SELECT P_QOH*P_PRICE FROM PRODUCT WHERE V_CODE IN (SELECT V_CODE FROM VENDOR WHERE V_STATE='FL’) ); P_CODE QOH*PRICE V_STATE 89-WRE-Q TN 33

FROM Subqueries Specifies the tables from which the data will be drawn Can use SELECT subquery in the FROM clause –View name can be used anywhere a table is expected 34

Attribute List Subqueries SELECT statement uses attribute list to indicate columns to project resulting set –Columns can be attributes of base tables –Result of aggregate function Attribute list can also include subquery expression: inline subquery –Must return one single value Database Systems, 10th Edition 35

Attribute List Subqueries Cannot use an alias in the attribute list –You can not write P_PRICE-AVGPRICE in line 2 36

Correlated Subqueries Subquery that executes once for each row in the outer query Correlated because inner query is related to the outer query –Inner query references column of outer subquery –Works like a nested loop for x=1 to 2 for y=1 to 3 print “x=“ x “y=“ y as x holds steady with 1, y loops from 1 to 3 Can also be used with the EXISTS special operator 37

Correlated Subqueries 38 LS.P_CODE is fixed, the inner query finds the average LINE_UNITS for that code and the outer query lists the row information if the LINE_UNITS for an individual INV_NUMBER is greater than the average LINE_UNITS for all INV_NUMBERs with that P_CODE The second query validates the information listed in the first by showing the LINE_UNITS for the INV_NUMBER as before and the AVG LINE_UNITS for that P_CODE

EXISTS Correlated Subquery 39 The first query shows the names of all customers who have at least one order in the INVOICE table The second query shows the vendor info for those products who QOH is less than twice the minimum quantity

SQL Functions Generating information from data often requires many data manipulations SQL functions are similar to functions in programming languages Functions always use numerical, date, or string value Value may be part of a command or attribute in a table Function may appear anywhere in an SQL statement 40

Date and Time Functions All SQL-standard DBMSs support date and time functions Date functions take one parameter and return a value Date/time data types are implemented differently by different DBMS vendors ANSI SQL standard defines date data types, but not how data types are stored Database Systems, 10th Edition 41

42

Numeric Functions Grouped in different ways –Algebraic, trigonometric, logarithmic, etc. Do not confuse with aggregate functions –Aggregate functions operate over sets –Numeric functions operate over single row Numeric functions take one numeric parameter and return one value Database Systems, 10th Edition 43

44 Database Systems, 10th Edition

String Functions String manipulations are the most used functions in programming String manipulation function examples: –Concatenation –Printing in uppercase –Finding length of an attribute Database Systems, 10th Edition 45

Conversion Functions Take a value of given data type and convert it to the equivalent value in another data type Oracle conversion functions: –TO_CHAR: takes a date value, converts to character string –TO_DATE: takes character string representing a date, converts it to actual date in Oracle format Database Systems, 10th Edition 46

SQL Conversion Functions SQL Server uses CAST and CONVERT functions –Numeric to Character CAST(numeric as varchar(length)) CONVERT(varchar(length), numeric) –Date to Character CAST(date as varchar(length)) CONVERT(varchar(length), date) –String to Number CAST(‘ ’ AS NUMERIC(8,2)) –String to Date CONVERT(DATETIME,'01/JAN/1970') CAST('01-JAN-1970' AS DATETIME) 47

Virtual Tables: Creating a View View –Virtual table based on a SELECT query Base tables Tables on which the view is based CREATE VIEW viewname AS SELECT query create view v_empname as select emp_lname, emp_fname, emp_initial from emp; Database Systems, 10th Edition 48

Triggers Procedural SQL code automatically invoked by RDBMS on data manipulation event Trigger definition: –Triggering timing: BEFORE or AFTER –Triggering event: INSERT, UPDATE, DELETE –Triggering level: Statement-level trigger Row-level trigger –Triggering action DROP TRIGGER trigger_name Database Systems, 10th Edition 49

Triggers On an insert or update of the emp table, trigger checks if last name is Null. If it is, replaces value with N/A create trigger t_empname on emp after insert,update as update emp set emp_lname= ISNULL(emp.emp_lname,'N/A') 50

Triggers On an insert or update of the emp table, if the areacode is not 615 or 901, delete the record create trigger t_areacode on emp for insert,update as if (exists(select * from inserted where EMP_AREACODE <> '615')) delete from EMP where EMP_AREACODE not in ('615','901') 51

Stored Procedures Named collection of procedural and SQL statements that can encapsulate and represent business transactions –A stored procedure can represent a product sale, credit update or addition of a new customer –All SQL statement within a single stored procedure and executed as a single transaction 52

Stored Procedures Advantages –Substantially reduce network traffic and increase performance No transmission of individual SQL statements over network as procedure is stored at the server and executed locally on the RDBMS –Reduce code duplication by means of code isolation and code sharing Minimize chance of errors and cost of application development and maintenance 53

Stored Procedures Parameter is optional but allows reuse similar to a function call CREATE PROCEDURE varchar(10) AS SELECT Product, Quantity FROM Inventory WHERE Warehouse To execute EXECUTE sp_GetInventory 'FL' 54