Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

CAHIER DE S. G. B. D (Système de Gestion Base de Données) Informatique de Gestion S 4

Télécharger au format doc, pdf ou txt
Télécharger au format doc, pdf ou txt
Vous êtes sur la page 1sur 45

CAHIER DE S. G. B.

D (Système de Gestion Base de Données)

INFORMATIQUE DE GESTION S 4
La normalisation se fait par deux approches

Par décomposition par synthèse

1 FN 2 FN 3 FN Algorithme de synthèse (BERSTEIN)

- Algorithme de synthèse

* Étape 01
Prendre tous les attributs isolés, en faire une relation, tous les attributs seront clé.

Exemple :

C A F

B
G H

(Les éléments isolés)


D

* Étape 02
Pour chaque D F de F, prendre les dépendances élémentaires.

Exemple :

On élimine E,A,B  F, elle est non élémentaire A  B

1
* Étape 03
Recherche d’une couverture minimale.

* Étape 04
Partitionné F) ont groupe donc : F)1, F)2, F)3,...,F)n, tel que toute les D F d’un même groupe en même
partie de gauche.

* Étape 05
Pour chaque groupe Fi (à partir de l’étape 04), construire un schéma Ri {xi}

2
CHAPITRE I : ALGÈBRE RELATIONNELLE (THÉORIQUE)

1 – Introduction
Le modèle relationnel présente plusieurs avantages dû au faite qu’il soit basé sur la théorie des ensembles,
des langages spécifiques permettrent de spécifier ce que l’on souhaite obtenir, le S. G. B. D est responsable
de la politique d’exécution des requêtes.

2 – Les langages algébriques


Les langages de manipulation des données (L. M. D) se composent d’un ensemble de commande
permettant d’interroger une BD, et d’un ensemble de commande permettant de la modifie.
La modification inclus, l’insertion, la M. A. J et la suppression, de là, les langages algébriques c’est des
langages fondés sur l’algèbre des opérateurs du modèle relationnel.

3 – Algèbre relationnelle
C’est le langage interne d’un S. G. B. D Relationnelle, le principe fondamental consiste à considérer
qu’une relation obtenue par application successive d’opérateur binaire ou unaire dont les opérandes sont
les relations de la base de donnée (elle est dite INTERROGATION THÉORIQUE).

4 – Les langages d’interrogations

4 – 1 – Langage d’interrogation théorique : Algèbre relationnelle


Les opérateurs de base sont de deux sortes :
 Les opérateurs ensemblistes.
 Les opérateurs spécifiques (Algébriques).

1 – Les opérateurs ensemblistes

a – UNION
Opérations portent sur deux relations R1 et R2 de même schéma, consistant à construire R3 de même
schéma ayant pour tuple ceux appartenant à R1 ou R2 ou aux deux relations.

NOTATION SCHÉMATIQUEMENT
R3 = UNION (R1, R2)
R3 = R1 R2 R3

R1 R2
Exemple :

R1 N° Nom Prénom R2 N° Nom Prénom


3 N3 P3 6 N6 P6
2 N2 P2 7 N7 P7
1 N1 P1

R1 (N°, Nom, Prénom) R2 (N°, Nom, Prénom)

3
Correction

R1 R2 N° Nom Prénom
3 N3 P3 R3 = R1 R2
2 N2 P2 R3 (N°, Nom, Prénom)
1 N1 P1
6 N6 P6 Insertion de nouveaux tuples.
7 N7 P7

b – DIFFÉRENCE
Opérations portent sur deux relations R1 et R2 de même schéma, le résultat est R3 de même schéma ayant
pour tuple ceux appartenant à R1 et n’appartenant pas à R2, cette opération est anticommutative.

NOTATION SCHÉMATIQUEMENT
R3 = DIFFÉRENCE (R1, R2)
R3 = R1 – R2 R3

R1 R2
Exemple :

R1 N° Nom Prénom R2 N° Nom Prénom


3 N3 P3 3 N3 P3
2 N2 P2 5 N5 P5
1 N1 P1

R1 (N°, Nom, Prénom) R2 (N°, Nom, Prénom)

Correction
R3 = R1 S R2
R1 S R2 N° Nom Prénom R3 (N°, Nom, Prénom)
2 N2 P2
1 N1 P1 Suppression de tuple.

c – INTERSECTION
Opérations consistant à rapprocher deux relations R1 et R2 en R3, l’intersection de R1 et R2 de même
schéma est une relation R3 de même schéma contenant les tuples appartenant à R1 et R2 en même temps.

NOTATION SCHÉMATIQUEMENT
R3 = INTERSECT (R1, R2)
R3 = R1 R2 R3

R1 R2

4
Exemple :

R1 Nom D. N ADR R2 Nom D. N ADR


N1 D. N 1 ADR 1 N2 D. N 2 ADR 2
N2 D. N 2 ADR 2 N4 D. N 4 ADR 4

R1 (Nom, D. N, ADR) R2 (Nom, D. N, ADR)

Correction

R1 R2 Nom D. N ADR R3 = R1 R2
N2 D. N 2 ADR 2 R3 (Nom, D. N, ADR)

2 – Les opérateurs spécifiques (Algébriques, unaires)

a - RESTRICTION
Opération sur une relation produisant une relation de même schéma mais ne comportant que les seuls
tuples vérifiant la condition précisée en opérande.

NOTATION SCHÉMATIQUEMENT
R' =  Q R
R' = RESTRICTION (R / Q) R'

R
Exemple :

R1 N° Nom D. N
1 Ali 1976
2 Mohamed 1980
3 Fatah 1971
4 Mohamed 1972

1) Donner la table qui marque D. N = 1976


2) Donner la table qui marque Nom = Mohamed et D. N = 1976

Correction
1)
R'

D. N = ‘1976’ R' N° Nom D. N


1 Ali 1976

5
2)
R'

D. N = ‘1976’ R' N° Nom D. N


Nom = ‘Mohamed’ 4 Mohamed 1976

La RESTRICTION réduit le nombre de tuples en fonction d’un critère noté : Q

b – PROJECTION (п)
Opération sur une relation consistant à composer une relation deux on enlevant à la relation initiale tous
les attributs non mentionné ont opérande on éliminant les tuples qui constitue des doublons.

NOTATION SCHÉMATIQUEMENT
R2 = PROJECTION (R1, ATTi, ..., ATTn)
R2 = Relation [ATTi, ..., ATTn] R2

Atti

Attn
R1
Exemple :

R N° Nom D. N
1 Ali 1976
2 Mohamed 1980
3 Fatah 1971
4 Mohamed 1972

1) Donner la PROJECTION de R sur D. N.


2) Donner la PROJECTION de R sur Nom.
3) Donner la PROJECTION de R sur Nom et D. N.

Correction
1) R2

D. N D. N
1976
1980
R1 1971
1972

2) R2

Nom Nom
Ali
Mohamed
R1
Fatah

3) R2
6
D. N Nom D. N
Nom Ali 1976
Mohamed 1980
R1 Fatah 1971
Mohamed 1972

c – JOINTURE
Opération consistant à rapprocher selon une condition les tuples de deux relations 1 et 2 afin de former une
relation 3 qui contient l’ensemble de tout les tuples obtenu on concaténant un tuple de 1 et un tuple de 2
vérifiant la condition de rapprochement (celle-ci est de type attribut 1 opérateur attribut 2).
La qualification (condition) : attribut commun entre les 2 relations.

NOTATION SCHÉMATIQUEMENT
JOIN (R1, R2, CONDITION)
R3 = R1 R2 R3
Q

Q [Attribut commun]
R1

R1 R2
Exemple :

Crédit Agence Prêt N° client Crédit Agence Prêt Prénom


Alger 3 3 1 Zoubiri Houcine
Kouba 2 2 2 Hadji Moussa
Kouba 1 1 3 Kafi Karim

R = Client Crédit
R3

N° client = N° client
R1

Client Crédit

R3 N° client Agence Prêt Nom Prénom


3 Alger 3 Kafi Karim
2 Kouba 2 Hadji Moussa
1 Kouba 1 Zoubiri Houcine

Exercice 1 : Soit le schéma de la relation


Voiture (N° voiture, matricule, date_achat, capacité).
Chauffeur (N° chauffeur, nom, prénom, DNS, date_recrutement, responsabilité).
Trajet (N° trajet, distance, ville_départ, ville_arrivée).
Permis (N° chauffeur, type_permis, date_obtention, lieu_obtention, nombre_max_personne).
Voyage (N° voyage, N° chauffeur, N° trajet, nb_personne, date_motif).

- Exprimer les requêtes suivantes an langage algébrique :

7
1 - Donner la liste des chauffeurs et des permis obtenus par ces chauffeurs (Nom, Prénom, Type de
permis).
2 - Lister la distance parcourue par le chauffeur N° 17 et ce depuis 01/01/1995 (>= à cette date).

Correction
1) R2

Nom
Prénom
Type_permis

R1

N° chauffeur = N° chauffeur

Chauffeur Permis

2) R3

Distance

R2

N° trajet = N° trajet

R1 Trajet

N° chauffeur = ‘17’
Date_motif M ‘01/01/1995’

Voyage (Restriction)

Exercice 2 : Soit le schéma relationnel


Fournisseur (Code_fournisseur, Nom_fournisseur, ville).
Vendre (Code_fournisseur, Code_produit, Prix_unitaire, Quantité_minimale, Délai).
Produit (Code_produit, Nom_produit, couleur, poids).

- Exprimer les requêtes suivantes en langage algébrique :


1 - Trouver le code des produits fournis par le fournisseur F2 (Code_fournisseur).
2 - Trouver le Nom des produits fournis par le fournisseur F2 (Code_fournisseur).
3 - Trouver les codes et les noms des fournisseurs de LONDON.
4 - Pour chaque produit indiquer le code produit et les noms des villes ou ce produit peut être obtenu.
Correction
8
1) R2

Code_produit

R1

Code_fournisseur = ‘F2’

Vendre

2) R3

Nom_produit

R2

Code_produit = Code produit

R1 Produit

Code_fournisseur = ‘F2’

Vendre

3) R2

Code_fournisseur
Nom_fournisseur

R1

Ville = ‘LONDON’

Fournisseur

4) R2
9
Code_produit
Ville

R1

Code_fournisseur = Code_fournisseur

Vendre Fournisseur

Exercice 3 : Soit le schéma relationnel


Ouvrage (N° ouvrage, Titre_ouvrage, Auteur_ouvrage, Éditeur_ouvrage, Type_ouvrage).
Abonnée (N° abonnée, Nom_abonnée, Prénom_abonnée, Adresse_abonnée, Catégorie_abonnée).
Emprunt (N° emprunt, N° ouvrage, N° abonnée, Date_emprunt).
Délai (Type_ouvrage, Délai_ouvrage).
Prix (Catégorie_abonnée, Prix_abonnée).

- Exprimer les requêtes suivantes en langage algébrique :


1 - Quelles sont les abonnées qui n’ont fait aucun emprunt ?
2 - Quelles sont les abonnées qui ont emprunté au moins un ouvrage ?
3 - Quels sont les ouvrages qui n’ont jamais été demandé par les abonnées ?
4 - Quel est le nom et le prénom des abonnés qui ont emprunté les mêmes ouvrages que l’abonné X ?

Exercice 4 : Soit le schéma relationnel :


Film (Titre, Durée, Nom_réalisateur, Salle).
Séance (Titre, Nom_séance, Version).
Joue (Titre, Nom_acteur).

- Exprimer les requêtes suivantes en langage algébrique :


1 - Quels sont les titres des films dont la durée est de 02 heures ?
2 - Quelle est la durée des films qui joue en version originale ?
3 - Qui est le réalisateur du film où joue TOM CRUISE ?
4 - Dans quelle salle le film (TOP GUN) est projeté ?

Exercice 5 : Soit la base de donnée suivante :


Artiste (Nom, Rôle).
Numéro (Titre, Nature, Nom_responsable).
Accessoire (Nom, Couleur, Volume, Camion).
Utilisation (Titre, Nom_utilisateur, Nom_accessoire).

Remarque :
 Le nom dans artiste est défini dans le même domaine que Nom_utilisateur.
 Nom dans accessoire est définie dans le même domaine que Nom_accessoire.

- Formuler en algèbre relationnelle :


1 - Nom des artistes dont le rôle est Jongleur et Nom des artistes qui utilisent des balles.
2 - Accessoire servant aux Jongleurs.
3 - Camion contenant les accessoires servant aux Jongleurs.
4 - La liste des accessoires non utilisés.

Exercice 6 : Soit le schéma relationnel relative à une BD sur la représentation musicale :


10
Représentation (N°représentation, Titre_représentation, Lieu).
Musicien (Nom, N° représentation).
Programmer (Date, N° représentation, Tarif).
1 - Donner la liste des titres des représentations.
2 - Donner la liste des titres des représentations ayant lieu à l’opéra BASTILLE.
3 - Donner la liste des noms des musiciens et des titres des représentations aux quelles ils participent.
4 - Donner la liste des titres des représentations, des lieux et des tarifs pour la journée du 14/09/1996.

Exercice 7 : Soit le schéma relationnel suivant :


Pilote (N° pilote, Nom, Ville_pilote).
Avion (N° avion, Nom_avion, Ville_avion).
Vol (N° vol, N° pilote, N° avion, Ville_départ, Ville_arrivée, Heure_départ, Heure_arrivée).
Exprimer en algèbre relationnelle :
1- Noms des pilotes qui assurent un vol au départ de PARIS.
2- Noms des pilotes qui conduisent un A 300.
3- Numéros et noms des pilotes qui conduisent un A 300 ou un B 400.
4- Numéros des avions qui ont les mêmes horaires de départ.
5- Numéros et noms des pilotes qui n’ont pas volés depuis la ville de VENISE.

Correction exercice 3
1/ R3

R1 R2

N° abonnée N° abonnée

Abonnée Abonnée

2/ R1

N° abonné

Emprunt

3/ R3
11

R1 R2

N° ouvrage N° ouvrage

Ouvrage Emprunt

4/ R6

R5

N° ouvrage = N° ouvrage

R4 Emprunt

R2 R3

N° ouvrage

R1 Emprunt

N° abonnée = ‘X’

Emprunt

Correction exercice 4
12
1/ R2

R1

Durée = ‘2 h’

Film

2/ R3

Durée

R2

Titre = Titre

R1 Film

Version = ‘Originale’

Séance
3/ R3

Nom_réalisateur

R2

Titre = Titre

R1 Film

Nom_acteur = ‘TOM CRUISE’

Joue
4/ R2
13
Salle

R1

Titre = ‘TOP GUN’

Film

Correction exercice 5
1/ R5

R3 R4

Nom Nom_utilisateur

R1 R2

Rôle = ‘Jongleur’ Nom_accessoire = ‘Balles’

Artiste Utilisation

2/ R3

Nom_accessoire

R2

Nom = Nom_utilisateur

R1 Utilisation

Rôle = ‘Jongleur’

Artiste
3/ R4
14
Camion

R3

Nom = Nom_accessoire

R2 Accessoire

R1 Utilisation

Rôle = ‘Jongleur’

Artiste

4/ R3

R1 R2

Nom Nom_accessoire

Accessoire Utilisation

Exercice 8 : Soit la BD suivante :


Employé (Matricule, Nom_employé, Poste, Date_embauche, Supérieur, Salaire, Commission,
Nom_département).
Département (Numéro_département, Nom_département, Lieu).
Projet (Code_projet, Nom_projet).
Participation (Matricule, Code_projet, Fonction).

- Exprimer en algèbre relationnelle les requêtes suivantes :

1) Matricule et nom des employés qui ont été embauché avant 01/01/1995.
15
2) Nom des employés avec le nom du département où ils travaillent.
3) Nom des employés qui ne participe a aucun projet.
4) Nom des départements qui ont des ingénieurs et des secrétaires.

Correction exercice 6
1°/ R1

Titre_représentation = Titre_représentation

Représentation

2°/ R2

Titre_représentation = Titre_représentation

R1

Lieu = ‘Opéra Bastille’

Représentation

3°/ R2

Nom
Titre_représentation

R1

N° représentation = N° représentation

Musicien Représentation

4°/ R3
16
Lieu
Titre_représentation
Tarif

R2

N° représentation = N° représentation

R1 Représentation

Date = ‘14/09/1996’

Programmer

Correction exercice 8
1°/ R2

Matricule
Nom_employé

R1

Date_embauche < ‘01/01/1995’

Employé

2°/ R2

Nom_employé
Nom_département

R1

N° département = N° département

Employé département

3°/ R4
17

R3 R2

Nom_employé Nom_employé

Employé R1

Matricule = Matricule

Employé Participation

4/ R7

N°_Département

R6

N°_Département = N°_Département

R5 Département

R3 R4

N°_Département N°_Département

R1 R2

Poste = ‘ingénieur’ Poste = ‘secrétaire’

Employé Employé
Correction exercice 7
18
1/ R3

Nom

R2

N°_Pilote = N°_Pilote

R1 Pilote

Ville_Départ = ‘Paris’

Vol

2/ R4

Nom

R3

N°_Pilote = N°_Pilote

R2 Pilote

N°_Avion = N°_Avion

R1 Vole

Nom_avion = ‘A300’

Avion

3/ R9
19
R7 R8

N°_Pilote N°_Pilote
Nom Nom

R5 R6

N°_Pilote = N°_Pilote N°_Pilote = N°_Pilote

R3 Pilote R4 Pilote

N°_Pilote = N°_Pilote N°_Avion = N°_Avion

R1 Vole R2 Vole

Nom_avion = ‘A300’ Nom_avion = ‘B400’

Avion Avion

4/
R2

N° Avion

R1

Heure_départ = ‘Même heure’

Vol

5/ R6
20

R2 R5

N°_Pilote
Nom

R1 R4

N°_Pilote = N°_Pilote N°_Pilote = N°_Pilote

Vole Pilote R3 Pilote

Ville_Départ = ‘VENISE’

Vole

CHAPITRE II : LE LANGAGE SQL ( STRUCTURED QUERY LANGUAGE )


21
Introduction
Le SQL (Structured Query Language) permet d’interroger une base de donnée et d’en modifier des
informations.
C’est un langage universel d’interrogation des bases de données qui permet à différent système d’échanger
des données entre eux, donc c’est un langage de manipulation de donnée (L. M. D).

1ère partie
On commence par les requêtes simples. Les requêtes d’interrogations sont représentés syntaxiquement
comme suit :

Syntaxe SELECT <Liste d’attribut> (Qu'est ce que je dois afficher ?)


de base
FROM <Relation ou Table> (Où cela se trouve t-il ?)

WHERE <Condition>

* La Clause SELECT
Cette clause permet d'indiquer quelles colonnes, ou quelles expressions doivent être retournées par
l'interrogation.

* La clause FROM
Elle donne la liste des tables participant à l'interrogation. Il est possible de lancer des interrogations
utilisant plusieurs tables à la fois. FROM table 1, table 2

* La Clause WHERE
Cette clause permet de spécifier quelles sont les lignes à sélectionner dans une table ou dans le produit
cartésien de plusieurs tables. Elle est suivie d'un prédicat (expression logique ayant la valeur vrai ou faux)
qui sera évalué pour chaque ligne. Les lignes pour lesquelles le prédicat est vrai seront sélectionnées.

Exemple 1 : Soit les 3 relations suivantes.


Élèves (Nom_élève, Adr_élève, Ville_élève).
Matières (Nom_mat, Coeff).
Notes (Nom_élève, Nom_mat, Date, Note).

Exemple 2 : Soit les 3 relations suivantes.


Fournisseurs (N°_F, Nom_F, Ville_F).
Pièces (N°_P, Nom_P, Poids, Ville_P, Matériaux).
Four_Pièces (N°_P, N°_F, Quantité).

1/ Sélection de toute les données

22
La forme la plus simple permet d’obtenir la liste complète des lignes d’une table.

Syntaxe :
SELECT *
FROM <Nom de la table> ;

Exemple : Donner la liste de tous les fournisseurs.


SELECT *

FROM Fournisseurs ;

Cette forme de requête est utile pour en revue une table.

2/ Sélection d’une partie des lignes


Il est possible de ne sélectionner que quelques lignes d’une table, l’utilisation dans ce cas, de la condition
WHERE.

Syntaxe :
SELECT *
FROM <Nom de la table>
WHERE <Condition> ;

Exemple 1 : Quel sont les fournisseurs d’alger.

SELECT *
FROM Fournisseurs
WHERE Ville_F = ‘ALGER’;

Exemple 2 : Donner la liste des élèves qui habit TOULON.

SELECT *
FROM élèves
WHERE Ville_F = ‘TOULON’ ;

Remarque : Dans la clause WHERE on peut avoir les opérations de comparaison


suivantes :
(≠ = ≥ ≤ > >), et les opérateurs logique (AND [et], OR [ou], NOT [non]).

Exemple : Donner les fournisseurs qui ont un Numéro > 120 et qui sont d’alger.

SELECT *
FROM Fournisseurs
WHERE N°_F > ‘120’ AND Ville_F = ‘ALGER’;

23
3/ Sélection d’une colonne spécifique
Il se peut qu’on ait besoin d’une partie de notre table, dans ce cas il suffit de citer les colonnes qui nous
intéressent.

Exemple 1 : Donner le nom et le numéro des fournisseurs d’alger.

SELECT Nom_F, N°_F


FROM Fournisseurs
WHERE Ville_F = ‘ALGER’ ;

Exemple 2 : Donner la liste des matières (Nom_mat) pour les quels l’élève ALI à eu au moins une note.

SELECT Nom_mat
FROM Notes
WHERE Nom_élève = ‘ALI’;

Exemple 3 : Donner la liste des Nom_élève habitant TOULON.

SELECT Nom_élève
FROM Élève
WHERE Ville_élève = ‘TOULON’ ;

Remarque : Dans la clause WHERE, on peut utilisé que des propriétés qui sont dans la
table sélectionné.

4/ Jointure
Pour une recherche plus complexe faisaient intervenir plusieurs relations, on utilise les opérations
d’appartenance qui sont : (IN, NOT IN, COUNTAINE, DOESEN’T COUNTAINE).

Exemple :
* On imbriquant des blocs de SELECT avec des relations différentes :
SELECT Attribut
FROM Table
WHERE Condition IN (NOT IN) SELECT Attribut
FROM Table
WHERE Condition ;

24
Exemple : Donner les Nom_F qui fournisse la pièce P2 (N°_P).

R3

Nom_F

R2

N°_F = N°_F

R1 Fournisseurs

N°_P = ‘P2’

Four_Pièce

SELECT Nom_F
FROM Fournisseurs
WHERE N°_F IN SELECT N°_F
FROM Four_Pièce
WHERE N°_P = ‘P2’;

* On imbriquant des blocs de SELECT en utilisant les mêmes relations :

Exemple : Donner les N°_f qui fournissent au moins une pièce fournis par F2 (N°_F).

R3

N°_F

R2

N°_F = N°_F

R1 Four_Pièce

N°_F = ‘F2’

25
Four_Pièce

SELECT N°_F
FROM Four_Pièce
WHERE N°_F IN SELECT N°_F
FROM Four_Pièce
WHERE N°_F = ‘F2’;

* Variables synonymes
Il est préférable d’utiliser des variables synonymes pour lever certaine ambiguïté.

SELECT N°_F
FROM Four_Pièce (X)
WHERE N°_F IN SELECT N°_F
FROM Four_Pièce (Y)
WHERE N°_F = ‘F2’;

* Autre manière d’exprimer la jointure

SELECT N°_F
FROM Four_Pièce X, Four_Pièce Y
WHERE X.N°_F = Y.N°_F AND Y.N°_F = ‘F2’;

SELECT Nom_F
FROM Fournisseurs X, Four_Pièce Y
WHERE X.N°_F = Y.N°_F AND Y.N°_P = ‘P2’;

Exemple :
Client (Nom_cl, Adr_cl, ville_cl, Code_commerciaux).
Commerciaux (Code_com, Nom_com).

SELECT Nom_cl, Nom_com


FROM Client X, Commerciaux Y
WHERE X.Code_commerciaux = Y.Code_com ;

* Les requêtes multiples


Soit 4 tables :

Élèves (Ref_élv, Nom_élv,Prénom_élv, Ville_élv, Classe_élv).


Classes (Nom_classe, Niveau).
Cours (Ref_élv, Nom_matière, Nbre_heure).
Matières (Nom_matière).

26
* Les requêtes où les données sélectionnées sont dans plusieurs tables

1°/ Donner la liste des noms des élèves avec leur niveau.

Remarque : Classe_ élv et Nom_classe sont différent dans le même domaine.

SELECT Nom_élv, Niveau


FROM élèves X, Classe Y
WHERE X.Classe_élv = Y.Nom_classe ;

2°/ Donner la liste des Noms élèves et le Nom des cours qu’ils suivent pendant plus de 3 heures.

SELECT Nom_élv, Nom_matière


FROM élèves X, Cours Y
WHERE X.Ref_élv = Y.Ref_élv AND Y.Nbre_heure > ‘3’ ;

* Les requêtes où les données proviennent d’une table mais où la condition et faite sur une table
différente

1°/ Donner les Nom élèves qui font de la peinture pondant plus de 2 heures.

1er cas
SELECT Nom_élv
FROM élèves
WHERE Ref_élv IN SELECT Ref_élv
FROM cours
WHERE Nom_matière = ‘Peinture’ AND Nbre_heure = ‘2’ ;

2ème cas
SELECT Nom_élv
FROM Cours
WHERE ((Nom_matière = ‘Peinture’) AND (Nbre_heure > ‘2’) AND Ref_élv) IN SELECT Ref_élv
FROM élèves ;

2°/ Donner la liste des Noms des élèves de 1er (Niveau).


SELECT Nom_élv
FROM élèves
WHERE Classe_élv IN SELECT Nom_classe
FROM Classes
WHERE Niveau = ‘1er’ ;

27
5/ Les opérateurs d’appartenance

* BETWEEN (entre)
S’utilise avec la clause WHERE.

Syntaxe :
<Expression 1> BETWEEN <Expression 2> AND <Expression 3>

Exemple : Donner le nom des fournisseurs dont le code et compris entre 15 et 30 et résident à Alger.

SELECT Nom_F
FROM Fournisseurs
WHERE Code_F BETWEEN ‘15’ AND ‘30’ AND Ville_F = ‘ALGER’ ;

* IN
Permet de tester la présence d’une valeur particulière dans un ensemble.

Syntaxe :
<Expression 1> IN {Expression 2, Expression 3, …}

Exemple : Donner le Nom des pièces qui sont en fer ou zinc.

SELECT Nom_P
FROM Pièce
WHERE Matériaux IN {zinc, fer} ;

6 / Trier des lignes (ORDER BY)


La commande SQL qui permet de trier l’affichage des lignes par rapport à un attribut est ORDER BY
(ordonnée selon).
Par défaut le tri et ascendant ASC, si on veut avoir un tri descendant, on rajoute la commande DESC.

Exemple 1 : Donner la liste des matières dans l’ordre alphabétique.

SELECT Nom_matière
FROM Matière
ORDER BY Nom_matière [A → Z] ;

Exemple 2 : Donner la liste des matières par ordre décroissant de coefficient puis par ordre alphabétique
des Nom.

SELECT Nom_matière
FROM Matières
ORDER BY Nom_matière, Coefficient DESC ;

28
* LIKE (comme)

Syntaxe :
Expression LIKE Chaîne

Les méthodes de recherche SQL nous permettent d’utiliser le joker ‘–’ pour remplacer n’importe quel
caractère unique et le joker ‘%’ pour remplacer n’importe quel nombre de caractère.

Exemple 1 : Donner le nom du fournisseurs et numéro du fournisseurs tel que le nom du fournisseurs :
◈ Commence par S.
◈ Contient un S.
◈ Se termine par un S.
◈ Deuxième position un S.
◈ Un S en sixième position.
◈ Ne contient pas un S.

SELECT Nom_F, N°_F


FROM Fournisseurs
WHERE Nom_F LIKE 'S%'
Nom_F LIKE '%S%'
Nom_F LIKE '%S'
Nom_F LIKE '–S%'
Nom_F LIKE '– – – – –S%'
Nom_F NOT LIKE '%S%' ;

Exemple 2 : Donner la liste des élèves dont le nom commence par 'c' ou 'C'.

SELECT *
FROM Élèves
WHERE Nom_élv LIKE 'c%' OR 'C%' ;

Exercice 1 : Soit le schéma de la relation


Voiture (N° voiture, matricule, date_achat, capacité).
Chauffeur (N° chauffeur, nom, prénom, DNS, date_recrutement, responsabilité).
Trajet (N° trajet, distance, ville_départ, ville_arrivée).
Permis (N° chauffeur, type_permis, date_obtention, lieu_obtention, nombre_max_personne).
Voyage (N° voyage, N° chauffeur, N° trajet, nb_personne, date_motif).

1 - Donner la liste des chauffeurs et des permis obtenus par ces chauffeurs (Nom, Prénom, Type de
permis).
2 - Lister la distance parcourue par le chauffeur N° 17 et ce depuis 01/01/1995 (>= à cette date).

Correction
1°/
SELECT Nom, Prénom, Type_permis
FROM Chauffeur X, Permis Y
WHERE X.N°_chauffeur = Y.N°_chauffeur ;

29
2°/
SELECT Distance
FROM Trajet
WHERE N°_trajet IN SELECT N°_trajet
FROM Voyage
WHERE N°_chauffeur = '17' AND Date_motif >= '01/01/1995' ;

* DISTINCT
Cette commande permet de supprimer les lignes redondantes.

Exemple 1 : Soit la table élève


Élèves (Nom_élève, Adr_élève, Ville_élève).

Donner la liste des villes où habitent les élèves.

SELECT DISTINCT Ville_élève


FROM élèves ;

Exemple 2 : Soit la relation


Acomptes (Date_acompte, Nom_ouvrier, Montant).

Donner la liste des acomptes versés entre '01/01/98' et '28/02/98'

SELECT *
FROM Acomptes
WHERE Date_acompte BETWEEN '01/01/98' AND '28/02/98' ;

7 / UNION en SQL
L’union de deux relations R et S de même schéma est une relation T de même schéma tel que :

T = UNION (R, S)

Exemple 1 : Donner les N°_F et Nom_F des fournisseurs qui fournissent la pièce P1 ou P2.

SELECT N°_F, Nom_F


FROM Fournisseurs
WHERE N°_P = 'P1'
UNION
SELECT N°_F, Nom_F
FROM Fournisseurs
WHERE N°_P = 'P2' ;

30
Exemple 2 : Soit la relation
Commande (N°_C, Nom_C, Nom_P, Quantité).
Fourniture (Nom_P, Nom_F, Prix).

Nom_C c'est le nom de commanditaire.


* Requête : Donner les Nom_P qui coûte plus de 10000 DA ou ceux qui en été commander par ALI.

SELECT Nom_P
FROM Fourniture
WHERE Prix > '10000'
UNION
SELECT Nom_P
FROM Commande
WHERE Nom_C = 'ALI' ;

Remarque : L'union élimine les dupliqués, pour les gardés, on utilise l'opération UNION
ALL.

8 / INTERSECTION en SQL
L’intersection de deux relations R et S de même schéma est une relation T de même schéma tel que :

T = INTERSECT (R, S)

Les deux relations sont deux blocs de SELECT.

Exemple 1 : Donner les N°_P et Nom_P des pièces fournis par le fournisseur F1 et F2 avec une quantité
égale à 100.

SELECT N°_P, Nom_P


FROM Pièce X
WHERE X.N°_P IN SELECT Y.N°_P
FROM Four_pièce Y
WHERE Y.Quantité = '100' AND Y.N°_F = 'F1'
INTERSECT

SELECT N°_P, Nom_P


FROM Pièce Z
WHERE Z.N°_P IN SELECT T.N°_P
FROM Four_pièce T
WHERE T.Quantité = '100' AND T.N°_F = 'F2' ;

31
Exemple 2 : Soit la relation
Employé (N°_emp, Nom_emp, N°_départ, Salaire).
Département (N°_départ, Nom_départ, Localité).

Donner les N°_départ ayant des employés qui gagne plus de 1000 € et qui ce trouve à paris.
SELECT N°_départ
FROM Employé
WHERE Salaire > '1000 €'

INTERSECT

SELECT N°_départ
FROM Département
WHERE Nom_départ = 'PARIS' ;

9 / La différence en SQL (MINUS)


La différence de deux relations R et S de même schéma est une relation T de même schéma tel que :

T = MINUS (R, S)

En SQL, R et S sont deux blocs de SELECT.

Exemple 1 : Donner les N°_F et Nom_F des fournisseurs qui non jamais fournit de pièce.

SELECT N°_F, Nom_F


FROM Fournisseurs

MINUS

SELECT N°_F, Nom_F


FROM Fournisseurs X, Four_pièce Y
WHERE X.N°_F = Y.N°_F ;

Exemple 2 : Donner les N°_départ sans employé.

SELECT N°_départ
FROM Département

MINUS

SELECT N°_départ
FROM Employé ;

32
Remarque : La différence élimine les dupliqués, pour les gardés, on utilise l'opération
MINUS ALL.

* Les fonctions de calcul


COUNT, SUM, AVG, MIN, MAX

1°/ La somme (SUM)

Syntaxe :
SUM (Expression)

Effectue la somme des valeurs de la colonne.

Exemple 1 : Donner le N°_F et la somme des quantités fournis par F2.

SELECT N°_F, SUM(Quantité)


FROM Four_pièce
WHERE N°_F = 'F2' ;

Exemple 2 : Donner la quantité totale des briques commandées.

SELECT SUM(Quantité)
FROM Commande
WHERE Nom_P = 'Brique' ;

Remarque : La fonction SUM est retrouvée : 1) Comme projection (SELECT)


2) Comme condition (WHERE)

Exemple 3 : Donner tous les produits dont la quantité = 100.

SELECT Nom_P
FROM Commande
WHERE SUM(Quantité) = '100' ;

2°/ La moyenne (AVG)

Syntaxe :
AVG (Expression)

Effectue la moyenne des valeurs de la colonne.

Exemple 1 : Donner le poids moyen des pièces P1 et P2.

SELECT AVG(Poids)
FROM Pièce
WHERE N°_P = 'P1' AND N°_P = 'P2' ;

Exemple 2 : Donner le coût moyen des briques fournis.


33
SELECT AVG(Prix)
FROM Fourniture
WHERE Nom_P = 'Brique' ;
3°/ Le comptage (COUNT)

Syntaxe :
COUNT (Expression)

Compte le nombre de valeur d'une colonne ou des lignes.


COUNT(*) permet de compter les lignes sans condition sur un attribut.

Exemple 1 : Donner le nombre de fournisseur d'Alger.

SELECT COUNT(*)
FROM Fournisseurs
WHERE Ville_F = 'ALGER' ;

4°/ Le maximum (MAX)

Syntaxe :
MAX (Expression)

Sélectionne le maximum des valeurs de la colonne.

Exemple 1 : Donner le N°_P qui à le poids maximum.

SELECT N°_P
FROM Pièce
WHERE MAX(Poids) ;

5°/ Le minimum (MIN)

Syntaxe :
MIN (Expression)

Sélectionne le minimum des valeurs de la colonne.

Exemple 1 : Donner le N°_F et Nom_F qui fournis le moins de pièces.

SELECT N°_F, Nom_F


FROM Fournisseurs
WHERE N°_F IN SELECT N°_F
FROM Four_pièce
WHERE MIN(Quantité) ;

* La clause GROUP BY

Syntaxe :
GROUP BY (Nom Attribut)
34
Il est possible de subdiviser la table en groupe, chaque groupe étant l'ensemble de ligne ayant une valeur
commune.

Exemple 1 : Donner le nombre de fournisseur par ville.

SELECT Ville_F, COUNT(*) AS Nombre


FROM Fournisseurs
GROUP BY Ville_F ;

Remarque : L'attribut de GROUP BY est toujours affiché dans SELECT.

Exemple 2 : Donner le N°_F et la quantité moyenne fournis par chaque fournisseur.

SELECT N°_F, AVG(Quantité) AS Moyenne


FROM Four_pièce
GROUP BY N°_F ;

Exemple 3 : Donner le N°_F et la quantité moyenne la plus basse fournis par les fournisseurs.

SELECT N°_F, MIN(AVG(Quantité) AS Minimum


FROM Four_pièce
GROUP BY N°_F ;

35
Série d'exercice N° 2

Exercice 01 : Soit la base de données de gestion des livres et disques dans une médiathèque :
Disque (code_ ouvrage, titre, style, pays, année, producteur)
État_disque (code_ ouvrage, N°_exemplaire, date_ achat, état)
Livre (code_ ouvrage, titre, genre, éditeur, collection)
État_ livre (code_ ouvrage, N°_exemplaire, date_ achat, état)
Auteur (code_ ouvrage, identité)
Adonnée (N°_adonnée, nom, prénom, rue, ville, code_ postale, téléphone)
Prêt (code_ouvrage, N°_exemplaire, N°_adonné, date_prêt)
Personnel (N°_exemplaire, nom, prénom, fonction, salaire)

Exprimer en SQL les requêtes suivantes :


1) Quel est le contenu de la relation Livre ?
2) Quels sont les titres des romans édités par FLAMMON ?
3) Quels est l'identité des auteurs qui ont fait des disques et écrits des livres ?
4) Quel est le salaire des membres du personnel gagnant plus de 1500 € en ordonnant le résultat par
salaire descendant et par nom ascendant ?
5) Donner le nombre de prêt en cours pour chaque famille en considérant qu'une famille regroupe des
personnes de même nom et possédant le même N° téléphone.
6) Quel est le nombre de disques acheté en 1998 ?
7) Quels sont les codes des ouvrages des livres pour lesquels il y a au moins un exemplaire emprunté et au
moins un exemplaire disponible ?

Correction
1°/ SELECT *
FROM Livre ;

2°/ SELECT Titre


FROM Livre
WHERE genre = ‘ROMAN’ AND éditeur = ‘FLAMMON’ ;

3°/ SELECT Identité


FROM Disque
WHERE Code_ouvrage IN SELECT Code_ouvrage
FROM Auteur
INTERSECT
SELECT Identité
FROM Livre
WHERE Code_ouvrage IN SELECT Code_ouvrage
FROM Auteur ;

4°/ SELECT salaire

36
FROM Personnel
WHERE salaire > ‘1500 €’
ORDER BY salaire DESC, nom ASC ;

5°/ SELECT nom, N°_téléphone, COUNT (*) AS nombre_prêt


FROM Abonnée X, Prêt Y
WHERE X.N°_abonnée = Y.N°_abonnée
ORDER BY nom, N°_téléphone ;

6°/ SELECT COUNT (*) AS nombre_disque


FROM état_disque
WHERE date_achat LIKE ‘ ??/ ??/1998’
ORDER BY salaire DESC, nom ASC ;

OU

SELECT COUNT (*) AS nombre_disque


FROM Disque
WHERE année = ‘1998’ ;

7°/ SELECT code_ouvrage


FROM Livre
INTERSECT
SELECT code_ouvrage
FROM Prêt X, état_livre Y
WHERE X.code_ouvrage = Y.code_ouvrage ;

Exercice 03 : Soit la base de données gestion cinéma :


Programme (Cinéma, film, nbre_place, prix)
Information (Film, acteur, durée, nationalité, version)
Avantage (acteur, nombre_film_par_an, gain_par_an)
Cinéma (Cinéma, ville_cinéma)
Restaurant (Restaurant, ville_restaurant, spécialité, prix_moyen)

Exprimer en SQL les requêtes suivantes :


1) Les restaurants ayant les prix moyens les plus élevés.
2) Liste des prix moyens par spécialité.
3) La durée moyenne des films projetés dans les cinémas de la ville d’oran.

Correction
1°/ SELECT (*)
FROM Restaurant
WHERE MAX (Prix_moyen) ;

2°/ SELECT prix_moyen, spécialité


37
FROM Restaurant
GROUP BY spécialité ;

3°/ SELECT AVG (Durée)


FROM Information X, Programme Y
WHERE ((X.film = Y.film) AND Y.cinéma) IN SELECT cinéma
FROM cinéma
WHERE ville_cinéma = ‘ORAN’ ;

Exercice 04 : Soit la base de données MÉDECIN :


Consultation (N°_consultation, Date_consultation, Code_patient).
Patient (Code_patient, Nom_patient, Adresse).
Maladie (N°_consultation, N°_maladie, Symptômes_maladie, observation).

Exprimer en SQL les requêtes suivantes :


1) Afficher les N°_consultations effectuées par la patient N° 852 sur les cinq dernières années.
2) Afficher le nombre de consultation effectué pendant les mois de l’année 1999.
3) Afficher le nombre de consultation effectué par chacun des clients pendants les 5 dernières.
4) Lister les N° de maladies, les codes_patients et leurs dates de détection concernant les maladies ayant
pour symptômes la fièvre.

Correction
1°/ SELECT N°_consultation
FROM Consultation
WHERE Code_patient = ‘852’ AND Date_consultation BETWEEN ‘--/--/2001’ AND ‘--/--/2006’ ;

2°/ SELECT COUNT (*) AS Nombre_consultation


FROM Consultation
WHERE Date_consultation LIKE ‘--/--/1999’ ;

3°/ SELECT Code_patient, COUNT (*) AS Nombre_consultation


FROM Consultation
WHERE Date_consultation < ‘--/--/2001’ OR Date_consultation <= ‘31/12/2000’
GROUP BY Code_patient ;

4°/ SELECT N°_maladie, Code_patient, Date_consultation


FROM Maladie X, Consultation Y
WHERE (X.N°_consultation = Y.N°_consultation) AND (Y.symptômes_maladie = ‘Fiévre’) ;

Exercice 05 : Soit la base de données gestion scolarité :


Enseignant (N°_SS, Nom_enseignant, Prénom_enseignant, Adresse).
Étudiant (Matricule, Nom_étudiant, Prénom_étudiant, Date_naissance).
Module (Code_module, Intitulé).
Ens_module (N°_SS, Code_module).
Étud_module (Matricule, Code_module, Note).

38
Où :

Ens_module : déterminer pour chaque enseignant les modules qu’il assure.


Étud_module : déterminer pour chaque étudiant les modules qu’il suit ainsi que ses notes.
Exprimer en SQL les requêtes suivantes :
1) Donner le contenu de la table MODULE.
2) Quels sont les noms des étudiants qui ont une note >= 10 ?
3) Quels sont les noms des modules qui prennent la lettre ‘M’ en deuxième position et sont assurés par
BENABDELLAH Nourredine ?
4) Quels sont les noms des étudiants qui ont une note entre ‘10’ et ‘15’ ?
5) Quels sont les numéros de sécurité sociale des enseignants qui n’assurent aucun module ?
6) Quel est l’enseignant qui assure le plus de module ?
7) Donner la moyenne des notes du module codé S.G.F ?
8) Quels sont les modules assurés par enseignant ?

Correction
1°/ SELECT *
FROM Module ;

2°/ SELECT Nom_étudiant


FROM Etudiant
WHERE Matricule IN SELECT Matricule
FROM Etud_module
WHERE Note >= ‘10’ ;

3°/ SELECT Intitule


FROM Module X, Enseignant Y, Ens_module Z
WHERE X.Code_module = Z.Code_module AND Y.N°SS = Z.N°SS
AND
X.Intitulé LIKE ‘–M%’
AND
Y.Nom_enseignant = ‘BENABDELLAH’ ;

4°/ SELECT Nom_étudiant


FROM Etudiant
WHERE Matricule IN SELECT Matricule
FROM Etud_module
WHERE Note BETWEEN ‘10’ AND ‘15’ ;

5°/ SELECT N°SS


FROM Enseignant
MINUS
SELECT N°SS
FROM Ens_module ;

39
6°/ SELECT Nom_enseignant
FROM Enseignant
WHERE N°SS IN SELECT N°SS
FROM Ens_module
WHERE MAX (COUNT (Code_module)) ;

7°/ SELECT AVG (Note) AS Moyenne


FROM Etud_module
WHERE Code_module IN SELECT Code_module
FROM Module
WHERE Intitulé = ‘SGF’ ;

8°/ SELECT Intitulé, Nom_enseignant


FROM Module X, Enseignant Y, Ens_module Z
WHERE X.Code_module = Z.Code_module AND Z.N°SS = Y.N°SS
GROUP BY Nom_enseignant ;

Exercice 06 : Soit la base de données SKI :


Compétition (Réf_compétition, Date_compitition, Nom_station).
Station (Nom_station, Altitude_station, Pays_station, Capacité_station).
Classement (Réf_compétition, Nom_skieur, Rang).
Skieurs (Nom_skieur, Spécialité, Nom_station).

Exprimer en SQL les requêtes suivantes :


1) Donner la liste des stations où une compétition à été organisée.
2) Donner la liste des stations d’où un skieur est originaire.
3) Dans quelle station « TOMBA » a-t-il été classé premier ou deuxième.
4) Donner l’altitude et la capacité des stations où se déroulent « comp3 » et « comp4 ».
5) Indiquer l’altitude et la station d’origine de toutes les spécialités de « BOSSES ».
6) Nombre moyen de participant aux compétitions se déroulant à « TIGNES ».
7) Donner le nombre de compétition se déroulant dans chaque station.
8) Donner le meilleur et le plus mauvais classement pour tous les skieurs de « TIGNES ».

Correction
1°/ SELECT Nom_station
FROM Compétition ;

2°/ SELECT Nom_station


FROM Skieurs ;

40
3°/ SELECT Nom_station
FROM Skieur X, Classement Y
WHERE X.Nom_skieur = ‘TOMBA’ AND Y.rang = ‘1’
UNION
SELECT Nom_station
FROM Skieur Z, Classement T
WHERE Z.Nom_skieur = ‘TOMBA’ AND T.rang = ‘2’ ;

4°/ SELECT Altitude_station, Capacité_station


FROM Station X
WHERE X.Nom_station IN SELECT Y.Nom_station
FROM Compétition Y
WHERE Y.ref_compitition = ‘3’
UNION
SELECT Altitude_station, Capacité_station
FROM Station Z
WHERE Z.N°_station IN SELECT T.Nom_station
FROM Compétition T
WHERE T.ref_compétition = ‘4’ ;

5°/ SELECT Altitude_station


FROM Station
WHERE Nom_station IN SELECT Nom_station
FROM Skieur
WHERE Spécialité = ‘BOSSES’ ;

6°/ SELECT AVG (COUNT (Nom_skieur)) AS Moyenne


FROM Skieur
WHERE Nom_station = ‘TIGNES’ ;

7°/ SELECT Nom_station, COUNT (ref_compétition) AS Nobre_ref


FROM Compétition
GROUP BY Nom_station ;

8°/ SELECT MAX (rang) AS Maximum, MIN (rang) AS Minimum


FROM Classement

41
WHERE Nom_skieur IN SELECT Nom_skieur
FROM Skieur
WHERE Nom_station = ‘TIGNES’ ;
Exercice 02 : Soit la base de données gestion entreprise :
Animateur (Mat_animateur, nom_animateur, prénom_animateur)
Animer (Code_cours, mat_animateur, nbre_heures, tarif_heures)
Cours (Code_cours, niveau, date, code_théme, code_entreprise)
Catégorie (Code_catégorie, libellé).
Participer (Code_cours, matricule)
Entreprise (Code_entreprise, nom, adresse)
Thème (Code_thème, désignation, code_catégorie)

Exprimer en SQL les requêtes suivantes :


1) Afficher le nom et le prénom de tous les animateurs.
2) Afficher le code du cours, date et la code du thème de tous les cours qui ont lieu après le 02/01/1998.
3) Afficher tous les noms et prénom des participants dont le nom commence par la lettre « N ».
4) Combien de participants a-t-on eu pour le cours N° 026.
5) Calculer le total des heures présentées par les animateurs pour le cours N° 005.
6) Pour chaque participant afficher le numéro matricule, le nom, le prénom ainsi que le nombre de cours
aux quels il a participé.

42
CHAPITRE III : OPÉRATION SUR LES TABLES

Introduction
Après avoir normaliser, on passe à la création des tables.

1 – Création d’une Base De Données (B. D. D)

CREATE DATABASE <Nom de la base> ;

2 – Création d’une table

CREATE TABLE <Nom de la table> (A1 : Type (long), A2 : Type (long), ..., An Type (long)) ;

Exemple
Créer la table Fournisseurs.

CREATE TABLE Fournisseurs (N°_F : N (04), Nom_F : Char (15), Code_F : AN (04), Ville_F : Char (25)) ;

3 – Insertion d’enregistrement dans une table

INSERT INTO <Nom de la table> (A1, A2, ..., An) VALUES (‘V1’, ‘V2’, ...,
‘Vn’) ;

Pour l’insertion d’attribut séparés :

INSERT INTO <Nom de la table> VALUES (‘V1’, ‘V2’, ...,


‘Vn’) ;

Exemple
Insérer les tuples suivant correspondant à la table pièces.

CREATE TABLE Pièces (N°_P : N (04), Nom_P : Char (15), Poids : N (03)) ;

1°/ Tuples : 13, P1, 10

INSERT INTO Pièces VALUES (‘13’, ‘P1’, ‘10’) ;

2°/ Tuples : P1, 05

INSERT INTO Pièces (Nom_P, Poids) VALUES (‘P1’, ‘05’) ;

4 – Modification d’une table

UPDATE <Nom de la table> SET A1 = ‘V1’, A2 = ‘V2’, ..., An = ‘Vn’ WHERE

43
<Condition> ;

UPDATE mit à jour une ligne existante dans une table.


La clause SET indique les colonnes à modifier et quelle valeur insérée.
Le WHERE permet de choisir les lignes qui seront mise à jour.

Exemple
Modifier le Code_F de la table fournisseur par CF1 du fournisseur dont le Nom = ‘ALI’.

UPDATE Fournisseur SET Code_F = ‘CF1’ WHERE Nom_F = ‘ALI’ ;

5 – Suppression d’une table

DROP TABLE <Nom de la table> ;

Exemple
Supprimer la table Fournisseur.

DROP TABLE Fournisseurs ;

6 – Vider une table

DELETE FROM <Nom de la table> ;

Exemple
Vider la table pièce.

DELETE FROM Fournisseurs ;

7 – Suppression d’un enregistrement

DELETE TABLE <Nom de la table> WHERS


<Condition>;

Exemple
Supprimer tous les fournisseurs dont le nom commence par B.

DELETE TABLE Fournisseurs WHERE Nom_F LIKE ‘B%’ ;

8 – Modification de la structure d’une table

ALTER TABLE <Nom de la table> ADD (A1 Type (Taille), A2 Type (Taille), ..., An Type (Taille)) ;

Exemple
Ajouter les attributs adresse et age dans la table Fournisseurs.

ALTER TABLE Fournisseur ADD Adresse Char (25), Age N (02) ;

44

Vous aimerez peut-être aussi