Chapter 6 - advancedSQL
Chapter 6 - advancedSQL
Advanced SQL
Views
SELECT *
FROM cs_student s, copy c
WHERE s.email = c.owner;
View
Table
View
Sometimes YES,
?
sometimes NO
Table
But not our cs_student view because the faculty and department cannot be
NULL (notice that the department at least should be understood)
PL/SQL
Triggers
Indexes
SELECT *
FROM book
WHERE ISBN13 = '978-1449389673'
SELECT STATEMENT
TABLE ACCESS BOOK FULL
Filter Predicates
ISBN13='978-1449389673‘
The system has created an index and can use it to find a row given the ISBN13
SELECT *
FROM book
WHERE ISBN13 = '978-1449389673'
SELECT STATEMENT
TABLE ACCESS BOOK BY INDEX ROWID
INDEX SYS_C007097 UNIQUE SCAN
Access Predicates
ISBN13='978-1449389673'
SELECT *
FROM book
WHERE ISBN10 = '1449389678'
SELECT STATEMENT
TABLE ACCESS BOOK BY INDEX ROWID
INDEX SYS_C007098 UNIQUE SCAN
Access Predicates
ISBN13= '1449389678'
The system creates an index and uses it to find a row given the ISBN10
The system has created an index and can use it to find a row given the name
SELECT
s.email
FROM student s
WHERE s.name LIKE 'G%';
SELECT STATEMENT
TABLE ACCESS STUDENT FULL
s Filter Predicates S.NAME LIKE 'G%'
!
SELECT
s.email
FROM student s
WHERE s.name LIKE 'G%';
SELECT STATEMENT
TABLE ACCESS STUDENT BY INDEX ROWID
INDEX SUDENT_NAME RANGE SCAN
s Access Predicates S.NAME LIKE 'G%'
Filter Predicates S.NAME LIKE 'G%'
The system has created an index and can use it to find a row given the owner
SELECT STATEMENT
HASH GROUP BY
TABLE ACCESS COPY FULL
SELECT STATEMENT
HASH GROUP BY
INDEX COPY_OWNER FAST FULL SCAN
SELECT STATEMENT
HASH GROUP BY
NESTED LOOPS
TABLE ACCESS COPY FULL
INDEX SYS_C007126 UNIQUE SCAN
Access Predicates S.EMAIL(+)=C.OWNER
SELECT STATEMENT
HASH GROUP BY
NESTED LOOPS
INDEX COPY_OWNER FAST FULL SCAN
INDEX SYS_C007126 UNIQUE SCAN
Access Predicates S.EMAIL(+)=C.OWNER
SELECT STATEMENT
HASH GROUP BY
HASH JOIN
Access Predicates S.EMAIL=C.OWNER
TABLE ACCESS STUDENT FULL
TABLE ACCESS COPY FULL
SELECT STATEMENT
HASH GROUP BY
HASH JOIN
Access Predicates S.EMAIL=C.OWNER
TABLE ACCESS STUDENT FULL
INDEX COPY_OWNER FAST FULL SCAN
The system has created a B-tree index and can use it to find a row given the
owner, ISBN13 and copy (the book)
Queries that access all three columns, only the owner column or only the owner
and ISBN13 columns can use this index.
SELECT STATEMENT
HASH GROUP BY
NESTED LOOPS
TABLE ACCESS LOAN FULL
INDEX SYS_C007126 UNIQUE SCAN
Access Predicates S.EMAIL=L.OWNER
SELECT STATEMENT
HASH GROUP BY
NESTED LOOPS
INDEX LOAN_OWNER_BOOK_COPY FAST FULL SCAN
INDEX SYS_C007126 UNIQUE SCAN
Access Predicates S.EMAIL=L.OWNER