|
Padrões “clássicos” (SQL-86, 89, 92, 1999) SQL-86 (ANSI X3.135-1986 / ISO 9075:1987) Primeira padronização formal da linguagem SQL. Definia DDL e DML básicos (CREATE TABLE, SELECT, INSERT, UPDATE, DELETE), tipos escalares simples e controle de transações bem limitado. SQL-89 (ANSI X3.135-1989 / ISO/IEC 9075:1989) Revisão menor do SQL-86, focada em corrigir ambiguidades e melhorar consistência. Ampliou integridade (constraints), comandos de transação (COMMIT, ROLLBACK) e recursos de subconsultas básicas. SQL-92 (ANSI X3.135-1992 / ISO/IEC 9075:1992) Grande expansão da linguagem, muitas vezes tomada como “base” do SQL relacional. Introduziu novos tipos (DATE, TIME, TIMESTAMP, INTERVAL, VARCHAR), operadores de conjunto (UNION, UNION ALL), JOINs formais (INNER, LEFT, RIGHT, FULL OUTER - o CROSS foi adotado no padrão SQL:1999), expressões CASE, alteração de esquema (ALTER, DROP), níveis de isolação de transação e suporte mais rico a subconsultas. SQL:1999 (SQL-3) – ISO/IEC 9075:1999 Tornou o SQL mais “orientado a objetos” e mais procedural. Introduziu tipos definidos pelo usuário (UDT), consultas recursivas com WITH RECURSIVE, triggers, rotinas armazenadas (procedures e functions), controle de fluxo (IF, CASE, LOOP) e tabelas temporárias; estendeu GROUP BY com ROLLUP, CUBE e GROUPING SETS. |