Le langage SQL
Définition : SQL
SQL : LDD, LCD, LMD, LCT
SQL est un langage déclaratif, il n'est donc pas a proprement parlé un langage de programmation, mais plutôt une interface standard pour accéder aux bases de données.
Il est composé de quatre sous ensembles :
Le Langage de Définition de Données (LDD[4], ou en anglais DDL, Data Definition Language) pour créer et supprimer des objets dans la base de données (tables, contraintes d'intégrité, vues, etc.).
Exemple de commandes :
CREATE DROP ALTER
Le Langage de Contrôle de Données (LCD[5], ou en anglais DCL, Data Control Language) pour gérer les droits sur les objets de la base (création des utilisateurs et affectation de leurs droits).
Exemple de commandes :
GRANT REVOKE
Le Langage de Manipulation de Données (LMD[6], ou en anglais DML, Data Manipulation Language) pour la recherche, l'insertion, la mise à jour et la suppression de données. Le LMD est basé sur les opérateurs relationnels, auxquels sont ajoutés des fonctions de calcul d'agrégats et des instructions pour réaliser les opérations d'insertion, mise à jour et suppression.
Exemple de commandes :
INSERT UPDATE DELETE SELECT
Le Langage de Contrôle de Transaction (LCT, ou en anglais TCL, Transaction Control Language) pour la gestion des transactions (validation ou annulation de modifications de données dans la BD)
Exemple de commandes :
COMMIT ROLLBACK
Fondamental : Référence SQL : SQL-99 complete, really
Complément : Origine du SQL
Le modèle relationnel a été inventé par E.F. Codd (Directeur de recherche du centre IBM de San José) en 1970, suite à quoi de nombreux langages ont fait leur apparition :
IBM Sequel (Structured English Query Language) en 1977
IBM Sequel/2
IBM System/R
IBM DB2
Ce sont ces langages qui ont donné naissance au standard SQL, normalisé en 1986 au États-Unis par l'ANSI[8] pour donner SQL/86 (puis au niveau international par l'ISO[9] en 1987).
Complément : Versions de SQL
SQL-86 (ou SQL-87) : Version d'origine
SQL-89 (ou SQL-1) : Améliorations mineures
SQL-92 (ou SQL-2) : Extensions fonctionnelles majeures (types de données, opérations relationnelles, instruction LDD, transactions, etc.
SQL-99 (ou SQL-3) : Introduction du PSM[10] (couche procédurale sous forme de procédure stockées) et du RO[11]
SQL-2006 : Améliorations mineures (pour XML notamment)
SQL-2008 : Améliorations mineures (pour le RO notamment)
Remarque : Version SQL et implémentations SGBD
Selon leur niveau d'implémentation de SQL, les SGBD acceptent ou non certaines fonctions.
Certains SGBD ayant entamé certaines implémentations avant leur standardisation définitive, ces implémentations peuvent différer de la norme.