Sql cours

Disponible uniquement sur Etudier
  • Pages : 47 (11605 mots )
  • Téléchargement(s) : 0
  • Publié le : 2 mars 2013
Lire le document complet
Aperçu du document
Structured
Query
Language
Par Th. COSNUAU
 
 
 
Introduction
 
Un modèle de données est un ensemble de concepts et de règles de composition de ces concepts permettant de décrire des données.
Il existe principalement trois types de modèles :
* Le modèle hiérarchique
* Le modèle réseau
* Le modèle relationnel
 
Le modèle relationnel a été initié par CODD à IBM en 1970 maisfut surtout utilisé à partir des années 1980.
 
Le langage de manipulation de données relationnelles se compose d'un ensemble de commandes permettant d'interroger et de modifier une base de données.
Ce " langage de requête structuré " (SQL = Structured Query Language) est une évolution (1981) du langage SEQUEL d'IBM.
Il permet notamment d'exprimer de façon simple, des sélections, desprojections et des jointures.
On distingue trois sous ensembles :
* Le langage de description des données (LDD)
* Le langage de manipulation des données (LMD)
* La langage de spécification des contraintes d'intégrité (LSCI)
 
Le SQL est 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.
 * Tables utilisées dans les exemples
Les exemples cités dans ce document 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 :
* EMP (NOM, NUM, FONCTION, N_SUP, EMBAUCHE, SALAIRE, COMM, N_DEPT)
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 | président | | 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 | ingénieur | 24533 | 22-MAR-85 | 24000 | | 10 |
SIMON | 26834 | ingénieur | 24533 | 04-OCT-88 | 20000 | | 10 |DELOBEL | 16278 | ingénieur | 24533 | 16-NOV-94 | 21000 | | 10 |
ADIBA | 25067 | ingénieur | 24533 | 05-PCT-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 |
 
* DEPT (N_DEPT, NOM,LIEU)
N_DEPT | NOM | LIEU |
10 | recherche | Rennes |
20 | vente | Metz |
30 | direction | Gif |
40 | fabrication | Toulon |
 
 
La clause SELECT
La commande SELECT constitue, à elle seule, le langage permettant d'interroger une base de données. Elle permet :
* de sélectionner certaines colonnes d'une table : c'est l'opération de projection ;
*de sélectionner certaines lignes d'une table en fonction de leur contenu : c'est l'opération de restriction ;
* de combiner des informations venant de plusieurs tables : ce sont les opérations de jointure, union, intersection, différence relationnelle ;
* de combiner entre elles ces différentes opérations.
 
Une interrogation, on parle plutôt de requête, est une combinaison d'opérationsportant 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).
Note :
On peut introduire un commentaire à l'intérieur d'une commande SQL en l'encadrant par /* */ .
 
* Sélection de colonnes ou projection
La commande SELECT la plus simple a la syntaxe suivante :
SELECT *
FROM...
tracking img