Le langage SQL

DéfinitionSQL

SQL[1] (pour langage de requêtes structuré) est un langage déclaratif destiné à la manipulation de bases de données au sein des SGBD[2] et plus particulièrement des SGBDR[3].

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

FondamentalRéférence SQL : SQL-99 complete, really

ComplémentOrigine 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émentVersions 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-2003 : Extensions XML[12]

  • SQL-2006 : Améliorations mineures (pour XML notamment)

  • SQL-2008 : Améliorations mineures (pour le RO notamment)

RemarqueVersion 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.