SQL: 1999 - SQL:1999

SQL: 1999 (également appelé SQL 3) était la quatrième révision du langage de requête de base de données SQL . Il a introduit de nombreuses nouvelles fonctionnalités, dont beaucoup nécessitaient des clarifications dans le SQL suivant: 2003 . En attendant, SQL: 1999 est obsolète.

Résumé

Les documents normalisés ISO ont été publiés entre 1999 et 2002 en plusieurs tranches, la première comprenant plusieurs parties. Contrairement aux éditions précédentes, le nom de la norme utilisait un signe deux-points au lieu d'un trait d'union par souci de cohérence avec les noms d'autres normes ISO . La première tranche de SQL: 1999 comprenait cinq parties:

Trois autres parties, également considérées comme faisant partie de SQL: 1999 ont été publiées par la suite:

Nouvelles fonctionnalités

Types de données

Types de données booléens

La norme SQL: 1999 appelle un type booléen, mais de nombreux serveurs SQL commerciaux ( Oracle Database , IBM DB2 ) ne le prennent pas en charge en tant que type de colonne, type de variable ou ne l'autorisent pas dans l'ensemble de résultats. Microsoft SQL Server est l'un des rares systèmes de base de données qui prend correctement en charge les valeurs BOOLEAN en utilisant son type de données «BIT». Tous les champs de 1 à 8 bits occupent un octet complet d'espace sur le disque. MySQL interprète "BOOLEAN" comme un synonyme de TINYINT (entier signé 8 bits). PostgreSQL fournit un type booléen conforme standard.

Types de puissance distincts définis par l'utilisateur

Parfois appelés simplement des types distincts , ceux-ci ont été introduits comme une fonctionnalité facultative (S011) pour permettre aux types atomiques existants d'être étendus avec une signification distincte pour créer un nouveau type et permettant ainsi au mécanisme de vérification de type de détecter certaines erreurs logiques, par exemple l'ajout accidentel d'un l'âge à un salaire. Par example:

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

crée deux types différents et incompatibles. Les types distincts SQL utilisent l' équivalence de nom et non l' équivalence structurelle comme les typedefs en C. Il est toujours possible d'effectuer des opérations compatibles sur (colonnes ou données) de types distincts en utilisant un type explicite CAST .

Peu de systèmes SQL les prennent en charge. IBM DB2 est l'un de ceux qui les prennent en charge. La base de données Oracle ne les prend pas actuellement en charge, recommandant plutôt de les émuler par un type structuré à un seul endroit .

Types structurés définis par l'utilisateur

Il s’agit de l’épine dorsale de l’ extension de base de données relationnelle objet dans SQL: 1999. Ils sont analogues à des classes dans les langages de programmation orientée objet . SQL: 1999 n'autorise qu'un seul héritage .

Expressions de table courantes et requêtes récursives

SQL: 1999 a ajouté une construction WITH [RECURSIVE] permettant aux requêtes récursives, comme la fermeture transitive , d'être spécifiées dans le langage de requête lui-même; voir les expressions de table courantes .

Certaines fonctionnalités OLAP

GROUP BY a été étendu avec ROLLUP, CUBE et GROUPING SETS.

Contrôle d'accès basé sur les rôles

Prise en charge complète de RBAC via CREATE ROLE.

Mots clés

SQL: 1999 a introduit le mot clé UNNEST.

Les références

Lectures complémentaires