Le langage SQL
Cette présentation porte sur l'interrogation de bases de données avec le langage SQL. L'apprentissage du langage est facilité grâce au couplage avec un SGBD relationnel qui permet un traitement interactif des requêtes.
Pour un apprentissage plus approfondi du langage SQL, téléchargez IBEasy+, logiciel de conception, d'administration et d'utilisation de Bases de Données relationnelles.
Toutes les interrogations se rapportent à la base de données "ETUDIANTS" créée sous la rubrique Conception BD et dont le schéma de données est accessible au niveau de chaque requête interactive.
Caractéristiques du langage
SQL (Structured Query Language) est le langage unique qui permet de décrire, manipuler, contrôler l'accès et interroger les bases de données relationnelles.
C'est un langage déclaratif, qui s'adresse à la fois aux utilisateurs "novices" et aux programmeurs confirmés. Il est régi par une norme (ANSI/ISO) qui assure la portabilité du langage sur différentes plates-formes aussi bien matérielles que logicielles. Une commande SQL écrite dans un environnement Windows sous ACCESS peut, souvent sans modification, être utilisée directement dans un environnement ORACLE sous Unix...
Les commandes SQL
Catégorie | Commandes SQL |
Description des données (DDL) | |
CREATE | Création de tables |
ALTER | Modification de tables |
DROP | Suppression de tables |
Manipulation des données (DML) | |
INSERT | Insertion de lignes dans une table |
UPDATE | Mise à jour de lignes dans une table |
DELETE | Suppression de lignes dans une table |
Contrôle des données (DCL) | |
GRANT | Attribution de droits d'accès |
REVOKE | Suppression de droits d'accès |
COMMIT | Prise en compte des mises à jour |
ROLLBACK | Suppression des mises à jour |
Interrogation des données | |
SELECT | Interrogations diverses |
Nous ne traiterons dans cette présentation que des commandes liées à l'interrogation de données : clause SELECT.
Syntaxe de la commande SELECT
SELECT [DISTINCT] {* | expr [AS alias], ... }
FROM table [alias], ...
[WHERE { conditions | sous conditions}]
[GROUP BY expr, ...] [HAVING conditions]
[ORDER BY {expr | num}{ASC | DESC}, ...];
Conventions syntaxiques
MAJUSCULES : (SELECT ... ) Entrer les valeurs exactement comme présentées.
Italique : colonne, table. Paramètre devant être remplacé par la valeur appropriée.
Alias : Synonyme d'un nom de table ou de colonne.
Conditions : Expression prenant la valeur vraie ou fausse.
Sous conditions : Expression contenant une sous-interrogation.
Expr : Colonne, ou attribut calculé (+, -, *, /)
num : Numéro de colonne
{ } : Ex {ON|OFF}. Une des valeurs séparées par '|' doit obligatoirement être saisie.
[ ] : Valeur optionnelle.
( ) : Les parenthèses et les virgules doivent être saisies comme présenté.
... : Les valeurs précédentes peuvent être répétées plusieurs fois
_ Souligné : Indique la valeur par défaut.
Signification des différentes clauses
SELECT | Précise les colonnes qui vont apparaître dans la réponse |
FROM | Précise la (ou les) table intervenant dans l'interrogation |
WHERE | Précise les conditions à appliquer sur les lignes. On peut trouver : - Des comparateurs : =, >, <, >=, <=,<> - Des opérateurs logiques : AND, OR, NOT - Les prédicats : IN, LIKE, NULL, ALL, SOME, ANY, EXISTS... |
GROUP BY | Précise la (ou les) colonne de regroupement |
HAVING | Précise la (ou les) conditions associées à un regroupement |
ORDER BY | Précise l'ordre dans lequel vont apparaître les lignes de la réponse : - ASC : En ordre ascendant (par défaut) - DESC: En ordre descendant |
Apprentissage interactif de SQL
Pour faciliter la prise en main du langage, chaque chapitre se compose de 2 parties :
- Une partie "statique", illustrée par des requêtes "type" qui peuvent être saisies et exécutées à titre d'entrainement dans un cadre intitulé "Tester les exemples".
- Une partie "dynamique" constituée par un ensemble de questions permettant de vérifier les connaissances présentées. Ces questions sont signalées par un libellé "Q01…" et comportent un cadre permettant la saisie et l'exécution de la requête SQL correspondante ainsi qu'un bouton "Réponse".
Attention : Dans toutes les requêtes SQL le nom des tables doit être saisi en majuscules.
L'apprentissage est organisé en 6 parties :
1- Projection, sélection
2- Prédicats : NULL, IN, LIKE, BETWEEN
3- Jointures
4- Regroupements, fonctions COUNT, SUM, AVG, MIN, MAX
5- Sous-interrogations
6- Exercices récapitulatifs