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.
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 BY — ROLLUP, 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
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
ITPUB
Official ITPUB account sharing technical insights, community news, and exciting events.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
