Michael Gertz Database and Information Systems Group Department of Computer Science University of California, Davis firstname.lastname@example.org 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 sitewww.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 subscription! Oracle Press has several good books on various Oracle topics. See www.osborne.com/oracle/ O’Reilly has about 30excellent 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 knowmore about constraints and triggers, you might want to check the following article: Can T¨rker and Michael Gertz: Semantic Integrity Support in SQL:1999 and u Commercial (Object-)Relational Database Management Systems. The VLDB Journal, Volume 10, Number 4, 241-269.
revised Version 1.01, January 2000, Michael Gertz, Copyright 2000.
1. SQL – Structured Query Language 1.1. Tables1.2. Queries (Part I) 1.3. Data Deﬁnition in SQL 1.4. Data Modiﬁcations in SQL 1.5. Queries (Part II) 1.6. Views 2. SQL*Plus (Minimal User Guide, Editor Commands, Help System) 3. Oracle Data Dictionary 4. Application Programming 4.1. PL/SQL 4.1.1 Introduction 4.1.2 Structure of PL/SQL Blocks 4.1.3 Declarations 4.1.4 Language Elements 4.1.5 Exception Handling 4.1.6 Procedures and Functions 4.1.7Packages 4.1.8 Programming in PL/SQL 4.2. Embedded SQL and Pro*C 5. Integrity Constraints and Triggers 5.1. Integrity Constraints 5.1.1 Check Constraints 5.1.2 Foreign Key Constraints 5.1.3 More About Column- and Table Constraints 5.2. Triggers 5.2.1 Overview 5.2.2 Structure of Triggers 5.2.3 Example Triggers 5.2.4 Programming Triggers 6. System Architecture 6.1. Storage Management and Processes6.2. Logical Database Structures 6.3. Physical Database Structures 6.4. Steps in Processing an SQL Statement 6.5. Creating Database Objects 1 3 6 9 11 19 20 23
26 27 27 28 32 34 36 38 39
46 47 49 50 50 53 55 58 60 61 63 63
SQL – Structured Query Language
In relational database systems (DBS) data are represented using tables (relations). A query issued against the DBSalso results in a table. A table has the following structure: Column 1 Column 2 . . . Column n ←− Tuple (or Record) ... ... ... ...
A table is uniquely identiﬁed by its name and consists of rows that contain the stored information, each row containing exactly one tuple (or record ). A table can have one or more columns. A column is made up of a column name and a data type, and it describes anattribute of the tuples. The structure of a table, also called relation schema, thus is deﬁned by its attributes. The type of information to be stored in a table is deﬁned by the data types of the attributes at table creation time. SQL uses the terms table, row, and column for relation, tuple, and attribute, respectively. In this tutorial we will use the terms interchangeably. A table can have up to254 columns which may have diﬀerent or same data types and sets of values (domains), respectively. Possible domains are alphanumeric data (strings), numbers and date formats. Oracle oﬀers the following basic data types: • char(n): Fixed-length character data (string), n characters long. The maximum size for n is 255 bytes (2000 in Oracle8). Note that a string of type char is always padded on...