51
Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University Spokane, WA 99258 USA [email protected]

Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Embed Size (px)

Citation preview

Page 1: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 1

Chapter 13Views

(up to p.495)

Jason C. H. Chen, Ph.D.

Professor of MIS

School of Business

Gonzaga University

Spokane, WA 99258 USA

[email protected]

Page 2: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 2

Objectives

• Create a view by using CREATE VIEW command or the CREATE OR REPLACE VIEW command

• Employ the FORCE and NOFORCE options • State the purpose of the WITH CHECK OPTION

constraint• Explain the effect of the WITH READ ONLY option• Update a record in a simple view• Re-create a view

Page 3: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 3

Objectives (continued)

• Explain the implication of an expression in a view for DML operations

• Update a record in a complex view• Identify problems associated with adding records

to a complex view• Identify the key-preserved table underlying a

complex view• Drop a view• Explain inline views and the use of ROWNUM

to perform a “TOP-N” analysis• Create a materialized view to replicate data

Page 4: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 4

Database Views

Table-1 Table-NTable-2

database

Single view table

Query

Output:Report, Graphs

Database view

A database view is a logical (virtual) table based on a query.

It does not store data, but presents it in a format different from the one in which it is stored in the underlying tables.

With the database view, you can view database records, but you can’t insert new records or modify or delete exiting records.

Page 5: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 5

Views• Permanent objects (logical or virtual table)

that store queries but ____ data• Based on a source query that:

– can specify a subset of a single table’s fields or records– can join multiple tables

• Two purposes– Reduce complex query requirements – Restrict users’ access to sensitive data (enforce

security; user has access to view but not underlying table)

no

Page 6: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 6

Creating and Using Database Views

• Views can be updateable if:– SELECT clause contains only fieldnames, no functions

or calculations– Can ____ contain the ORDER BY, DISTINCT, or

GROUP BY clauses, group functions, or set operators– search condition cannot contain a nested query

• Views are used like tables for selecting, inserting, updating and deleting data (only updatable views can be modified)

not

Page 7: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 7

Database View (cont.)

h SELECT view_name FROM user_views;h SELECT view_name FROM ALL_VIEWS

WHERE owner=‘SYSTEM’;h DROP VIEW <view_name>;h CREATE OR REPLACE VIEW <view_name> AS

<view query specification>;

Page 8: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 8

Types of Views

Table 13-1 Overview of View Concepts

Page 9: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 9

I. Creating a View

• You use the CREATE VIEW keywords to create a view• Use OR REPLACE if the view already exists• Use FORCE if the underlying table does not exist at the time

of creation• Provide new column names if necessary• WITH CHECK OPTION constraint – if used, prevents data

changes that will make the data subsequently inaccessible to the view

• WITH READ ONLY – prevents DML operations

Figure 13-2 Syntax of the CREATE VIEW command

Page 10: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 10

CREATE OR REPLACE VIEW book_vu ASSELECT isbn, title, categoryFROM booksWHERE category = 'COOKING';

SELECT * FROM book_vu;

SQL> SELECT * 2 FROM book_vu;

ISBN TITLE CATEGORY---------- ------------------------------ ---------3437212490 COOKING WITH MUSHROOMS COOKING0299282519 THE WOK WAY TO COOK COOKING

See next slide for detailed process

Page 11: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 11

FROM clause in query references a view rather than a table

SELECT* FROM book_vu;

BOOK_VU view(view stored in database)

Processing steps:1. A query references a view rather than a table in the FROM clause.2. The query stored in the view is executed.3. The results from the view query are stored in temporary storage.4. The original query uses the temporary query results of the view as a table and

completes execution.

2

Stores query:

SELECT isbn, title, category FROM books WHERE category=‘COOKING’;

1

3

4

Figure 13-1 View Processing

Page 12: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 12

DML Operations on a Simple View

• Any DML operations are allowed through simple views unless created with WITH READ ONLY option

• DML operations that violate constraints on the underlying table are not allowed

-- chapter 13, Figure 13-5; p.478CREATE VIEW region_neAS SELECT * FROM customers WHERE region = 'NE'; SELECT customer#, lastname, city, state, regionFROM region_ne;

-- chapter 13, Figure 13-4; p.477CREATE VIEW inventoryAS SELECT isbn, title, retail price FROM booksWITH READ ONLY;

SELECT *FROM inventory;

Page 13: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 13

Why Failed to Update?

-- chapter 13, Figure 13-6; p.479UPDATE inventory SET price = 45.96 WHERE title LIKE '%POEM';

-- “SELECT” is working (READ)SELECT * FROM inventory WHERE title LIKE '%POEM%';

UPDATE inventorySET title = 'THE SHORTEST POEMS'WHERE title LIKE '%POEM%';

Figure 13-6 Failed updates on the INVENTORY view

SQL> UPDATE inventory 2 SET price = 45.96 3 WHERE title LIKE '%POEM'; SET price = 45.96 *ERROR at line 2:ORA-42399: cannot perform a DML operation on a read-only view

ISBN TITLE PRICE---------- ------------------ ----------2147428890 SHORTEST POEMS 39.95

SQL> UPDATE inventory 2 SET title = 'THE SHORTEST POEMS' 3 WHERE title LIKE '%POEM%';SET title = 'THE SHORTEST POEMS' *ERROR at line 2:ORA-42399: cannot perform a DML operation on a read-only view

Page 14: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 14

Combining Topics – VIEW and NON-Equality Join

• Combing both VIEW (chapter 13) and NON-EQUALITY JOINS (chapter 9; p.304)

• A non-equality join enables you to store a range's minimum value in one column of a record and the maximum value in another column. So instead of finding a column-to-column match, you can use a non-equality join to determine whether the item being shipped falls between minimum and maximum ranges in the columns.

• If the join does find a matching range for the item, the corresponding shipping fee (and others) can be returned in the results

Page 15: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 15

Business Scenario

• Once a year, JustLee Books offers weeklong promotion in which customers receive a gift based on the value of each book purchase. If a customer purchases a book with a retail price of $12 or less, the customer receives a bookmark. If the retail price is more than $12 but less than or equal to $25, the customer receives a box of book-owner labels.

• For books retailing for more than $25 and less than or equal to $56, the customer is entitled to a free book cover. For books retailing for more than $56, the customer receives free shipping.

SQL> SELECT * FROM promotion;GIFT MINRETAIL MAXRETAIL--------------- ---------- ----------BOOKMARKER 0 12BOOK LABELS 12.01 25BOOK COVER 25.01 56FREE SHIPPING 56.01 999.99

Page 16: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 16

Task …• Your job is to produce a report listing book title, publisher

name, profit and its gift (note individual gift that is based on the retail price falls between minimal and maximal retail prices)

• Hint:• Because the rows in the BOOKS and PROMOTION tables

don't contain equivalent values (pk and fk), you must use a non-equality join to determine which gift a customer receives during the promotion.

Page 17: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 17

-- First Create VIEW for ‘book’ and publisherCREATE OR REPLACE VIEW book_profit_vu ASSELECT b.title, pu.name Publisher_Name, b.retail, b.retail-b.cost Profit FROM books b, publisher pu WHERE b.pubid = pu.pubid;

SQL> SELECT * FROM book_profit_vu;

TITLE PUBLISHER_NAME RETAIL PROFIT------------------------------ ----------------------- ---------- ----------REVENGE OF MICKEY PRINTING IS US 22 7.8HOW TO MANAGE THE MANAGER PRINTING IS US 31.95 16.55E-BUSINESS THE EASY WAY PUBLISH OUR WAY 54.5 16.6BUILDING A CAR WITH TOOTHPICKS PUBLISH OUR WAY 59.95 22.15HOLY GRAIL OF ORACLE AMERICAN PUBLISHING 75.95 28.7DATABASE IMPLEMENTATION AMERICAN PUBLISHING 55.95 24.55HANDCRANKED COMPUTERS AMERICAN PUBLISHING 25 3.2COOKING WITH MUSHROOMS READING MATERIALS INC. 19.95 7.45THE WOK WAY TO COOK READING MATERIALS INC. 28.75 9.75HOW TO GET FASTER PIZZA READING MATERIALS INC. 29.95 12.1BODYBUILD IN 10 MINUTES A DAY READING MATERIALS INC. 30.95 12.2PAINLESS CHILD-REARING REED-N-RITE 89.95 41.95BIG BEAR AND LITTLE DOVE REED-N-RITE 8.95 3.63SHORTEST POEMS REED-N-RITE 39.95 18.1

14 rows selected.

Page 18: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 18

-- use "NON-EQUALITY JOIN" (p.304)SELECT title, Publisher_name, retail, p.gift, TO_CHAR(profit, '$999.99') ProftFROM book_profit_vu bpvu, promotion pWHERE bpvu.retail BETWEEN p.minretail AND p.maxretailORDER BY profit;

column title format A23COLUMN name format A18column proft format $999.99column retail format $999.99column gift format A13

SELECT title, Publisher_name, retail, p.gift, TO_CHAR(profit, '$999.99') ProftFROM book_profit_vu bpvu, promotion pWHERE bpvu.retail BETWEEN p.minretail AND p.maxretail ORDER BY profit;

Page 19: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 19

TITLE PUBLISHER_NAME RETAIL GIFT PROFT----------------------- ----------------------- -------- ------------- --------HANDCRANKED COMPUTERS AMERICAN PUBLISHING $25.00 BOOK LABELS $3.20BIG BEAR AND LITTLE DOV REED-N-RITE $8.95 BOOKMARKER $3.63E

COOKING WITH MUSHROOMS READING MATERIALS INC. $19.95 BOOK LABELS $7.45REVENGE OF MICKEY PRINTING IS US $22.00 BOOK LABELS $7.80THE WOK WAY TO COOK READING MATERIALS INC. $28.75 BOOK COVER $9.75HOW TO GET FASTER PIZZA READING MATERIALS INC. $29.95 BOOK COVER $12.10BODYBUILD IN 10 MINUTES READING MATERIALS INC. $30.95 BOOK COVER $12.20 A DAYHOW TO MANAGE THE MANAG PRINTING IS US $31.95 BOOK COVER $16.55ER

E-BUSINESS THE EASY WAY PUBLISH OUR WAY $54.50 BOOK COVER $16.60SHORTEST POEMS REED-N-RITE $39.95 BOOK COVER $18.10BUILDING A CAR WITH TOO PUBLISH OUR WAY $59.95 FREE SHIPPING $22.15THPICKS

DATABASE IMPLEMENTATION AMERICAN PUBLISHING $55.95 BOOK COVER $24.55HOLY GRAIL OF ORACLE AMERICAN PUBLISHING $75.95 FREE SHIPPING $28.70PAINLESS CHILD-REARING REED-N-RITE $89.95 FREE SHIPPING $41.95

14 rows selected. GIFT MINRETAIL MAXRETAIL--------------- ---------- ----------BOOKMARKER 0 12BOOK LABELS 12.01 25BOOK COVER 25.01 56FREE SHIPPING 56.01 999.99

Page 20: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 20

A Version without VIEW

--1c.(TRADITIONAL JOIN; modified version from p.305)

SELECT b.title, pu.name "Publisher Name", b.retail, p.gift, b.retail-b.cost proftFROM books b, publisher pu, promotion pWHERE b.pubid = pu.pubid AND b.retail BETWEEN p.minretail AND p.maxretail ORDER BY b.retail-b.cost;

Page 21: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 21

-- chapter 13, Figure 13-7; p.480CREATE OR REPLACE VIEW inventoryAS SELECT isbn, title, retail price FROM books; SELECT *FROM inventoryWHERE title LIKE '%BODYBUILD%';

-- chapter 13, Figure 13-8; p.481UPDATE inventorySET price = 49.95WHERE title LIKE '%BODYBUILD%';

SELECT *FROM inventoryWHERE title LIKE '%BODYBUILD%';

SELECT *FROM booksWHERE title LIKE '%BODYBUILD%';

DML Operations on a Simple View (continued)

Page 22: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 22

Rule for DML operations• As long as the view isn’t created with the WITH

READ ONLY option and any DML operation is allowed if it doesn’t violate an existing constraint on the underlying table.

• You can add, modify, and even delete data in an underlying table as long as one of the following constraints doesn’t prevent the operation:– PRIMARY KEY - FOREIGN KEY– UNIQUE - NOT NULL– WITH CHECK OPTION

Practice Figure 13-9 to 13-11 (pp.482-483)

Page 23: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 23

Exercises

• Practice all the examples in the text.• A Script file is available on the Bb (file

name: ch13Queries.sql)• After completing all examples, do the HW.

In-class Exercise• #1

--1.CREATE VIEW contactAS SELECT contact, phone FROM publisher;

Page 24: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 24

Homework - Hands-On Assignments

Read and Practice all examples on Chapters 13• 1. Read Oracle assignment and create a script file

Oracle_ch13_Lname_Fname.sql for questions (#1-5 and 9,10; p.508) on “Hands-on Assignments”.

• 2. Execute and test one problem at a time and make sure they are all running successfully.

• 3. When you done, spool the script files (see next slide for spooling instructions) and UPLOAD script and spooled files (Oracle_ch13_Spool_Lname_Fname.txt) by the midnight before the next class.

Email me with one attachment(Oracle_ch13_Spool_Lname_Fname.) to:[email protected] subject title of bmis441_Oracle_ch13 (or Bmis441-02_Oracle_ch13)

Page 25: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 25

How to Spool your Script and Output Files

After you tested the script file of Oracle_ch13_Lname_Fname.sql successfully, follow the instructions below to spool both script and output files:

Step 0. Run the following script file from SQL*Plus (since you have created JLDB tables)

• 1. type the following on SQL>– Spool c:\oradata\Oracle_ch13B_Spool_Lname_Fname.txt (make sure your name is

entered)

• 2. open Oracle_ch13_Lname_Fname.sql that you already tested• 3. copy and paste all the SQL commands (including all comments) to the

SQL*PLUS • 4. type Spool Off on the SQL>The output should contain your personal information, all SQL commands and

their solution on the .txt file and saved in C: drive (oradata\ folder)

UPLOAD script and spooled files (*.sql and *.txt)

Page 26: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 26

• PART II

Page 27: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 27

II. Creating a Complex View

• A complex view may contain data from multiple tables or data created with the GROUP BY clause, functions, or expressions

• Type of DML operations allowed depends on various factors

Page 28: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 28

DML Operations on a Complex View with an Arithmetic Expression

Figure 13-12 Create and update a complex view named prices

Page 29: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 29

• Rule#1: DML operations are not permitted if the view includes a column based on arithmetic expression

Figure 13-14 Failed attempts to add a new book via the PRICES view

-- chapter 13, Figure 13-15; p.488INSERT INTO prices (isbn, title, cost, retail) VALUES(0202020202, 'A New Book', 8.95, 15.95);

Page 30: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 30

Figure 13-16 Constraint violation with an INSERT command via the PRICES view

no pubid is inserted

• Rule#2: DML operations are not permitted if they violate a constraint such as NOT NULL, UNIQUE etc.

Page 31: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 31

DML Operations on a Complex View Containing Data from Multiple Tables

• DML operations cannot be performed on non-key-preserved tables, but they are permitted on key-preserved tables

Figure 13-17 PRICES view with a table joinPractice: Figure 13-18

Page 32: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 32

DML Operations on a Complex View Containing Data from Multiple Tables (continued)

Figure 13-19 Failed attempt to update the publisher name via the PRICES view

• Rule#3: DML operations can’t be performed on a non-key-preserved table.

Page 33: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 33

DML Operations on a Complex View Containing Functions or Grouped Data

• Rule#4: DML operations are not permitted if the view includes a group function or a GROUP BY clause, the DISTINCT keyword, or the ROWNUM pseudocolumn.

Figure 13-21 View including grouped data

-- chapter 13, Figure 13-21; p.492CREATE VIEW balancedueAS SELECT customer#, order#, SUM(quantity * retail) Amtdue FROM customers JOIN orders USING (customer#) JOIN orderitems USING (order#) JOIN books USING (isbn) GROUP BY customer#, order#;

SELECT *FROM balancedue;

Page 34: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 34

SELECT *FROM balancedue;

Figure 13-21 View including grouped data

Page 35: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 35

DML Operations on a Complex View Containing Functions or Grouped Data (continued)

Figure 13-22 Failed DELETE command on a view with grouped data

Page 36: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 36

Dropping a View

• Use DROP VIEW command

Figure 13-25 Command to drop the PRICES view

Page 37: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 37

III. Creating an Inline View

• An inline view is a temporary table created by using a subquery in the FROM clause

• It can only be referenced while the command is being executed

• Most common usage – “TOP-N” analysis

Page 38: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 38

“TOP-N” Analysis

• ORDER BY included to identify top values:– Descending for highest values– Ascending for lowest values

• Extract data based on ROWNUM– Up to “N” rows returned

Figure 13-26 Syntax of TOP-N analysis

Page 39: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 39

“TOP-N” Analysis (continued)

Figure 13-28 TOP-N analysis to identify the five most profitable books

Page 40: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 40

Figure 13-28 TOP-N analysis to identify the five most profitable books

Figure 13-28 TOP-N analysis to determine the three lest profitable books

Page 41: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 41

Exercises

• Practice all the examples in the text.• A Script file is available on the Bb (file

name: ch13Queries.sql)• After completing all examples, do the HW.

In-class Exercise• #1

--1.CREATE VIEW contactAS SELECT contact, phone FROM publisher;

Page 42: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 42

Homework - Hands-On Assignments

Read and Practice all examples on Chapters 13• 1. Read Oracle assignment and create a script file

Oracle_ch13_Lname_Fname.sql for questions (#1-5 and 9,10; p.508) on “Hands-on Assignments”.

• 2. Execute and test one problem at a time and make sure they are all running successfully.

• 3. When you done, spool the script files (see next slide for spooling instructions) and email the file (Oracle_ch13_Spool_Lname_Fname.txt) to me by the midnight before the next class.

Email me with one attachment(Oracle_ch13_Spool_Lname_Fname.) to:[email protected] subject title of Bmis441-01_Oracle_ch13 (or Bmis441-02_Oracle_ch13)

Page 43: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 43

How to Spool your Script and Output Files

After you tested the script file of Oracle_ch13_Lname_Fname.sql successfully, follow the instructions below to spool both script and output files:

Step 0. Run the following script file from SQL*Plus (since you have created JLDB tables)

• 1. type the following on SQL>– Spool c:\oradata\Oracle_ch13B_Spool_Lname_Fname.txt (make sure your name is

entered)

• 2. open Oracle_ch13_Lname_Fname.sql that you already tested• 3. copy and paste all the SQL commands (including all comments) to the

SQL*PLUS • 4. type Spool Off on the SQL>The output should contain your personal information, all SQL commands and

their solution on the .txt file and saved in C: drive (oradata\ folder)

Email me with the spooled file (.txt) with attachment to:[email protected] subject title of Bmis441-01_Oracle_ch13 (or Bmis441-02_Oracle_ch13)

Page 44: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 44

PART III

Page 45: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 45

Materialized Views

• Replicate data• Store data retrieved from view query• Referred to as “snapshots”

Page 46: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 46

Materialized Views (continued)

Figure 13-30 Creating a materialized view named CUSTBAL_MV

Page 47: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 47

Figure 13-31 Query a materialized view

Page 48: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 48

Materialized Views (continued)

Figure 13-32 Drop a materialized view

Page 49: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 49

Summary

• A view is a temporary or virtual table that is used to retrieve data that exists in the underlying database tables

• The view query must be executed each time the view is used

• A view can be used to simplify queries or to restrict access to sensitive data

• A view is created with the CREATE VIEW command• A view cannot be modified; to change a view, it must be

dropped and then re-created, or the CREATE OR REPLACE VIEW command must be used

Page 50: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 50

Summary (continued)

• Any DML operation can be performed on a simple query if it does not violate a constraint

• A view that contains expressions or functions, or that joins multiple tables, is considered a complex view

• A complex view can be used to update only one table; the table must be a key-preserved table

• Data cannot be added to a view column that contains an expression

• DML operations are not permitted on non-key-preserved tables

Page 51: Dr. Chen, Oracle Database System (Oracle) 1 Chapter 13 Views (up to p.495) Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University

Dr. Chen, Oracle Database System (Oracle) 51

Summary (continued)

• DML operations are not permitted on views that include group functions, a GROUP BY clause, the ROWNUM pseudocolumn, or the DISTINCT keyword

• Oracle 11g assigns a row number to every row in a table to indicate its position in the table; the row number can be referenced by the keyword ROWNUM

• A view can be dropped with the DROPVIEW command; the data is not affected, because it exists in the original tables

• An inline view can be used only by the current statement and can include an ORDER BY clause

• “TOP-N” analysis uses the row number of sorted data to determine a range of top values

• Materialized views physically store view query results