SQL Tutorial · SQL Basics · Lesson 12 of 36

SQL History & Versions

How the relational model and SQL were invented at IBM, every SQL standard from SQL-86 to SQL:2023, the history and current versions of SQLite, PostgreSQL, MySQL and SQL Server, and how their SQL dialects differ.

How SQL started

In June 1970, Edgar F. Codd, a mathematician at IBM, published "A Relational Model of Data for Large Shared Data Banks". Instead of navigating records through pointers, as databases did then, he proposed storing data in tables (relations) and asking for it by describing what you want, not how to find it.

At IBM's San Jose lab, Donald Chamberlin and Raymond Boyce designed a language for Codd's model for the System R research project. It was called SEQUEL (Structured English Query Language) in 1974, and was renamed SQL because of a trademark conflict; many people still pronounce it "sequel". A small company that later became Oracle shipped the first commercial SQL database in 1979, before IBM's own SQL/DS (1981) and DB2 (1983).

SQL became an ANSI standard in 1986 and an ISO standard (ISO/IEC 9075) in 1987. Every major database implements the standard, but each adds its own functions and syntax, so in practice you write a dialect: SQLite, PostgreSQL, MySQL (and MariaDB), SQL Server's T-SQL, or Oracle's PL/SQL.

Timeline of the SQL standard

  1. SQL:2023Current
    • Property graph queries (SQL/PGQ), a native JSON data type, ANY_VALUE(), GREATEST() / LEAST(), underscores in numbers 1_000_000
  2. SQL:2016Published
    • JSON functions, row pattern recognition (MATCH_RECOGNIZE), LISTAGG()
  3. SQL:2011Published
    • Temporal tables: periods and system-versioned history
  4. SQL:2008Published
    • TRUNCATE, FETCH FIRST n ROWS ONLY, INSTEAD OF triggers
  5. SQL:2003Published
    • Window functions (ROW_NUMBER() OVER (...)), MERGE, sequences and identity columns, XML
  6. SQL:1999Published
    • Recursive queries (WITH RECURSIVE), triggers, the BOOLEAN type, user-defined types
  7. SQL-92Historic
    • The big expansion most databases still build on: JOIN ... ON, outer joins, CASE, more data types
  8. SQL-89Historic
    • Integrity constraints
  9. SQL-86Historic
    • The first ANSI standard (adopted by ISO in 1987)
  10. SEQUELHistoric
    • Chamberlin and Boyce design the language at IBM for System R
  11. Relational modelHistoric
    • Edgar F. Codd's paper introduces tables, keys and relational algebra

Timelines of the four main databases

SQLite

Created in 2000 by D. Richard Hipp while building software for a US Navy ship, so it would work without a database server. SQLite is a small C library that stores a whole database in one file. It is in the public domain and is the most widely deployed database in the world: every phone, every major browser and countless apps contain it.

  1. SQLite 3.54Current
    • The current 3.x release; SQLite 3 keeps its file format backward compatible
  2. SQLite 3.45Historic
    • JSONB: a binary JSON format for faster JSON functions
  3. SQLite 3.37Historic
    • STRICT tables that enforce column types
  4. SQLite 3.35Historic
    • RETURNING and ALTER TABLE ... DROP COLUMN
  5. SQLite 3.25Historic
    • Window functions (UPSERT with ON CONFLICT followed in 3.24)
  6. SQLite 3.0Historic
    • The file format still used today; Unicode text and better typing
  7. SQLite 1.0Historic
    • First release

PostgreSQL

Grew out of POSTGRES, started in 1986 by Michael Stonebraker at the University of California, Berkeley, as the successor to his Ingres database. In 1995 two students added an SQL interpreter (Postgres95), and in 1996 the project was renamed PostgreSQL. It is developed by a global open-source community and is known for standards compliance, extensibility and rich data types. A new major version ships every autumn and is supported for five years.

  1. PostgreSQL 18Current
    • Asynchronous I/O (up to 3× faster reads), skip scan on multicolumn indexes, uuidv7()
    • Virtual generated columns by default, OLD and NEW in RETURNING, OAuth sign-in, temporal constraints
  2. PostgreSQL 17Supported
    • JSON_TABLE(), MERGE ... RETURNING, incremental backups
  3. PostgreSQL 16Supported
    • SQL/JSON constructors such as JSON_OBJECT(), logical replication from standbys
  4. PostgreSQL 15Supported
    • The standard MERGE command
  5. PostgreSQL 14Supported until Nov 2026
    • Multirange types and JSON subscripting data['key']
  6. PostgreSQL 10End of life · Nov 2022
    • Declarative table partitioning and built-in logical replication; the first one-number version
  7. PostgreSQL 9.4Historic
    • JSONB: indexable binary JSON
  8. PostgreSQL 6.0Historic
    • The first release named PostgreSQL

MySQL

Created by Michael "Monty" Widenius, David Axmark and Allan Larsson at the Swedish company MySQL AB, and first released in 1995 (the "My" is Monty's daughter's name). Fast, easy and free, it became the "M" in the LAMP stack (Linux, Apache, MySQL, PHP) that powered the early web. Sun Microsystems bought MySQL in 2008 and Oracle acquired Sun in 2010; Monty then started the MariaDB fork, which stays largely compatible.

Since 2023, MySQL has two kinds of releases: LTS versions supported for about eight years, and short-lived Innovation releases with new features every quarter. In July 2026 Innovation releases switched to calendar versions (26.7 = 2026, July).

  1. MySQL 26.7Current
    • The first Innovation release with calendar versioning; a new change stream applier for multithreaded replication
  2. MySQL 9.7LTS until Apr 2034
    • The current LTS release, gathering the 9.x innovation features
  3. MySQL 9.0End of life · Oct 2024
    • The VECTOR data type; JavaScript stored programs (Enterprise Edition)
  4. MySQL 8.4LTS until Apr 2032
    • The first LTS release under the new model
  5. MySQL 8.0End of life · Apr 2026
    • Common table expressions (WITH), window functions, a transactional data dictionary, utf8mb4 by default
  6. MySQL 5.7End of life · Oct 2023
    • A native JSON data type and JSON functions
  7. MySQL 5.5Historic
    • InnoDB becomes the default storage engine (transactions and foreign keys by default)
  8. MySQL 1.0Historic
    • First internal release at MySQL AB

SQL Server

Microsoft's database began in 1989 as a joint product with Sybase for OS/2, and Microsoft took over its own development in the mid-1990s. Its SQL dialect is Transact-SQL (T-SQL). Microsoft supports each version for about ten years (five years of mainstream support, then extended security support), and since 2017 SQL Server also runs on Linux.

  1. SQL Server 2025Current
    • A native vector type and vector search, a native json type, regular expressions (REGEXP_LIKE(), REGEXP_REPLACE(), …)
    • String concatenation with ||, PRODUCT(), CURRENT_DATE, BASE64_ENCODE(), optimized locking
  2. SQL Server 2022Supported
    • GREATEST() / LEAST(), GENERATE_SERIES(), DATE_BUCKET(), IS [NOT] DISTINCT FROM, ledger tables
  3. SQL Server 2019Security fixes until Jan 2030
    • UTF-8 collations and intelligent query processing
  4. SQL Server 2017Security fixes until Oct 2027
    • Runs on Linux; STRING_AGG(), TRIM(), CONCAT_WS(), graph tables
  5. SQL Server 2016End of life · Jul 2026
    • JSON functions, temporal tables, STRING_SPLIT(), Query Store
  6. SQL Server 2012Historic
    • OFFSET ... FETCH paging, sequences, IIF(), CONCAT(), TRY_CONVERT(), LAG() / LEAD()
  7. SQL Server 2005Historic
    • TRY ... CATCH, ROW_NUMBER() and ranking functions, common table expressions
  8. SQL Server 1.0Historic
    • Released for OS/2 together with Sybase

How SQL modernized

  • From reports to analytics. Window functions (SQL:2003) and recursive CTEs (SQL:1999) turned SQL into a powerful analytics language. They are now available in all four databases (MySQL since 8.0, SQLite since 3.25).
  • Semi-structured data. JSON support (SQL:2016) and native JSON types (PostgreSQL's JSONB in 2014, MySQL 5.7 in 2015, SQL Server 2025) let one database hold relational and document data together.
  • AI and vectors. MySQL 9 and SQL Server 2025 added vector types for similarity search; PostgreSQL offers it through the popular pgvector extension.
  • Graph queries. SQL:2023 added SQL/PGQ, a standard way to query relationships as a graph.

How the dialects differ

Task SQLite PostgreSQL MySQL SQL Server
First 10 rows LIMIT 10 LIMIT 10 or FETCH FIRST 10 ROWS ONLY LIMIT 10 TOP (10) or OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY
Join strings a || b a || b CONCAT(a, b) a + b, CONCAT(a, b), or a || b (2025)
Auto-increment key INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY AUTO_INCREMENT IDENTITY(1,1)
Insert or update ON CONFLICT ... DO UPDATE ON CONFLICT ... DO UPDATE or MERGE ON DUPLICATE KEY UPDATE MERGE
Current date date('now') CURRENT_DATE CURDATE() CAST(GETDATE() AS date) or CURRENT_DATE (2025)
Booleans 0 / 1 boolean TINYINT(1) / BOOLEAN bit
JSON JSON functions (text or JSONB) json and jsonb types JSON type json type (2025)
Procedural code None PL/pgSQL Stored procedures T-SQL

Which one should you learn or use?

  • Learning SQL: start with SQLite (nothing to install; this tutorial runs it in your browser), then move to PostgreSQL. Standard SQL (SELECT, JOIN, GROUP BY, window functions) works almost the same everywhere.
  • New applications: PostgreSQL 18 is a great default; MySQL 8.4 or 9.7 LTS if your hosting or framework expects MySQL; SQL Server 2025 in Microsoft-centric environments; SQLite for mobile, desktop, embedded and small sites.
  • Keep databases on a supported version: PostgreSQL 14 reaches end of life in November 2026, and MySQL 8.0 already did in April 2026.

Official resources

Last reviewed 21 October 2026. Release and support dates come from the official release pages linked above.