SQL: 1999 - SQL:1999

SQL: 1999 (também chamado de SQL 3) foi a quarta revisão da linguagem de consulta de banco de dados SQL . Ele introduziu muitos recursos novos, muitos dos quais exigiam esclarecimentos no SQL: 2003 subsequente . Nesse ínterim, o SQL: 1999 está obsoleto.

Resumo

Os documentos da norma ISO foram publicados entre 1999 e 2002 em várias edições, a primeira composta por várias partes. Ao contrário das edições anteriores, o nome do padrão usava dois pontos em vez de um hífen para consistência com os nomes de outros padrões ISO . A primeira parcela do SQL: 1999 teve cinco partes:

Mais três partes, também consideradas parte do SQL: 1999 foram publicadas posteriormente:

Novas características

Tipos de dados

Tipos de dados booleanos

O padrão SQL: 1999 exige um tipo booleano, mas muitos servidores SQL comerciais ( banco de dados Oracle , IBM DB2 ) não o suportam como um tipo de coluna, tipo de variável ou o permitem no conjunto de resultados. O Microsoft SQL Server é um dos poucos sistemas de banco de dados que oferece suporte adequado aos valores BOOLEAN usando seu tipo de dados "BIT". Cada campo de 1 a 8 bits ocupa um byte completo de espaço no disco. O MySQL interpreta "BOOLEAN" como um sinônimo para TINYINT (inteiro assinado de 8 bits). PostgreSQL fornece um tipo booleano em conformidade com o padrão.

Tipos distintos de poder definidos pelo usuário

Às vezes chamados apenas de tipos distintos , eles foram introduzidos como um recurso opcional (S011) para permitir que os tipos atômicos existentes sejam estendidos com um significado distinto para criar um novo tipo e, assim, permitir que o mecanismo de verificação de tipo detecte alguns erros lógicos, por exemplo, adicionar acidentalmente um idade para um salário. Por exemplo:

create type age as integer FINAL;
create type salary as integer FINAL;

cria dois tipos diferentes e incompatíveis. Os tipos distintos de SQL usam equivalência de nome e não equivalência estrutural como typedefs em C. Ainda é possível realizar operações compatíveis em (colunas ou dados) de tipos distintos usando um tipo explícito CAST .

Poucos sistemas SQL suportam isso. O IBM DB2 é um dos que os apóia. No momento, o banco de dados Oracle não os oferece suporte, recomendando, em vez disso, emulá-los por um tipo estruturado de um só lugar .

Tipos estruturados definidos pelo usuário

Esses são o backbone da extensão de banco de dados relacional de objeto em SQL: 1999. Eles são análogos às classes em linguagens de programação orientadas a objetos . SQL: 1999 permite apenas herança única .

Expressões de tabela comuns e consultas recursivas

SQL: 1999 adicionou uma construção WITH [RECURSIVE] permitindo que consultas recursivas, como fechamento transitivo , sejam especificadas na própria linguagem de consulta; consulte as expressões de tabela comuns .

Alguns recursos OLAP

GROUP BY foi estendido com ROLLUP, CUBE e GROUPING SETS.

Controle de acesso baseado em função

Suporte total para RBAC via CREATE ROLE.

Palavras-chave

SQL: 1999 introduziu a palavra-chave UNNEST.

Referências

Leitura adicional