Over 1
Over 1
Over 1
Michael Gertz
Database and Information Systems Group
Department of Computer Science
University of California, Davis
gertz@cs.ucdavis.edu
http://www.db.cs.ucdavis.edu
This Oracle/SQL tutorial provides a detailed introduction to the SQL query language and the
Oracle Relational Database Management System. Further information about Oracle and SQL
can be found on the web site www.db.cs.ucdavis.edu/dbs.
Comments, corrections, or additions to these notes are welcome. Many thanks to Christina
Chung for comments on the previous version.
Recommended Literature
The complete Oracle Documentation is available online at technet.oracle.com. Free sub-
scription!
Oracle Press has several good books on various Oracle topics. See www.osborne.com/oracle/
O’Reilly has about 30 excellent Oracle books, including Steven Feuerstein’s Oracle PL/SQL
Programming (3rd edition). See oracle.oreilly.com.
Jim Melton and Alan R. Simon: SQL: 1999 - Understanding Relational Language Components
(1st Edition, May 2001), Morgan Kaufmann.
Jim Celko has a couple of very good books that cover advanced SQL queries and programming.
Check any of your favorite (online)bookstore.
If you want to know more about constraints and triggers, you might want to check the fol-
lowing article: Can Türker and Michael Gertz: Semantic Integrity Support in SQL:1999 and
Commercial (Object-)Relational Database Management Systems. The VLDB Journal, Volume
10, Number 4, 241-269.
1
revised Version 1.01, January 2000, Michael Gertz, Copyright 2000.
Contents
1. SQL – Structured Query Language
1.1. Tables 1
1.2. Queries (Part I) 3
1.3. Data Definition in SQL 6
1.4. Data Modifications in SQL 9
1.5. Queries (Part II) 11
1.6. Views 19
2. SQL*Plus (Minimal User Guide, Editor Commands, Help System) 20
3. Oracle Data Dictionary 23
4. Application Programming
4.1. PL/SQL
4.1.1 Introduction 26
4.1.2 Structure of PL/SQL Blocks 27
4.1.3 Declarations 27
4.1.4 Language Elements 28
4.1.5 Exception Handling 32
4.1.6 Procedures and Functions 34
4.1.7 Packages 36
4.1.8 Programming in PL/SQL 38
4.2. Embedded SQL and Pro*C 39
5. Integrity Constraints and Triggers
5.1. Integrity Constraints
5.1.1 Check Constraints 46
5.1.2 Foreign Key Constraints 47
5.1.3 More About Column- and Table Constraints 49
5.2. Triggers
5.2.1 Overview 50
5.2.2 Structure of Triggers 50
5.2.3 Example Triggers 53
5.2.4 Programming Triggers 55
6. System Architecture
6.1. Storage Management and Processes 58
6.2. Logical Database Structures 60
6.3. Physical Database Structures 61
6.4. Steps in Processing an SQL Statement 63
6.5. Creating Database Objects 63