Vous êtes sur la page 1sur 63

Le Modèle Relationnel

40
I. Principe du modèle relationnel
1. Historique

 Modèle logique proposé par Edgar Frank Codd (centre de recherche d’IBM)
en 1970
 Basé sur la notion de relations au sens mathématique, la théorie des ensembles
et la logique des prédicats du 1er ordre

41
I. Principe du modèle relationnel
2. Caractéristiques

 Les données sont organisées sous forme de tables à deux dimensions : relations
 Les colonnes sont appelées des attributs et les lignes des tuples
 Les données sont manipulées par des opérateurs de l'algèbre relationnelle
 L'état cohérent de la base est défini par un ensemble de contraintes d'intégrité.

Exemple
Produits
RefProd Nom Catégorie PrixUnitaire
1 Dattes Mie Alimentaire 125000
2 Parfum Cosmétique 85000
3 Biscuit Alimentaire 100
4 Boite lait 1 L Alimentaire 500

42
I. Principe du modèle relationnel
3. Concepts du modèle relationnel

 Attribut : une colonne nommée d’une relation. Un attribut est toujours associé à un
domaine.
 Domaine : un ensemble d’instances d’un type élémentaire. Exemple : les entiers,
les réels, les chaînes de caractères, etc. Il est interdit en relationnel de manipuler des
valeurs instances de types structurés : graphes, de listes, d’enregistrements, etc.
 Relation : sous-ensemble du produit cartésien de n domaines d’attributs (n>0)
 Schéma de relation : Un schéma de relation est un nom (de relation) suivi de la
liste des attributs avec leurs domaines

R(A1:D1…., An:Dn)

43
I. Principe du modèle relationnel
3. Concepts du modèle relationnel

Produits
RefProd Nom Catégorie PrixUnitaire Attributs
1 Dattes Mie Alimentaire 125000
2 Parfum Cosmétique 85000
3 Biscuit Alimentaire 100
4 Boite lait 1 L Alimentaire 500

44
I. Principe du modèle relationnel
3. Concepts du modèle relationnel

Produits
RefProd Nom Catégorie PrixUnitaire
1 Dattes Mie Alimentaire 125000
2 Parfum Cosmétique 85000 Relation/ table
3 Biscuit Alimentaire 100
4 Boite lait 1 L Alimentaire 500

Produits( RefProd: integer, Nom : String, Categorie : String, PrixUnitaire: float)

Schéma de la relation Produits

45
I. Principe du modèle relationnel
3. Concepts du modèle relationnel

 Arité (degré) d’une relation : nombre des attributs d’une relation


 Cardinalité : nombre de tuples (lignes) d’une relation
 Un tuple : une ligne dans une relation
 Instance d’une relation : ensemble de tuples (lignes) d’une relation : pas de lignes
doubles dans une relation
 Une clé (candidate) : un sous-ensemble minimum d’attributs qui permet
d’identifier chaque tuple de façon unique
 Une clé primaire : c’est la clé candidate choisie pour identifier les tuples de façon
unique dans une relation
 Une clé étrangère : un ensemble d’attributs d’une relation correspondant à une clé
candidate d’une autre relation
 Une (instance de) base de données : un ensemble fini d’instances de relations. Le
schéma de la base est l’ensemble des schémas des relations de cette base 46
I. Principe du modèle relationnel
3. Concepts du modèle relationnel

Produits
RefProd Nom Catégorie PrixUnitaire
1 Dattes Mie Alimentaire 125000
2 Parfum Cosmétique 85000
3 Biscuit Alimentaire 100 Tuple
4 Boite lait 1 L Alimentaire 500
5 Cahier 100 P Scolaire 100

Arité (Produits)= 4
Cardinalité (Produits)= 5
RefProd : clé primaire dans Produits

47
Exemple de base de données

clients (numclient, Nomclient, adresse) ;


produits (refprod, nomprod, categorie, PU) ;
ventes (#refprod, #numclient, datev, quantite)

Les clés primaires sont soulignées


Les clés étrangères sont précédées de #

48
II. Algèbre relationnelle
1. Définition

 C’est un ensemble d’opérations permettant de manipuler des relations


(ensemble de tuples) :
 Possibilité de faire l’union ou la différence de deux relations,
 sélectionner une partie de la relation,
 effectuer des produits cartésiens ou des projections
 Chaque opération prend en entrée une ou 2 relations et produit une relation
en sortie
 Possibilité de composer les opérations

49
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle

 Opérateurs ensemblistes
 Union
 Intersection
 Différence
 Produit cartésien

 Opérateurs spécifiques
 Sélection
 Projection
 Jointure
 Division

50
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle

 Opérateurs ensemblistes
 Union
 Intersection
 Différence
 Produit cartésien

 Opérateurs spécifiques Opérateurs binaires


 Sélection
 Projection
 Jointure
 Division

51
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle

 Opérateurs ensemblistes
 Union
 Intersection
 Différence
 Produit cartésien

 Opérateurs spécifiques
 Sélection Opérateurs unaires
 Projection
 Jointure
 Division

52
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle

Considérons la relation R(A1,A2, …,An)


 Sélection : 𝑷𝒓𝒆𝒅𝒊𝒄𝒂𝒕
La sélection s’applique à une relation R et retourne les tuples de R qui satisfont le
prédicat (vrai ou faux)
Prédicat :
A Comp a, avec A un attribut quelconque, a une constante et Comp

Exemple
Donner la liste des clients qui habitent Kaédi
Prédicat
Clients
NumClient NomClient Ville Telephone
1 Souley Med Kaédi 88.55.88.66 NumClient NomClient Ville Telephone
2 Fatimétou Ali Nouadhibou 77.66.33.22 1 Souley Med Kaédi 88.55.88.66
3 Demba Sow Djeol 77.33.88.22 4 Sidi Med Kaédi 55.22.10.25
4 Sidi Med Kaédi 55.22.10.25

53
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle

 Projection : 𝑨𝟏, 𝑨𝟐, … 𝑨𝒌


La projection s’applique à une relation R et produit une relation restreinte à un sous-
ensemble des attributs de R : 1 2 en supprimant les doublons.

Exemple
Donner les noms des clients et leur ville

Clients
NumClient NomClient Ville Telephone NomClient Ville
1 Souley Med Kaédi 88.55.88.66 Souley Med Kaédi
2 Fatimétou Ali Nouadhibou 77.66.33.22 Fatimétou Ali Nouadhibou
3 Demba Sow Djeol 77.33.88.22 Demba Sow Djeol
4 Sidi Med Kaédi 55.22.10.25 Sidi Med Kaédi

𝑽𝒊𝒍𝒍𝒆
Ville Donner les noms des villes des clients
Kaédi Doublons à supprimer
Nouadhibou
Djeol
Kaédi 54
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle

 Projection : 𝑨𝟏, 𝑨𝟐, … 𝑨𝒌


La projection s’applique à une relation R et produit une relation restreinte à un sous-
ensemble des attributs de R : 1 2 en supprimant les doublons.

Exemple
Donner les noms des clients et leur ville

Clients
NumClient NomClient Ville Telephone NomClient Ville
1 Souley Med Kaédi 88.55.88.66 Souley Med Kaédi
2 Fatimétou Ali Nouadhibou 77.66.33.22 Fatimétou Ali Nouadhibou
3 Demba Sow Djeol 77.33.88.22 Demba Sow Djeol
4 Sidi Med Kaédi 55.22.10.25 Sidi Med Kaédi

𝑽𝒊𝒍𝒍𝒆
Ville Donner les noms des villes des clients
Kaédi
Nouadhibou Doublons à supprimer
Djeol
55
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle

 Union :
R et S doivent avoir le même schéma et le résultat est une relation comprenant tous
les tuples existant dans l’une ou l’autre des 2 relations.
R S
R S
A B A B
A B
X Y O P
X Y
Z T X Y
Z T
U V
O P
U V

56
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle

 Intersection :
R et S doivent avoir le même schéma et le résultat est une relation comprenant tous
les tuples présents à la fois dans R et S.
R S
R S
A B A B
A B
X Y O P
X Y
Z T X Y
U V

57
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle

 Différence :
R et S doivent avoir le même schéma et le résultat est une relation comprenant tous
les tuples présents dans R et non dans S.
R S
R S
A B A B
A B
X Y O P
Z T
Z T X Y
U V

58
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle

 Produit cartésien : x
Le produit cartésien entre 2 relations R et S: RxS est une relation où chaque tuple de
R est associé à chaque tuple de S. R et S peuvent être de schéma quelconque.

R S RxS
A B C D A B C D
X Y O P X Y O P
Z T Q W X Y Q W
U V X Y U V
Z T O P
Z T Q W
Z T U V

59
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle

 Jointure :
La jointure entre 2 relations R et S consiste à joindre les tuples de R et S pour
lesquelles les valeurs d’un ou de plusieurs attributs sont identiques. Souvent ces
attributs correspondent à la clé primaire d’une des relations et la clé étrangère dans
l’autre relation.

x
P : est le critère de rapprochement pouvant être tout opérateur de
comparaison liant un attribut de R à un attribut de S
<;<=;>;>=;!=;=
Théta-jointure

60
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle

 Jointure :
La jointure entre 2 relations R et S consiste à joindre les tuples de R et S pour
lesquelles les valeurs d’un ou de plusieurs attributs sont identiques. Souvent ces
attributs correspondent à la clé primaire d’une des relations et la clé étrangère dans
l’autre relation.

R.a P S.b; a et b des attributs de R et S

P : est le critère de rapprochement pouvant être tout opérateur de


comparaison liant un attribut de R à un attribut de S
<;<=;>;>=;!=;= clients (numclient, Nomclient, adresse) ;
produits (refprod, nomprod, categorie, PU) ;
Equijointure
ventes (#refprod, #numclient, datev, quantite)

Produits Ventes
Produits.RefProd=Ventes.Refprod
61
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle

 Jointure naturelle :
La jointure naturelle est une équijointure des relations R et S sur tous les attributs
communs en retirant les occurrences multiples d’attributs.

62
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle

 Jointure naturelle :

Produits
RefProd Nom Catégorie PrixUnitaire
1 Dattes Mie Alimentaire 125000
2 Parfum Cosmétique 85000
3 Biscuit Alimentaire 100
4 Boite lait 1 L Alimentaire 500

Ventes
NumProd NumClient NumVendeur DateV Quantite Montant
2 5 1 05/10/2018 3 255000
2 5 1 31/12/2018 1 85000
3 3 2 10/07/2018 1 15000
4 4 3 10/12/2018 3 300

Produits Ventes
RefProd=NumProd

63
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle

 Jointure naturelle :
Produits Ventes
RefProd Nom Catégorie PrixUnitaire NumProd NumClient NumVendeur DateV Quantite Montant
2 Parfum Cosmétique 85000 2 5 1 05/10/2018 3 255000
2 Parfum Cosmétique 85000 2 5 1 31/12/2018 1 85000
3 Biscuit Alimentaire 100 3 3 2 10/07/2018 1 15000
4 Boite lait 1 L Alimentaire 500 4 4 3 10/12/2018 3 300

Produits Ventes Equijointure


RefProd=NumProd

Produits Ventes
RefProd Nom Catégorie PrixUnitaire NumClient NumVendeur DateV Quantite Montant
2 Parfum Cosmétique 85000 5 1 05/10/2018 3 255000
2 Parfum Cosmétique 85000 5 1 31/12/2018 1 85000
3 Biscuit Alimentaire 100 3 2 10/07/2018 1 15000
4 Boite lait 1 L Alimentaire 500 4 3 10/12/2018 3 300

Produits Ventes Jointure naturelle


RefProd
64
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle

 Division :
Soit R et S, 2 relations dont l’ensemble des attributs de S est inclus dans l’ensemble
des attributs de R.
La division de R par S, R S est une relation P qui comporte les attributs
appartenant à R mais n'appartenant pas à S et l'ensemble des tuples qui concaténés à
ceux de S donnent toujours un tuple de R.

R
S P
A B
X1 Y1 B A
X1 Y2 Y1 X1
X2 Y1 Y2 X2
X2 Y2
X3 Y2
Quels sont les X dans A associés à tous les Y dans B?

65
II. Algèbre relationnelle
2. Opérations de l’algèbre relationnelle

Exemple

Produits (RefProd, Désignation, Catégorie, PrixUnitaire)

Vendeurs (NumVendeur, NomVendeur, Ancienneté, Adresse, Telephone)

Clients (NumClient, NomClient, Adresse, Telephone)

Ventes (#RefProd, #NumClient, #NumVendeur, Date, Quantite, Montant)

66
II. Algèbre relationnelle Produits (RefProd, Désignation, Catégorie, PrixUnitaire)

Vendeurs (NumVendeur, NomVendeur, Ancienneté, Adresse, Telephone)


2. Opérations de l’algèbre relationnelle
Clients (NumClient, NomClient, Adresse, Telephone)

Ventes (#RefProd, #NumClient, #NumVendeur, Date, Quantite, Montant)


Exemple
1. Donner la liste des produits de catégorie alimentaire
2. Donner la désignation des produits de catégorie alimentaire
3. Quels sont les vendeurs habitant Nouakchott et ayant une ancienneté supérieure à 5 ans
4. Donner le numéro des clients qui ont acheté tous les produits
5. Donner le nom des clients qui ont acheté tous les produits
Catégorie = "alimentaire"

Désignation Catégorie = "alimentaire"

Adresse = "Nouakchott" Ancienneté > 5

4. R1= Numclient, RefProd ; R2= RefProd NumClient

NomClient Resultat Clients


67
Le langage de requêtes SQL

I. Le Langage de Définition de Données (LDD) (create, alter, drop)


II. Le Langage de Manipulation de Données (LMD) (select, insert, update, delete)
III. Le Langage de Contrôle de Données (LCD) (grant, revoke)

68
I. Le Langage de Définition de Données (LDD)
1. Types SQL selon la norme ANSI

RefProd Nom Catégorie PrixUnitaire Quels types pour les attributs?


1 Dattes Mie Alimentaire 125000
2 Parfum Cosmétique 85000
3 Biscuit Alimentaire 100
4 Boite lait 1 L Alimentaire 500
5 Cahier 100 P Scolaire 100

Produits( RefProd: integer, Nom : String, Categorie : String, PrixUnitaire: float)

69
I. Le Langage de Définition de Données (LDD)

1. Types SQL selon la norme ANSI

M : précision (nombre total de chiffres)


D : échelle (nombre après la virgule)

Mohamed Lamine Diakité


I. Le Langage de Définition de Données (LDD)
2. Instructions sur les tables

CREATE TABLE : créer une table


ALTER TABLE : modifier la structure d’une table
DROP TABLE : supprimer une table

 Créer d’abord la base de données

CREATE DATABASE [IF NOT EXISTS] Nom_Bdd : Création d’une base de données de nom
Nom_Bdd
CONDITION

Si une base de données de même nom 1. Avoir les droits de création


existe alors pas de message d’erreur 2. Créer un compte si non existant
3. Associer les droits à ce compte
Plus loin …

71
I. Le Langage de Définition de Données (LDD)
3. Création des tables

CREATE TABLE NOMTABLE (liste attributs avec leurs types)

CREATE TABLE Produits (RefProd integer, nom char(20), Catégorie char(20),


PrixUnitaire float)

CREATE TABLE Clients (NumClient integer, NomClient varchar(30), Adresse text,

Telephone integer(8))

CREATE TABLE Ventes (RefProd integer, NumClient integer, NumVendeur integer, DateVente
date, Quantite int, Montant float)

Clés primaires?
72
I. Le Langage de Définition de Données (LDD)
3. Création des tables

 Contrainte NOT NULL : appliquée à un attribut, garantit que les valeurs


correspondantes ne sont pas NULL (renseignées obligatoirement)

CREATE TABLE Produits (RefProd integer, nom char(20) NOT NULL, Catégorie char(20),
PrixUnitaire float)

 Contrainte DEFAULT: permet d’insérer une valeur par défaut dans une
colonne lors de l’insertion d’un tuple sans préciser de valeur pour la colonne

CREATE TABLE Produits (RefProd integer, nom char(20), Catégorie char(20)


DEFAULT ’’ALIMENTAIRE’’, PrixUnitaire float)

 Contrainte UNIQUE: permet de garantir que les valeurs dans une colonne
ou un ensemble de colonnes sont toutes différentes
CREATE TABLE Produits (RefProd integer, nom char(20), Catégorie char(20)

DEFAULT ’’ALIMENTAIRE’’, PrixUnitaire float, UNIQUE(nom))


Garantit que chaque nom d’un produit est unique
73
I. Le Langage de Définition de Données (LDD)
3. Création des tables

 Contrainte NOT NULL : appliquée à un attribut, garantit que les valeurs


correspondantes ne sont pas NULL (renseignées obligatoirement)

74
I. Le Langage de Définition de Données (LDD)
3. Création des tables
Contrainte de clé primaire : PRIMARY KEY
Primary Key (Attribut) : si clé primaire mono-attribut
Primary Key (Attribut1, …, Attributn) : si multi-attribut

CREATE TABLE Produits (RefProd int primary key, nom char(20), Catégorie char(20),
PrixUnitaire float)
CREATE TABLE Clients (NumClient int primary key, NomClient varchar(30), Adresse text,
Telephone int(8))
CREATE TABLE Ventes (RefProd int, NumClient int, NumVendeur int, DateVente date, Quantite
int, Montant float)

CREATE TABLE Ventes (RefProd int, NumClient int, NumVendeur int, DateVente
date, Quantite int, Montant float,
PRIMARY KEY(RefProd,NumClient, DateVente))
Les 3 champs participent à la clé primaire
75
I. Le Langage de Définition de Données (LDD)
3. Création des tables

CREATE TABLE Ventes (RefProd int, NumClient int, NumVendeur int, DateVente date NOT NULL,
Quantite int, Montant float, PRIMARY KEY(RefProd,NumClient, DateVente))

Doit s’appliquer aux attributs participant dans la clé


primaire

76
I. Le Langage de Définition de Données (LDD)
3. Création des tables
Contrainte de clé primaire : PRIMARY KEY

CREATE TABLE Produits (RefProd int, nom char(20), Catégorie char(20),


PrixUnitaire float, primary key(RefProd))

CREATE TABLE Clients (NumClient int, NomClient varchar(30), Adresse text,


Telephone int(8), primary key(NumClient))

77
I. Le Langage de Définition de Données (LDD)
3. Création des tables
Contrainte de clé étrangère : FOREIGN KEY

CREATE TABLE Ventes (RefProd int, NumClient int, NumVendeur int, DateVente
date, Quantite int, Montant float,

CLÉS ÉTRANGÈRES : A ajouter


PRIMARY KEY(RefProd,NumClient,NumVendeur))

FOREIGN KEY (RefProd) REFERENCES produits(RefProd)

RefProd référence la clé primaire de la table produits

78
I. Le Langage de Définition de Données (LDD)
3. Création des tables
Contrainte de clé étrangère : FOREIGN KEY

CREATE TABLEVentes (RefProd int, NumClient int, NumVendeur int, DateVente


date NOT NULL, Quantite int, Montant float,
FOREIGN KEY (RefProd) REFERENCES produits(RefProd),
FOREIGN KEY (NumClient) REFERENCES clients(NumClient),
FOREIGN KEY (numvendeur) REFERENCES vendeurs(NumVendeur),
PRIMARY KEY(RefProd,NumClient, DateVente))

79
I. Le Langage de Définition de Données (LDD)
4. Modification d’une table

ALTER TABLE NOMTABLE ACTION DESCRIPTION

ADD, MODIFY, ALTER, DROP, CHANGE, RENAME

80
I. Le Langage de Définition de Données (LDD)
4. Modification d’une table

ALTER TABLE NOMTABLE ACTION DESCRIPTION


COMMANDE DE MODIFICATION ASSOCIÉE À ACTION
ADD, MODIFY, ALTER, DROP, CHANGE, RENAME

 Ajout d’un attribut quantite de type entier dans Produits : ADD

CREATE TABLE Produits (RefProd int, nom char(20), Catégorie char(20),


PrixUnitaire float, primary key(RefProd))
ALTER TABLE PRODUITS ADD quantite integer

 Modification du type de l’attribut nom de char(20) vers le type varchar(30) :


MODIFY

ALTER TABLE PRODUITS MODIFY nom varchar(30)


81
I. Le Langage de Définition de Données (LDD)
4. Modification d’une table

ALTER TABLE NOMTABLE ACTION DESCRIPTION

 Modification l’attribut nom par nomProd dans Produits : CHANGE


ALTER TABLE PRODUITS CHANGE nom nomProd varchar(30)

 Supprimer l’attribut Catégorie de la table Produits : DROP


ALTER TABLE PRODUITS DROP Catégories

 Renommer la table Produits par Articles : RENAME


ALTER TABLE PRODUITS RENAME Articles

82
I. Le Langage de Définition de Données (LDD)
4. Modification d’une table

ALTER TABLE NOMTABLE ACTION DESCRIPTION

 Modification l’attribut Catégorie (fixer une valeur par défaut) SET DEFAULT

ALTER TABLE PRODUITS ALTER Catégorie SET DEFAULT ’’alimentaire’’

En insérant dans la table Produits, le produit suivant :


RefProd=3
Nom=Biscuit
PrixUnitaire=100
Sans préciser la catégorie, alors par défaut Catégorie= ’’alimentaire’’

RefProd Nom Catégorie PrixUnitaire


1 Dattes Mie Alimentaire 125000
2 Parfum Cosmétique 85000
3 Biscuit Alimentaire 100 Nouvelle ligne insérée

83
I. Le Langage de Définition de Données (LDD)
5. Suppression d’une table

DROP TABLE NOMTABLE

Pour supprimer la table VENTES de la base de données

DROP TABLE VENTES

84
I. Le Langage de Manipulation de Données (LMD)
1. Commandes du LMD

INSERT INTO : Insertion des données dans une table


UPDATE : Mise à jour (modification) des tuples d’une table
DELETE FROM : Suppression des tuples
SELECT : Interrogation de la base de données

85
I. Le Langage de Manipulation de Données (LMD)
2. Insertion des données

INSERT INTO NOMTABLE (A1,…, An) VALUES (Valeur1, …, Valeurn)

 A1, ... ,An : Les noms des attributs dans lesquels une valeur sera placée
 Les attributs non mentionnés seront :
 à NULL s’ils ne sont pas spécifiés NOT NULL
 ou à la valeur par défaut si définie
 Les attributs spécifiés NOT NULL et sans valeur par défaut doivent
obligatoirement figurer dans une clause INSERT.
 Les valeur1, ... valeurn sont les valeurs des attributs

INSERT INTO produits (refprod, nom, catégorie, PrixUnitaire)


VALUES(1,"Dattes Mie","alimentaire",5000);

86
I. Le Langage de Manipulation de Données (LMD)
2. Insertion des données

INSERT INTO NOMTABLE (A1,…, An) VALUES (Valeur1, …, Valeurn)

INSERT INTO produits (refprod, nom, catégorie, PrixUnitaire)


VALUES(1,"Dattes Mie","alimentaire",5000);

PRODUITS
RefProd Nom Catégorie PrixUnitaire
1 Dattes Mie Alimentaire 5000

87
I. Le Langage de Manipulation de Données (LMD)
2. Insertion des données

INSERT INTO NOMTABLE (A1,…, An) VALUES (Valeur1, …, Valeurn)

INSERT INTO produits VALUES (2,"Parfum", "Cosmétique",15000);

Insertion dans l’ordre des colonnes en précisant des valeurs pour tous les
attributs : pas nécessaire d’indiquer les noms des attributs dans ce cas

PRODUITS
RefProd Nom Catégorie PrixUnitaire
1 Dattes Mie Alimentaire 5000
2 Parfum Cosmétique 15000

88
I. Le Langage de Manipulation de Données (LMD)
2. Insertion des données

INSERT INTO NOMTABLE (A1,…, An) VALUES (Valeur1, …, Valeurn)

INSERT INTO produits (refprod, nom, PrixUnitaire)


VALUES (3,"Biscuit",100);

RefProd Nom Catégorie PrixUnitaire


PRODUITS 1 Dattes Mie Alimentaire 5000
2 Parfum Cosmétique 15000
3 Biscuit Alimentaire 100

L’attribut Catégorie non précisée dans la requête


La valeur par défaut (Alimentaire) est donc insérée dans la table

INSERT INTO produits (refprod, nom, Catégorie, PrixUnitaire)


VALUES (3,"Biscuit",DEFAULT,100); 89
I. Le Langage de Manipulation de Données (LMD)
3. Modification des tuples

UPDATE NOMTABLE SET A1=Valeur1, …, An=Valeurn WHERE CONDITION

UPDATE produits SET PrixUnitaire=4500


WHERE RefProd=1 ;

PRODUITS
RefProd Nom Catégorie PrixUnitaire
1 Dattes Mie Alimentaire 4500 Modification d’un tuple
2 Parfum Cosmétique 15000
3 Biscuit Alimentaire 100

UPDATE produits SET PrixUnitaire= PrixUnitaire*0.9;

RefProd Nom Catégorie PrixUnitaire


1 Dattes Mie Alimentaire 4050 Modification de tous les tuples si
2 Parfum Cosmétique 13500 aucune condition n’est spécifiée
3 Biscuit Alimentaire 90
Attention 90
I. Le Langage de Manipulation de Données (LMD)
3. Modification des tuples

UPDATE NOMTABLE SET A1=Valeur1, …, An=Valeurn WHERE CONDITION

UPDATE produits SET Nom="Parfum Homme", Catégorie="Luxe"


WHERE RefProd=2 ;

PRODUITS
RefProd Nom Catégorie PrixUnitaire
1 Dattes Mie Alimentaire 4050
2 Parfum Homme Luxe 13500
3 Biscuit Alimentaire 90

Modification de la valeur de plusieurs attributs d’un tuple

91
I. Le Langage de Manipulation de Données (LMD)
4. Suppression des tuples

DELETE FROM NOMTABLE WHERE CONDITION

DELETE FROM produits


WHERE PrixUnitaire<20000 AND PrixUnitaire >=12000;

PRODUITS
RefProd Nom Catégorie PrixUnitaire
1 Dattes Mie Alimentaire 4050
2 Parfum Homme Luxe 13500
3 Biscuit Alimentaire 90

RefProd Nom Catégorie PrixUnitaire


1 Dattes Mie Alimentaire 4050
3 Biscuit Alimentaire 90

Attention
DELETE FROM produits;
Suppression de tous les tuples si
aucune condition n’est spécifiée RefProd Nom Catégorie PrixUnitaire
92
I. Le Langage de Manipulation de Données (LMD)
5. Sélection des données
Format d’une requête SELECT

93
I. Le Langage de Manipulation de Données (LMD)
5. Sélection des données

SELECT attr1, attr2, …, attrn Requête simple : SELECT FROM


FROM NOMTABLE

SELECT Nom, Catégorie


FROM produits;
Nom Catégorie
Dattes Mie Alimentaire
PRODUITS Parfum Cosmétique
RefProd Nom Catégorie PrixUnitaire Biscuit Alimentaire
1 Dattes Mie Alimentaire 5000
2 Parfum Cosmétique 15000
3 Biscuit Alimentaire 100

94
I. Le Langage de Manipulation de Données (LMD)
5. Sélection des données

SELECT attr1, attr2, …, attrn Requête simple : SELECT FROM WHERE


FROM NOMTABLE
WHERE CONDITION

SELECT Nom, Catégorie


FROM produits
WHERE PrixUnitaire>10000;

Nom Catégorie
PRODUITS Parfum Cosmétique
RefProd Nom Catégorie PrixUnitaire
1 Dattes Mie Alimentaire 5000
2 Parfum Cosmétique 15000
3 Biscuit Alimentaire 100

95
I. Le Langage de Manipulation de Données (LMD)
5. Sélection des données

SELECT ALL SELECT DISTINCT


FROM FROM

SELECT ALL Catégorie SELECT DISTINCT Catégorie


FROM produits; FROM produits;

Catégorie Catégorie
Alimentaire Alimentaire
Catégorie

x
Alimentaire
Cosmétique Cosmétique
Cosmétique
Alimentaire Alimentaire

Suppression des doublons


SELECT Catégorie
FROM produits;

96
I. Le Langage de Manipulation de Données (LMD)
5. Sélection des données
Les conditions de recherche
 Comparaison
• PrixUnitaire>10000
• Catégorie=’’Alimentaire’’
• PrixUnitaire<=5000 AND Catégorie=’’Alimentaire’’
 Appartenance à une étendue ou à un intervalle
• PrixUnitaire BETWEEN 10000 AND 20000
 Appartenance à un ensemble
• Catégorie IN (’’Alimentaire’’,’’Cosmétique’’)
 Correspondance à un masque si des critères de type chaine de caractère
• Catégorie LIKE ’’Cosm%’’ Cosmétique/ Cosmétiques/ Cosmetique…
• Catégorie LIKE ’’%Cosmétiqu_’’ Cosmétique
• Catégorie LIKE ’’%Cosm_tiqu_’’ Cosmetique
 nul
Catégorie IS NULL
97
I. Le Langage de Manipulation de Données (LMD)
5. Sélection des données

98
I. Le Langage de Manipulation de Données (LMD)
5. Sélection des données
Utilisation des opérateurs

99
I. Le Langage de Manipulation de Données (LMD)
5. Sélection des données
Utilisation des opérateurs sur les chaînes de caractères

100
I. Le Langage de Manipulation de Données (LMD)
5. Sélection des données : Jointure

Produits
RefProd Nom Catégorie PrixUnitaire
1 Dattes Mie Alimentaire 125000
2 Parfum Cosmétique 85000
3 Biscuit Alimentaire 100
4 Boite lait 1 L Alimentaire 500

Ventes
NumProd NumClient NumVendeur DateV Quantite Montant
2 5 1 05/10/2018 3 255000
2 5 1 31/12/2018 1 85000
3 3 2 10/07/2018 1 15000
4 4 3 10/12/2018 3 300

101
I. Le Langage de Manipulation de Données (LMD)
5. Sélection des données : Jointure

102

Vous aimerez peut-être aussi