SQL

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 :

  1. 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".
  2. 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