Joe Celko's SQL for Smarties: Advanced SQL Programming, Third Edition

Let's be picky about definitions. A database is the data that sits under the control of the database management system (DBMS). The DBMS has the schema, rules and operators that apply to the database. The schema contains the definitions of the objects in the database. But we always say "the database," as if it had no parts to it.
In the original SQL-89 language, the only data structure the user could access via SQL was the table, which could be permanent (base tables) or virtual (views). Standard SQL also allows the DBA to define other schema objects, but most of these new features are not yet available in SQL products, or the versions of them that are available are proprietary. Let's take a quick look at these new features, but without spending much time on their details.
An SQL engine usually keeps the information it needs about the schema by putting it in SQL tables. No two vendors agree on how the schema tables should be named or structured. The SQL Standard defines a set of standard schema information tables. While each vendor will probably keep their own internal schema information tables, many products now have VIEWS that provide standard schema information tables for data exchange and interfaces to external products.
Every SQL product allows users to query the schema tables. User groups have libraries of...