1.2.8. Langage SQL
Créé en 1974, normalisé depuis 1986, le
langage est reconnu par la grande majorité des systèmes de
gestion de bases de données relationnelles.
SQL (sigle de Structured Query
Language, en français langage de requête
structurée) est un langage informatique normalisé
servant à exploiter des bases de données relationnelles.
La partie langage de manipulation des données
de SQL permet de rechercher, d'ajouter, de modifier ou de supprimer des
données dans les bases de données relationnelles.
Outre le langage de manipulation des données, la partie
langage de définition des données permet de créer
et de modifier l'organisation des données dans la base de
données, la partie langage de contrôle de transaction
permet de commencer et de terminer des transactions, et la partie
langage de contrôle des données permet d'autoriser ou
d'interdire l'accès à certaines données à certaines
personnes.
1.2.8.1. Utilisation
Le langage SQL s'utilise principalement de trois manières
:
? un programme écrit dans un langage de programmation
donné utilise l'interface de programmation du SGBD pour lui transmettre
des instructions en langage SQL. Ces programmes utilisent des composants
logiciels tels que ODBC ou JDBC. Cette technique est utilisée par
l'invite de commande qui permet à un administrateur d'effectuer des
opérations sur les bases de données, opérations qu'il
décrit en SQL ;
? technique dite embedded SQL : des instructions en
langage SQL sont incorporées dans le code source d'un programme
écrit dans un autre langage ;
? technique des procédures stockées : des
fonctions écrites en langage SQL sont enregistrées dans la base
de données en vue d'être exécutées par le SGBD.
Cette
technique est utilisée pour les triggers -
procédures déclenchées automatiquement sur modification
du contenu de la base de données.
34
1.2.8.2. Syntaxe générale
Les instructions SQL s'écrivent d'une manière
qui ressemble à celle de phrases ordinaires en anglais. Cette
ressemblance voulue vise à faciliter l'apprentissage et la lecture.
C'est un langage déclaratif, c'est-à-dire qu'il
permet de décrire le résultat escompté, sans
décrire la manière de l'obtenir. Les SGBD sont
équipés d'optimiseurs de
requêtes - des mécanismes qui déterminent
automatiquement la manière optimale d'effectuer les
opérations, notamment par une estimation de la complexité
algorithmique. Celle-ci est fondée sur des statistiques
récoltées à partir des données contenues dans la
base de données (nombre d'enregistrements, nombre de valeurs distinctes
dans une colonne, etc.).
Les instructions SQL couvrent 4 domaines : Langage de
définition de données, Langage de manipulation de données,
Langage de contrôle de données, Langage de contrôle des
transactions.
a) Langage de manipulation de données
Les instructions de manipulation du contenu de la base de
données commencent par les mots clés SELECT, UPDATE, INSERT ou
DELETE qui correspondent respectivement aux opérations de recherche de
contenu, modification, ajout et suppression. Divers mots-clés tels que
FROM, JOIN et GROUP BY permettent d'indiquer les opérations
d'algèbre relationnelle à effectuer en vue d'obtenir le contenu
à manipuler.
b) Langage de définition de données
Les instructions de manipulation des
métadonnées - description de la structure, l'organisation et les
caractéristiques de la base de données - commencent avec les
mots-clés CREATE, ALTER, DROP, RENAME, COMMENT ou TRUNCATE qui
correspondent aux opérations d'ajouter, modifier,
supprimer, renommer, commenter ou vider une métadonnée. Ces mots
clés sont immédiatement suivis du type de
métadonnée à manipuler - TABLE, VIEW, INDEX...
c) Langage de contrôle de données et langage de
contrôle des transactions
Les mots clés GRANT et REVOKE permettent d'autoriser
des opérations à certaines personnes, d'ajouter ou de supprimer
des autorisations. Tandis que les mots clés COMMIT et ROLLBACK
permettent de confirmer ou annuler l'exécution de transactions.
La syntaxe de SQL fait l'objet de la norme ISO 9075. Cette
norme laisse la possibilité aux producteurs de SGBD d'y ajouter des
instructions spécifiques et non normalisées.
35
La norme a évolué au cours des années en
vue de s'adapter aux demandes, et les éditeurs de SGBD ont souvent
ajouté des possibilités à leurs produits avant que
celles-ci fassent objet de normes, ce qui provoque des variations dans la
compréhension et l'interprétation qui est faite d'un code source
en SQL par les différents logiciels de SGBD. Ces différences font
qu'un code source écrit sans précautions pour un SGBD
donné ne fonctionnera pas forcément avec un autre SGBD.
|