entirely and start reading about the case tables in Section 1.9. However, I think Chapter 1 con-
tains a lot of important and useful information. If you skip it, you might want to revisit it later.
Chapter 2 starts with a high-level overview of the SQL language, followed by an introduc-
tion to SQL*Plus and iSQL*Plus, the two most obvious environments to execute SQL
statements interactively. In Chapter 11, we revisit SQL*Plus. That chapter covers some more
advanced SQL*Plus features, such as using substitution variables, stored scripts, reporting,
and working with HTML.
Data definition is covered in two nonconsecutive chapters: Chapter 3 and Chapter 7. This
is done to allow you to start with SQL retrieval as soon as possible. Therefore, Chapter 3 covers
only the most basic data-definition concepts (tables, datatypes, and the data dictionary).
Retrieval is also spread over multiple chapters—four chapters, to be precise. Chapter 4
focuses on the SELECT, WHERE, and ORDER BY clauses of the SELECT statement. The most impor-
tant SQL functions are covered in Chapter 5, which also covers null values and subqueries. In
Chapter 8, we start accessing multiple tables at the same time (joining tables) and aggregating
query results; in other words, the FROM, the GROUP BY, and the HAVING clauses get our attention
in that chapter. To finish the coverage of data retrieval with SQL, Chapter 9 revisits subqueries
to show some more advanced subquery constructs. That chapter also introduces windows
and analytical functions, hierarchical queries, and flashback features.
■Note From Chapter 4 onwards, all chapters except Chapter 6 end with a set of exercises. The answers to
these exercises are in Appendix D.
Chapter 6 discusses data manipulation with SQL. The commands INSERT, UPDATE, DELETE,
and MERGE are introduced. This chapter also pays attention to some topics related to data
manipulation: transaction processing, read consistency, and locking.
In Chapter 7, we revisit data definition, to drill down into constraints, indexes, sequences,
and performance. Synonyms are explained in the same chapter. Chapters 8 and 9 continue
coverage of data retrieval with SQL.
Chapter 10 introduces views. What are views, when should you use them, and what are
their restrictions? This chapter explores the possibilities of data manipulation via views, dis-
cusses views and performance, and introduces materialized views.
Chapter 11 is a continuation of Chapter 2, covering more advanced SQL*Plus and
iSQL*Plus features.
Oracle is an object-relational database management system. Since Oracle8, many object-
oriented features have been added to the SQL language. As an introduction to these features,
Chapter 12 provides a high-level overview of user-defined datatypes, arrays, nested tables,
and multiset operators.
The five appendices at the end of this book offer a SQL*Plus and SQL quick reference, an
overview of the Oracle data dictionary, a description of the structure and contents of the seven
case tables, the answers to the exercises, and references to other sources of information.
■INTRODUCTION
xix