Could you please tell me, in brief, the differences between SQL-89, SQL-92 and SQL-1999, and whether Oracle and SQL Server fully adhere to SQL-1999?
A full list of the differences between SQL-89, SQL-92, and SQL-99 (a.k.a. SQL1, SQL2, and SQL3) cannot really be summed up in brief –- many changes occurred between each version. However, backwards-compatibility was stressed with each release, and code that worked against SQL-89 should still work with SQL-99.
The most important changes between SQL-89 and SQL-92, in my opinion, were modifications to the join syntax, specifically the addition of the OUTER JOIN clause.
SQL-99 really focused on the business analytics side of things, with additions such as Common Table Expressions and the SQL/PSM standard for defining Java-based modules. SQL/PSM (Persistent Stored Module) was actually added to SQL-92 in 1996, but is considered to be part of the SQL-99 standard.
Both SQL Server and Oracle do support parts of SQL-99 -– but neither of them supports the entire standard.
For more information on the ANSI SQL Standard, I recommend picking up a copy of A Guide to the SQL Standard (4th Edition) by C.J. Date and Hugh Darwen (Addison-Wesley Professional, 1996).
Dig Deeper on SQL-Transact SQL (T-SQL)
Related Q&A from Adam Machanic
SQL Server 2005 and T-SQL do have differences. The advantages and disadvantages would depend user environment as described by SQL Server 2005 expert... Continue Reading
SQL Server expert Adam Machanic highlights the differences to consider when weighing the move to SQL Server 2005 Enterprise and Standard Edtions. Continue Reading
Writing a generic audit trail trigger in SQL Server to keep track of inserts, deletes, and updates within a table is explained in this expert ... Continue Reading