Ce chapitre expose la partie du langage sql permettant de retrouver
des informations stockées dans une base de données. Il s'agit, comme
cela a déjà été dit, d'un langage déclaratif dont la syntaxe est très
simple (comme beaucoup de langages de ce type) ce qui permet de se
concentrer sur le problème à résoudre.
Les exemples cités dans ce chapitre ont tous été testés sous ORACLE , un des systèmes de gestion de bases de données relationnels les plus répandus sur le marché.
Ces exemples sont bâtis sur une base de données composée des deux relations suivantes :
NOM NUM FONCTION N_SUP EMBAUCHE SALAIRE COMM N_DEPT -------- ------ ------------- ------ --------- ------- ----- ------ MARTIN 16712 directeur 25717 23-MAY-90 40000 30 DUPONT 17574 administratif 16712 03-MAY-95 9000 30 DUPOND 26691 commercial 27047 04-APR-88 25000 2500 20 LAMBERT 25012 administratif 27047 14-APR-91 12000 20 JOUBERT 25717 president 10-OCT-82 50000 30 LEBRETON 16034 commercial 27047 01-JUN-91 15000 0 20 MARTIN 17147 commercial 27047 10-DEC-93 20000 500 20 PAQUEL 27546 commercial 27047 03-SEP-83 22000 2000 20 LEFEBVRE 25935 commercial 27047 11-JAN-84 23500 1500 20 GARDARIN 15155 ingenieur 24533 22-MAR-85 24000 10 SIMON 26834 ingenieur 24533 04-OCT-88 20000 10 DELOBEL 16278 ingenieur 24533 16-NOV-94 21000 10 ADIBA 25067 ingenieur 24533 05-OCT-87 30000 10 CODD 24533 directeur 25717 12-SEP-75 55000 10 LAMERE 27047 directeur 25717 07-SEP-89 45000 20 BALIN 17232 administratif 24533 03-OCT-87 13500 10 BARA 24831 administratif 16712 10-SEP-88 15000 30
N_DEPT NOM LIEU ------ -------------- ------------- 10 recherche Rennes 20 vente Metz 30 direction Gif 40 fabrication Toulon
La commande SELECT constitue, à elle seule, le langage permettant d'interroger une base de données. Elle permet :
Une interrogation, on parle plutôt de requête, est une combinaison d'opérations portant sur des tables (relations) et dont le résultat est lui-même une table dont l'existence est éphémère (le temps de la requête).
On peut introduire un commentaire à l'intérieur d'une commande sql en l'encadrant par /* */ .