Databases 23 min read

From SQL‑86 to SQL‑2023: How the Language Evolved Over 38 Years

This article traces the 38‑year evolution of the SQL standard from its first version in 1986 through successive revisions—SQL‑89, SQL‑92, SQL:1999, SQL:2003, SQL:2006/2008, SQL:2011, SQL:2016, and the latest SQL:2023—highlighting key features, extensions, and the growing gap between standards and vendor implementations.

ITPUB
ITPUB
ITPUB
From SQL‑86 to SQL‑2023: How the Language Evolved Over 38 Years

SQL has been a cornerstone of relational data management since its first ANSI standard, SQL‑86, in 1986, and remains one of the most widely used query languages today.

SQL‑86 – The Beginning

The initial standard defined core DDL commands such as CREATE TABLE and DROP TABLE, and DML commands including SELECT, INSERT, UPDATE, and DELETE. It also introduced basic WHERE filtering and aggregate functions like COUNT, SUM, AVG, MIN and MAX. Data types were limited to primitives such as INTEGER, SMALLINT and VARCHAR. The standard lacked later‑stage features such as JOINs, foreign‑key constraints, views, and advanced transaction control.

SQL‑89 – Early Enhancements

SQL‑89 added integrity constraints, most notably primary‑key enforcement, and introduced basic security commands GRANT and REVOKE for fine‑grained access control.

SQL‑92 (SQL2) – Major Leap

SQL‑92 brought full JOIN support (INNER, LEFT OUTER, RIGHT OUTER, FULL OUTER), subqueries, and a richer set of data types (DATE, TIME, TIMESTAMP, INTERVAL, etc.). It also introduced robust transaction control, isolation levels, and constraints such as CHECK, UNIQUE and FOREIGN KEY. The INFORMATION_SCHEMA metadata view was standardized, though adoption varies across vendors.

SQL:1999 (SQL3) – Beyond Traditional Model

SQL:1999 added object‑relational features (user‑defined types, table inheritance), triggers, recursive queries, and Common Table Expressions via the WITH clause. OLAP extensions to GROUP BYROLLUP, CUBE, and GROUPING SETS —enabled advanced analytical reporting.

SQL:2003 – XML Integration

This version introduced the XML data type and associated functions for parsing and serializing XML, as well as a standard SEQUENCE generator and enhanced auto‑increment columns. Window‑function capabilities were also expanded.

SQL:2006 and SQL:2008 – Improvements

SQL:2006 continued XML enhancements, while SQL:2008 added INSTEAD OF triggers for views and the TRUNCATE TABLE statement for fast bulk deletions. It also standardized pagination syntax using OFFSET … FETCH. Example pagination syntaxes across major databases are shown below.

SELECT * FROM T LIMIT 10 OFFSET 20 -- Netezza, MySQL, PostgreSQL, SQLite, HSQLDB, H2
SELECT * FROM T WHERE ROWNUM <= 10 -- Oracle
SELECT FIRST 10 * FROM T -- Ingres
SELECT FIRST 10 * FROM T ORDER BY a -- Informix
SELECT SKIP 20 FIRST 10 * FROM T ORDER BY c, d -- Informix
SELECT TOP 10 * FROM T -- MS SQL Server, Sybase ASE, MS Access
SELECT TOP 10 START AT 20 * FROM T -- Sybase SQL Anywhere
SELECT FIRST 10 SKIP 20 * FROM T -- Interbase, Firebird
SELECT * FROM T ROWS 20 TO 30 -- Firebird
SELECT * FROM T WHERE ID_T > 10 FETCH FIRST 10 ROWS ONLY -- DB2
SELECT * FROM T WHERE ID_T > 20 FETCH FIRST 10 ROWS ONLY -- DB2 (new rows filtered after key comparison)

SQL:2011 and SQL:2016 – Modern Features and JSON

SQL:2011 introduced temporal data support, allowing queries such as

SELECT * FROM customers AS OF SYSTEM TIME CURRENT_DATE - INTERVAL '3' DAY

, and enhanced indexing techniques. SQL:2016 added native JSON handling with functions JSON_VALUE, JSON_QUERY, JSON_OBJECT, JSON_ARRAY, the IS JSON predicate, and a standardized JSON path language.

SQL:2023 – The Latest Frontier

The newest standard brings property‑graph querying (SQL/PGQ), further expands native JSON support with types and functions such as JSON_SERIALIZE, JSON_SCALAR, and IS JSON, and simplifies many data‑processing syntaxes for easier authoring.

Overall, each iteration of the SQL standard has responded to emerging data‑management needs, from simple table manipulation to object‑relational features, advanced analytics, XML/JSON integration, temporal queries, and now graph‑style queries. Future directions may include vector indexes for high‑dimensional data and richer metric support, keeping SQL relevant in the era of AI‑driven data science.

References:

https://www.coginiti.co/blog/the-evolution-of-sql-from-sql-86-to-sql-2023/

https://dba.stackexchange.com/questions/30452/ansi-iso-plans-for-limit-standardization

https://wiki.postgresql.org/images/6/64/Fosdem20150130PostgresqlTemporal.pdf

https://en.wikipedia.org/wiki/SQL-92

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

SQLJSONXMLData ManagementDatabase StandardsSQL EvolutionTemporal Data
ITPUB
Written by

ITPUB

Official ITPUB account sharing technical insights, community news, and exciting events.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.