Chapter 2. Sets
SQL, as a language, was developed
around the concept of a
set. You may remember studying sets in elementary school, or perhaps
you studied set algebra in high school or college. While SQL
statements such as SELECT, UPDATE, and DELETE can be used to work on
one row of data at a time, the statements
were designed to operate on sets of
data, and you gain the best advantage when using them that way. In
spite of all this, we commonly see programs that use SQL to
manipulate data one row at a time rather than take advantage of the
SQL's powerful set-processing capabilities. We hope
that, with this chapter, we can open your eyes to the power of set
manipulation.
When you write SQL statements, try not to think in terms of
procedures such as selecting a record, updating it, and then
selecting another. Instead, think in terms of operating on a set of
records all at once. If you're used to procedural
thinking, set thinking can take some getting used to. To help you
along, this chapter presents some recipes that demonstrate the power
of a set-oriented approach to programming with SQL.
The recipes in this chapter are organized to demonstrate different
types of operations that can be performed on sets.
You'll see how to find common elements, summarize
the data in a set, and find the element in a set that represents an
extreme. The operations don't necessarily conform to
the mathematical definition of set operations. Rather, we extend
those definitions and use algebraic terminology to solve real-world
problems. In the real world, some deviations from tight mathematical
definitions are necessary. For example, it's often
necessary to order the elements in a set, an operation that is not
possible with mathematically defined sets.
|