SQL is a nonprocedural language. This means that a query formulated in
SQL need not specify how a problem is to be solved nor how data should be
accessed by the computing system; instead, an SQL query states what the query
is, i.e., what data are sought.
This leaves the user free to focus on the logic of the query. Because the
DBMS makes use of its internal knowledge, in most cases, the DBMS generates
retrieval procedures that are faster than equivalent retrieval procedures built
directly by the user.
The SQL language consists of three components: the data definition lan-
guage (DDL), the data manipulation language (DML), and the data control
language (DCL). The first component allows the user to define the structure of
the tables of the database. The second contains retrieval and update directives.
The last component allows the database administrator to define the access rights
to the database for various categories of users.
SQL syntax is format-free: tabs, carriage returns, and spaces can be included
anywhere a space occurs in the definition of an SQL construct. Also, case is
insignificant in table names, reserved words and keywords. However, case is
significant in character string literals.