SQL: 1999 - SQL:1999

SQL: 1999 (también llamado SQL 3) fue la cuarta revisión del lenguaje de consulta de la base de datos SQL . Introdujo muchas características nuevas, muchas de las cuales requirieron aclaraciones en el SQL posterior : 2003 . Mientras tanto, SQL: 1999 está en desuso.

Resumen

Los documentos de la norma ISO se publicaron entre 1999 y 2002 en varias entregas, la primera de las cuales consta de varias partes. A diferencia de las ediciones anteriores, el nombre de la norma utiliza dos puntos en lugar de un guión para mantener la coherencia con los nombres de otras normas ISO . La primera entrega de SQL: 1999 tenía cinco partes:

Tres partes más, también consideradas parte de SQL: 1999 se publicaron posteriormente:

Nuevas características

Tipos de datos

Tipos de datos booleanos

El estándar SQL: 1999 requiere un tipo booleano, pero muchos servidores SQL comerciales ( Oracle Database , IBM DB2 ) no lo admiten como tipo de columna, tipo de variable o lo permiten en el conjunto de resultados. Microsoft SQL Server es uno de los pocos sistemas de base de datos que admite correctamente los valores BOOLEAN utilizando su tipo de datos "BIT". Cada campo de 1 a 8 bits ocupa un byte completo de espacio en el disco. MySQL interpreta "BOOLEAN" como sinónimo de TINYINT (entero con signo de 8 bits). PostgreSQL proporciona un tipo booleano conforme al estándar.

Distintos tipos de energía definidos por el usuario

A veces llamados simplemente tipos distintos , estos se introdujeron como una característica opcional (S011) para permitir que los tipos atómicos existentes se extendieran con un significado distintivo para crear un nuevo tipo y, por lo tanto, permitir que el mecanismo de verificación de tipos detecte algunos errores lógicos, por ejemplo, agregar accidentalmente un edad a un salario. Por ejemplo:

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

crea dos tipos diferentes e incompatibles. Los tipos diferenciados de SQL utilizan equivalencia de nombre, no equivalencia estructural como typedefs en C. Todavía es posible realizar operaciones compatibles en (columnas o datos) de tipos distintos mediante el uso de un tipo explícito CAST .

Pocos sistemas SQL los admiten. IBM DB2 es uno de los que los respaldan. Actualmente, la base de datos de Oracle no los admite, por lo que se recomienda emularlos mediante un tipo estructurado de un solo lugar .

Tipos estructurados definidos por el usuario

Éstos son la columna vertebral de la extensión de la base de datos relacional de objetos en SQL: 1999. Son análogos a las clases en lenguajes de programación orientados a objetos . SQL: 1999 permite una única herencia .

Expresiones de tabla comunes y consultas recursivas

SQL: 1999 agregó una construcción WITH [RECURSIVE] que permite que las consultas recursivas, como el cierre transitivo , se especifiquen en el propio lenguaje de consulta; ver expresiones de tabla comunes .

Algunas capacidades OLAP

GROUP BY se amplió con ROLLUP, CUBE y GROUPING SETS.

Control de acceso basado en roles

Soporte completo para RBAC a través de CREATE ROLE.

Palabras clave

SQL: 1999 introdujo la palabra clave UNNEST.

Referencias

Otras lecturas