Chapter 7 · 2018. 9. 1. · Microsoft PowerPoint - chapter07.ppt Author: Gwo-Jen Hwang Created...

Preview:

Citation preview

7

1

Chapter 7

Advanced SQL

Database Systems:Design, Implementation, and Management,

Sixth Edition, Rob and Coronel

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

2

In this chapter, you will learn:

•About the relational set operators UNION,UNION ALL, INTERSECT, and MINUS

•How to use the advanced SQL JOIN operatorsyntax

•About the different types of subqueries andcorrelated queries

•How to use SQL functions to manipulate dates,strings, and other data

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

3

In this chapter, you will learn: (continued)

•How to create and use updatable views

•How to create and use triggers and storedprocedures

•How to create embedded SQL

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

4

UNION Query Result

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

5

UNION ALL Query Result

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

6

INTERSECT Query Result

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

7

MINUS Query Results

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

8

INTERSECT Alternative

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

9

MINUS Alternative

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

10

SQL Join Expression Styles

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

11

NATURAL JOIN Result

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

12

JOIN USING Result

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

13

JOIN ON Result

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

14

Outer Joins

•Returns not only rows matching join conditionbut also rows with unmatched values

•Three types:

–Left

–Right

–Full

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

15

LEFT JOIN Result

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

16

RIGHT JOIN Result

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

17

FULL JOIN Result

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

18

SELECT Subquery Examples

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

19

WHERE Subquery Examples

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

20

IN Subquery Example

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

21

HAVING Subquery Example

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

22

Multirow Subquery Operator Example

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

23

FROM Subquery Example

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

24

Inline Subquery Example

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

25

Correlated Subquery Examples

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

26

EXISTS Correlated Subquery Examples

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

27

Selected MS Access/SQL ServerDate/Time Functions

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

28

Selected Oracle Date/Time Functions

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

29

Selected Oracle Date/Time Functions(continued)

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

30

Selected Oracle Numeric Functions

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

31

Selected Oracle String Functions

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

32

Selected Oracle Conversion Functions

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

33

Selected Oracle Conversion Functions(continued)

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

34

Oracle Sequence

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

35

Oracle Sequence Examples

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

36

The PRODMASTERand PRODSALES Tables

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

37

The Oracle UPDATE Error Message

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

38

Creating an Updatable View in Oracle

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

39

PRODMASTER Table Update,Using an Updatable View

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

40

Anonymous PL/SQL Block Examples

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

41

SHOW ERRORS

•Can help diagnose errors found in PL/SQLblocks

•Yields additional debugging informationwhenever an error is generated after anPL/SQL block is created or executed

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

42

Anonymous PL/SQL Blockwith Variables and Loops

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

43

PL/SQL Basic Data Types

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

44

The PRODUCT Table

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

45

Creating theTRG_PRODUCT_REORDER Trigger

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

46

Verifying the TRG_PRODUCT_REORDERTrigger Execution

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

47

The P_REORDER Value Mismatch AfterUpdate of the P_MIN Attribute

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

48

Stored Procedures: Advantages

•Substantially reduce network traffic andincrease performance

•No transmission of individual SQL statementsover network

•Help reduce code duplication by means ofcode isolation and code sharing

•Minimize chance of errors and cost ofapplication development and maintenance

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

49

Creating the PRC_PROD_DISCOUNTStored Procedure

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

50

Results of the PRC_PROD_DISCOUNTStored Procedure

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

51

The PRC_CUS_ADD Stored Procedure

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

52

The PRC_INV_ADD andPRC_LINE_ADD Stored Procedures

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

53

Testing the PRC_INV_ADD andPRC_LINE_ADD Procedures

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

54

Cursor Processing Commands

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

55

Cursor Attributes

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

56

SQL and Procedural Languages:Key Differences

•Run-time mismatch:–SQL executed one instruction at a time–Host language typically runs at the client side

in its own memory space

•Processing mismatch:–Host language processes one data element at

a time

•Data type mismatch:–Data types may not match

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

57

Embedded SQL Framework

•A standard syntax to identify embedded SQLcode within host language

•A standard syntax to identify host variables

•A communication area used to exchangestatus and error information between SQLand the host language

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

58

SQL Status and Error Reporting Variables

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

59

Static SQL

•Embedded SQL in which the programmerused predefined SQL statements andparameters

–End users of programs are limited to actionsthat were specified in application programs

•SQL statements will not change whileapplication is running

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

60

Dynamic SQL

•SQL statement is not known in advance, butinstead is generated at run time

•Program can generate SQL statements at runtime that are required to respond to ad hocqueries

•Attribute list and the condition are not knownuntil the end user specifies them

•Tends to be much slower than static SQL•Requires more computer resources

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

61

Summary

•SQL provides relational set operators tocombine output of two queries to generate newrelation

•Operations that join tables can be classified asinner joins and outer joins

•Subqueries and correlated queries are usedwhen it is necessary to process data based onother processed data

•SQL functions are used to extract or transformdata

Database Systems: Design, Implementation, & Management, 6th Edition, Rob & Coronel

7

62

Summary (continued)

•Oracle sequences may be used to generatevalues to be assigned to a record

•PL/SQL may be used to create triggers,stored procedures, and PL/SQL functions

•If SQL statements are designed to returnmore than one value inside the PL/SQL code,a cursor is needed

•Embedded SQL refers to the use of SQLstatements within an applicationprogramming language