Vous êtes sur la page 1sur 94

ENSMR: 2A TC 2022-2023

Base de Données Relationnelles

Pr KAWTAR TIKITO tikito@enim.ac.ma


Bases de Données Relationnelles

Introduction Générale

Modèle Relationnel

DDL

DML

Select 1/2

Select et jointure

Pr. TIKITO 2
Donnée ou Information ?

Pr. TIKITO 3
Donnée structurée ?

Pr. TIKITO 4
Base de données
• Une base de données (database)
• Outil permettant de stocker et de retrouver
l'intégralité de données brutes ou
d'informations en rapport avec un thème
ou une activité [Wikipedia]
• Informations très structurées ?
• Base localisée ou répartie?
• Sur même support ?

Pr. TIKITO 5
SGBD ?

Pr. TIKITO 6
SGBD
• Système de Gestion de Base de Données
• Logiciel système destiné à stocker et à
partager des informations dans une base
de données, en garantissant la qualité, la
pérennité et la confidentialité des
informations, tout en cachant la complexité
des opérations.[Wikipedia]

Pr. TIKITO 7
SGBD

https://images.app.goo.gl/wwWyF
WZxvi5rp4iH9

Pr. TIKITO 8
SGBD

Source: https://db-engines.com/en/ranking/relational+dbms
Pr. TIKITO 9
SGBD: Niveaux d’abstraction
Schéma Schéma Schéma
Externe 1 Externe 2 Externe n

Schéma Conceptuel

Schéma Physique

Pr. TIKITO 10
SGBD: Niveaux d’abstraction
Schéma Schéma Schéma
Externe 1 Externe 2 Externe n

Schéma Conceptuel

Schéma Physique

Pr. TIKITO 11
SGBD: Niveaux d’abstraction
Le schéma conceptuel
• Parfois appelé le schéma logique
• Décrit les données stockées en termes de modèle de
données du SGBD.
• Décrit toutes les relations stockés dans la base de données.
• Définition de la structure de données
• Langages de description des données (LDD)
• Langages de Requêtes (LR) : Consultation et mise à jour des
données
• Langage de Manipulation de Données (LMD)
• Gestion de la confidentialité (sécurité)
• Maintien de l’intégrité.
Pr. TIKITO 12
SGBDR: Caractéristiques

Pr. TIKITO 13
SGBDR: Caractéristiques
Entités du monde réel:
• Plus réaliste et utilise des entités
du monde réel pour concevoir son
architecture.
• Il utilise le comportement et les
attributs aussi.
• Par exemple, une base de
données d’un magasin l’on peut
utiliser Client comme une entité
et le Nom comme un attribut.
Pr. TIKITO 14
SGBDR: Caractéristiques

Tables basées sur les relations:


• SGBD permet aux entités et les relations
entre eux de former des tables.
• Un utilisateur peut comprendre
l'architecture d'une base de données juste
en regardant les noms de table.

Pr. TIKITO 15
SGBDR: Caractéristiques

Pr. TIKITO 16
SGBDR: Caractéristiques
Isolement de données et l'application:
• Un SGBD est entièrement différent de celui
de ses données.
• Une base de données est une entité active
• Les données est dit d'être passive, sur lequel
la base de données fonctionne et organise.
• SGBD stocke également des métadonnées,
qui sont des données sur les données, pour
faciliter son propre processus.

Pr. TIKITO 17
SGBDR: Caractéristiques
Moins de redondance
• SGBD suit les règles de la normalisation
pour réduire la redondance des données.

Cohérence
• La cohérence est un état où toute relation
dans une base de données reste
cohérente.

Pr. TIKITO 18
SGBDR: Caractéristiques
Langage de requête
• plus efficace pour extraire et manipuler
des données.
• Un utilisateur peut appliquer différentes
options de filtrage pour récupérer un
ensemble de données.

Pr. TIKITO 19
SGBDR: Caractéristiques
Multi-utilisateur et l'accès simultané
• SGBD prend en charge l’environnement
multi-utilisateurs et leur permet d'accéder
et de manipuler des données en parallèle.
• Bien qu'il existe des restrictions sur les
transactions lorsque les utilisateurs tentent
de traiter le même élément de données,
mais c’est invisible aux utilisateurs .

Pr. TIKITO 20
SGBDR: Caractéristiques
Vues multiples
• SGBD offre plusieurs vues pour différents
utilisateurs.
• Un utilisateur qui est dans le département
des ventes aura un point de vue différent
de la base de données d'une personne
travaillant dans le département de
production.

Pr. TIKITO 21
SGBDR: Caractéristiques
Sécurité
• SGBD offre différents niveaux de fonctionnalités de
sécurité, qui permet à plusieurs utilisateurs d'avoir
différents points de vue avec des caractéristiques
différentes.
• Par exemple, un utilisateur dans le département de
vente ne peut pas voir les données qui appartient au
département d'achat.
• Un SGBD n’est pas enregistré comme les fichiers
traditionnels, il est très difficile pour briser le code

Pr. TIKITO 22
SGBD: Caractéristiques

Atomicité Cohérence
Une transaction se fait au Chaque transaction amène le
complet ou pas du tout. système d'un état valide à un
autre état valide.

ACID
Isolation Durabilité
Toute transaction doit Lorsqu'une transaction a été
s'exécuter comme si elle était la confirmée, elle demeure
seule sur le système. enregistrée même à la suite
d'une panne ou d’un problème.

Pr. TIKITO 23
SQL
• Structured Query Language
• SQL est un langage de programmation
pour bases de données relationnelles.
• Conçu sur l'algèbre relationnelle et calcul
relationnel de tuple.
• SQL vient comme un paquet avec toutes
les principales distributions de SGBDR.

Pr. TIKITO 24
Modèle Relationnel

Pr. TIKITO 25
Modèle Relationnel
• Un attribut est un identificateur (un nom)
décrivant une information stockée dans une
base.
• Le domaine d'un attribut est l'ensemble, fini ou
infini, de ses valeurs possibles.
• Une relation est un sous-ensemble du produit
cartésien de n domaines d'attribut (n > 0).
• Une occurrence (n-uplets ou tuples) est un
élément de l'ensemble figuré par une relation.
(une ligne du tableau.)
Pr. TIKITO 26
Modèle Relationnel

Source: http://upload.wikimedia.org/wikipedia/commons/f/fd/Table_relationnel.png
Pr. TIKITO 27
Modèle Relationnel
• Une clé candidate d'une relation est un
ensemble minimal des attributs de la relation
dont les valeurs identifient à coup sûr une
occurrence.
• La clé primaire d'une relation est une de ses
clés candidates. (La meilleure)
• Une clé étrangère d'une relation est formée d'un
ou plusieurs de ses attributs qui constituent une
clé candidate dans une autre relation.

Pr. TIKITO 28
SQL
• Structured Query Language
• SQL est un langage de programmation
pour bases de données relationnelles.
• Conçu sur l'algèbre relationnelle et calcul
relationnel de tuple.
• SQL vient comme un paquet avec toutes
les principales distributions de SGBDR.

Pr. TIKITO 29
Data Definition Language
• Langage de définition / description des données
• Définir la structure de la base de données et
schémas
CREATE

TRUNCATE DDL ALTER

DROP
Pr. TIKITO 30
Création d’une Table

CREATE TABLE table


(colonne1 type1,
colonne2 type2,
.........
.........)

Pr. TIKITO 31
Création d’une Table

CREATE TABLE Article (


ref VARCHAR(10),
nom VARCHAR(30),
prix DECIMAL(9,2),
datemaj DATE )

Pr. TIKITO 32
Création d’une Table
• On peut ajouter après la description d'une
colonne l'option NOT NULL qui interdira que
cette colonne contienne la valeur NULL.
• On peut aussi ajouter des contraintes
d'intégrité portant sur une ou plusieurs
colonnes de la table
• On peut donner une valeur par défaut pour
une colonne si la colonne n'est pas
renseignée.

Pr. TIKITO 33
Création d’une Table

CREATE TABLE Article (


ref VARCHAR(10) constraint pk_article
PRIMARY KEY,
nom VARCHAR(30) NOT NULL,
prix DECIMAL(9,2),
datemaj DATE Default GetDate() )

Pr. TIKITO 34
Les Contraintes

• Dans la définition d'une table, on peut indiquer des


contraintes d'intégrité portant sur une ou plusieurs
colonnes.
• Les contraintes possibles sont :
PRIMARY KEY, UNIQUE, FOREIGN KEY
REFERENCES, CHECK
• Toute définition de table doit comporter au moins une
contrainte de type PRIMARY KEY.
• Chaque contrainte doit être nommée (ce qui permettra
de la désigner par un ordre ALTER TABLE, et ce qui
est requis par les normes SQL)
• Le nom d'une contrainte doit être unique parmi toutes
les contraintes de toutes les tables de la base de
données.
Pr. TIKITO 35
Les Contraintes

Il existe des contraintes :


• sur une colonne : la contrainte porte sur une
seule colonne. Elle suit la définition de la
colonne dans un ordre CREATE TABLE (pas
possible dans un ordre ALTER TABLE).
• sur une table : la contrainte porte sur une ou
plusieurs colonnes. Elles se place au même
niveau que les définitions des colonnes dans
un ordre CREATE TABLE ou ALTER TABLE.

Pr. TIKITO 36
Primary Key

• Pour une contrainte sur une table,


on ajoute à la fin :
PRIMARY KEY (colonne1, colonne2,...)
• Pour une contrainte sur une
colonne, on ajoute à la fin de la
déclaration de la colonne le mot
clé:
PRIMARY KEY

Pr. TIKITO 37
Primary Key

CREATE TABLE EMP (


MATR INT CONSTRAINT KEMP PRIMARY KEY,
NOM VARCHAR(10),
PRENOM VARCHAR(10))

CREATE TABLE EMP2 (


MATR INT ,
NOM VARCHAR(10),
PRENOM VARCHAR(10),
CONSTRAINT KEMP2 PRIMARY KEY (MATR))
Pr. TIKITO 38
Identity

• Crée une colonne d'identité dans une table.


Cette propriété est utilisée avec les instructions.
• Permet d’incrémenter automatiquement la
valeur des clés primaires par incrémentation
IDENTITY [ ( seed , increment ) ]
• Seed : Valeur utilisée pour la toute première
ligne chargée dans la table.
• Increment : Valeur d'incrément ajoutée à la
valeur d'identité de la ligne précédemment
chargée.
Pr. TIKITO 39
Identity

CREATE TABLE EMP3 (


MATR INT CONSTRAINT KEMP3 PRIMARY KEY
IDENTITY(1,2),
NOM VARCHAR(10),
PRENOM VARCHAR(10))

Pr. TIKITO 40
UNIQUE

• pour une contrainte sur une table:


UNIQUE (colonne1, colonne2,...)
• pour une contrainte sur une
colonne :
UNIQUE

Pr. TIKITO 41
UNIQUE

CREATE TABLE EMP11 (


MATR INTEGER CONSTRAINT KEMP11 PRIMARY KEY,
NOM VARCHAR(10) CONSTRAINT NOM_UNIQUE
UNIQUE,
PRENOM VARCHAR(10))

CREATE TABLE EMP21 (


MATR INT ,
NOM VARCHAR(10),
PRENOM VARCHAR(10),
CONSTRAINT KEMP21 PRIMARY KEY (MATR),
CONSTRAINT NOM_UNIQUE2 UNIQUE(NOM))
Pr. TIKITO 42
CHECK

• Permet d’indiquer des contraintes


d'intégrité de domaines.
• Cette contrainte peut être une
contrainte de colonne ou de table.
• Si c'est une contrainte de colonne,
elle ne doit porter que sur la colonne
en question.
CHECK(condition )
Pr. TIKITO 43
CHECK

CREATE TABLE EMP12 (


MATR INTEGER CONSTRAINT KEMP12 PRIMARY KEY,
NOM VARCHAR(10) CONSTRAINT NOM_UNIQUE12 UNIQUE
CONSTRAINT MAJ_NOM12 CHECK (NOM = UPPER(NOM)))

CREATE TABLE EMP22 (


MATR INTEGER,
NOM VARCHAR(10),
DEPT INTEGER,
CONSTRAINT KEMP22 PRIMARY KEY (MATR),
CONSTRAINT NOM_UNIQUE22 UNIQUE(NOME),
CONSTRAINT MAJ CHECK (NOME = UPPER(NOME) COLLATE
French_BIN),
CONSTRAINT NDEPT CHECK (DEPT IN (10, 20, 30, 35, 40)))

Pr. TIKITO 44
FOREING KEY

• pour une contrainte sur une colonne :


REFERENCES tableref [(col1 )]
[ON DELETE CASCADE]

• pour une contrainte sur une table :


FOREIGN KEY (colonne1, colonne2,...)
REFERENCES tableref [(col1, col2,...)]
[ON DELETE CASCADE]
Pr. TIKITO 45
FOREING KEY

• L'option ON DELETE CASCADE indique


que la suppression d'une ligne de
tableref va entraîner automatiquement la
suppression des lignes qui la référencent
dans la table.
• Si cette option n'est pas indiquée, il est
impossible de supprimer des lignes de
tableref qui sont référencées par des
lignes de la table.
Pr. TIKITO 46
FOREING KEY

• A la place de ON DELETE CASCADE


on peut donner l'option ON DELETE
SET NULL.
• Dans ce cas, la clé étrangère sera
mise à NULL si la ligne qu'elle
référence dans tableref est
supprimée.

Pr. TIKITO 47
FOREING KEY

CREATE TABLE EMP (


MATR INTEGER CONSTRAINT KEMP PRIMARY KEY,
NOME VARCHAR(10) CONSTRAINT NOM_UNIQUE UNIQUE
CONSTRAINT MAJ CHECK (NOME = UPPER(NOME)),
DEPT INTEGER CONSTRAINT R_DEPT REFERENCES DEPT(DEPT)
CONSTRAINT NDEPT CHECK (DEPT IN (10, 20, 30, 35, 40)))

CREATE TABLE EMP (


MATR INTEGER,
NOME VARCHAR(10) CONSTRAINT NOM_UNIQUE UNIQUE
CONSTRAINT MAJ CHECK (NOME = UPPER(NOME)),
CONSTRAINT NDEPT DEPT INTEGER CHECK (DEPT IN (10, 20, 30,
35, 40)),
CONSTRAINT KEMP PRIMARY KEY (MATR),
CONSTRAINT R_DEPT FOREIGN KEY (DEPT) REFERENCES
DEPT(DEPT))
Pr. TIKITO 48
FOREING KEY

CREATE TABLE PARTICIPATION (


MATR INTEGER CONSTRAINT R_EMP
REFERENCES EMP,
CODEPrj VARCHAR2(5) CONSTRAINT
R_PROJET REFERENCES PROJET,
CONSTRAINT PKPART PRIMARY
KEY(MATR, CODEPrj))

Pr. TIKITO 49
Modification d’une Table

Alter
• Cette commande permet de gérer les
colonnes d'une table :
• Ajout d'une colonne (après toutes les
autres colonnes),
• Suppression,
• Modification d'une colonne existante

Pr. TIKITO 50
Ajout d'une colonne - ADD

ALTER TABLE table


ADD (col1 type1, col2 type2, ...)

• Permet d'ajouter une ou plusieurs colonnes à une table


existante.
• Les types possibles sont les mêmes que ceux décrits
avec la commande CREATE TABLE.
• Les parenthèses ne sont pas nécessaires si on n'ajoute
qu'une seule colonne.
• L'attribut 'NOT NULL' peut être spécifié seulement si la
table est vide
• Il est possible de définir des contraintes de colonne
Pr. TIKITO 51
Ajout d'une colonne - ADD

ALTER TABLE Article


ADD ??????????

• Ajouter le champs Couleur de type


varchar(8) à la table Article, et affecter lui
la couleur noir par défaut
Pr. TIKITO 52
Modification d'une colonne - MODIFY

ALTER TABLE table


Alter Column (col1 type1, col2 type2, ...)

• Le colonnes sont bien sûr déjà existantes dans la


table.
• type1, type2,... sont les nouveaux types que l'on
désire attribuer aux colonnes.
• Il est possible de modifier la définition d'une colonne, à
condition que la colonne ne contienne que des valeurs
NULL ou que la nouvelle définition soit compatible
avec le contenu de la colonne
Pr. TIKITO 53
Modication d'une colonne - MODIFY

ALTER TABLE Article


Alter Column ??????????

• Modifier le champs Couleur de la table


Article, pour qu’on puisse y insérer la valeur
« bleu-clair »
• Accorder la possibilité de NULL pour le
champ Nom ?
Pr. TIKITO 54
Suppression d'une colonne - DROP COLUMN

ALTER TABLE table


Drop Column col

• La colonne supprimée ne doit pas être


référencée par une clé étrangère ou
utilisée par un index.
Pr. TIKITO 55
Ajouter / Supprimer une contrainte

• Des contraintes d'intégrité peuvent


être ajoutées ou supprimées par la
commande ALTER TABLE.
• On ne peut ajouter que des
contraintes de table.
• Si on veut ajouter (ou modifier) une
contrainte de colonne, il faut modifier
la colonne
Pr. TIKITO 56
Ajouter / Supprimer une contrainte

ALTER TABLE EMP21


DROP CONSTRAINT NOM_UNIQUE21

ALTER TABLE EMP21


ADD CONSTRAINT MAJ_PRENOM CHECK
(PRENOM = UPPER(PRENOM) COLLATE
French_BIN / French_CS_AI)
Pr. TIKITO 57
DISABLE / ENABLE des contraintes

• Les contraintes d'intégrité sont parfois


gênantes.
ALTER TABLE ... NOCHECK/CHECK
• Il faut que l'on soit certain qu'aucune
donnée ajoutée pendant l'invalidation
de la contrainte ne violera la
contrainte.

Pr. TIKITO 58
DISABLE / ENABLE des contraintes

ALTER TABLE EMP21


NOCHECK CONSTRAINT MAJ_PRENOM

ALTER TABLE EMP21


CHECK CONSTRAINT MAJ_PRENOM

Pr. TIKITO 59
Truncate ou Drop Table ??

Truncate TABLE table


Drop TABLE table

Pr. TIKITO 60
Exercice 1

Client(Id_clt, Nom, Adresse, Date_Naiss,


Nationalité)
Commande(Id_Cmd, Date_Cmd, Montant_TTC,
Etat, Id_clt#)
Detail_Cmd(Id_Cmd#,Id_Pt#, Qtite_Cmd)
Produit( Id_Pt, Nom, Couleur, Prix_Unit,
Qtite_Stock, Id_Type_Pt#)
TypeProduit(Id_Type_Pt, Nom_Type, Num_Rayon)
Contraintes:
• Les quantités >=0
• Etat : Livré, En cours, Annulé
Pr. TIKITO 61
Exercice 2

Pr. TIKITO 62
ENSMR Séance 8 2021-2022

Système de Gestion de Base de Données

Pr KAWTAR TIKITO tikito@enim.ac.ma


Systèmes de Gestion de Base de Données

Introduction Générale

Modèle Relationnel

DDL

Select 1/2

Select 2/2

DML

Travaux Dirigés

Pr. TIKITO 64
Langage de Manipulation de Données

• Il existe trois commandes SQL


permettant d'effectuer les trois types
de modification des données :
– INSERT ajout de lignes
– UPDATE mise à jour de lignes
– DELETE suppression de lignes

Pr. TIKITO 65
Ajout simple

INSERT INTO table (col1,..., coln )


VALUES (val1,...,valn )

• Si une colonne est porteuse de la propriété


compteur (IDENTITY), c’est le système qui
fournira automatiquement un N° par
incrémentation. Cette colonne ne devra donc
pas être nommée dans la liste des colonnes.

Pr. TIKITO 66
Ajout depuis Sélection

INSERT INTO table (col1,..., coln )


SELECT ...

• Très utile dans le cas de migrations de données.

Pr. TIKITO 67
Modification

UPDATE table
SET col1 = exp1, col2 = exp2, ...
WHERE prédicat

UPDATE table
SET (col1, col2,...) = (SELECT ...)
WHERE prédicat

Pr. TIKITO 68
Suppression

DELETE FROM table


WHERE prédicat

Attention : Where est facultative !!!!

Pr. TIKITO 69
ENSMR 2021-2022

Système de Gestion de Base de Données

Pr KAWTAR TIKITO tikito@enim.ac.ma


Interrogation

SELECT ...
FROM ...
WHERE ...
GROUP BY ...
HAVING ...
ORDER BY ...
Pr. TIKITO 71
SELECT

SELECT [DISTINCT] *
FROM table

SELECT [DISTINCT] exp1 [[AS] nom1 ],


exp2 [[AS] nom2 ]
FROM table

Pr. TIKITO 72
SELECT

SELECT *
FROM Produit

SELECT Distinct Couleur


FROM Produit

Pr. TIKITO 73
SELECT

SELECT Nom
FROM Client

Par ordre alphabétique ?

Pr. TIKITO 74
SELECT

SELECT [DISTINCT] *
FROM table
ORDER BY champs

SELECT [DISTINCT] *
FROM table
WHERE conditions
ORDER BY champs
Pr. TIKITO 75
WHERE

• Trois types d'expressions (arithmétiques,


caractères, ou dates)
• Peuvent être comparées au moyen des
opérateurs d'égalité ou d'ordre
• =, !=, <, >, <=, >=
• BETWEEN, IN, LIKE, IS NULL,
• AND, OR, NOT
• ANY, ALL
Pr. TIKITO 76
WHERE

WHERE exp op ANY (SELECT ...)


WHERE exp op ALL (SELECT ...)
WHERE exp IN (SELECT ...)
WHERE exp NOT IN (SELECT ...)

• où op est un des opérateurs =, !=, <, >,


<=, >=.
Pr. TIKITO 77
SELECT

• Lister les clients qui ont plus que 25 ans


• Lister les clients qui ont moins de 35 ans
• Lister les clients dont l’âge est entre 25 et
35ans
• Lister les produits existants en stock par
ordre alphabétique décroissant de leur
nom. ( si un article existe en plusieurs
couleurs, alors on les classe par ordre
alphabétique croissant des couleurs)
Pr. TIKITO 78
Fonctions d’agrégation

SELECT [MAX] / [MIN] / [AVG] / [COUNT] /


[SUM] (champs)
FROM table

SELECT [fct_agregation(…)]
FROM table
GROUP BY champs

Pr. TIKITO 79
Fonctions d’agrégation

SELECT Max(Prix_Unit), Id_Type_Pt#


FROM Produit

SELECT Max(Prix_Unit) , Id_Type_Pt#


FROM Produit
GROUP BY Id_Type_Pt#

Pr. TIKITO 80
Fonctions d’agrégation

SELECT [fct_agregation(…)]
FROM table
GROUP BY champs
HAVING conditions

Pr. TIKITO 81
Fonctions d’agrégation

SELECT Count(*) AS Nombre_Produit ,


Id_Type_Pt#
FROM Produit
GROUP BY Id_Type_Pt#
HAVING Count(*) > 5

Pr. TIKITO 82
Systèmes de Gestion de Base de Données

Introduction Générale

Modèle Relationnel

DDL

Select 1/2

Select 2/2

DML

Travaux Dirigés

Pr. TIKITO 83
Interrogation

SELECT ...
FROM ...
WHERE ...
GROUP BY ...
HAVING ...
ORDER BY ...
Pr. TIKITO 84
Jointures

• Faire appel à plusieurs tables


• Attention : Produit cartésien
– Inner Join
– Left Join
– Right Join
– Full Join
Pr. TIKITO 85
Inner Join

• Aussi appelée EQUIJOIN


• Type de jointures très
communes pour lier plusieurs
tables entre-elles.
• Retourne les enregistrements
lorsqu’il y a au moins une ligne
dans chaque colonne qui
correspond à la condition.
Pr. TIKITO 86
Inner Join

Client(Id_clt, Nom, Adresse, Date_Naiss, Nationalité)


Commande(Id_Cmd, Date_Cmd, Montant_TTC, Etat, Id_clt#)

Select *
From Client Clt, Commande Cmd
Where ????

Select *
From Client Clt INNER JOIN Commande
Cmd ON ????
Pr. TIKITO 87
Left Join

• LEFT OUTER JOIN


• Lister tous les résultats de la
table de gauche même s’il n’y a
pas de correspondance dans la
deuxième table.

Pr. TIKITO 88
Left Join

Client(Id_clt, Nom, Adresse, Date_Naiss, Nationalité)


Commande(Id_Cmd, Date_Cmd, Montant_TTC, Etat, Id_clt#)

Select *
From Client Clt LEFT JOIN Commande Cmd
ON ????

Select *
From Client Clt LEFT OUTER JOIN
Commande Cmd ON ????

Pr. TIKITO 89
Right Join

• Right OUTER JOIN


• Lister tous les résultats de la
table de droite même s’il n’y a
pas de correspondance dans la
deuxième table.

Pr. TIKITO 90
Right Join

Client(Id_clt, Nom, Adresse, Date_Naiss, Nationalité)


Commande(Id_Cmd, Date_Cmd, Montant_TTC, Etat, Id_clt#)

Select *
From Commande Cmd
Right JOIN Client Clt ON ????

Select *
From Client Clt Right OUTER JOIN
Commande Cmd ON ????
Pr. TIKITO 91
Full Join

• FULL OUTER JOIN


• Combiner les résultats des 2
tables, les associer entre eux
grâce à une condition et remplir
avec des valeurs NULL si la
condition n’est pas respectée.

Pr. TIKITO 92
Exercice

Client(Id_clt, Nom, Adresse, Date_Naiss,


Nationalité)
Commande(Id_Cmd, Date_Cmd, Montant_TTC,
Etat, Id_clt#)
Detail_Cmd(Id_Cmd#,Id_Pt#, Qtite_Cmd)
Produit( Id_Pt, Nom, Couleur, Prix_Unit,
Qtite_Stock, Id_Type_Pt#)
TypeProduit(Id_Type_Pt, Nom_Type, Num_Rayon)
Contraintes:
• Les quantités >=0
• Etat : Livré, En cours, Annulé
Pr. TIKITO 93
Exercice

Afficher la liste des


produits ( Nom, Couleur,
Prix_Unit, Qtite_Stock,
Nom_Type_Produit) et la
quantité commandée de la
commande numéro 5

Pr. TIKITO 94

Vous aimerez peut-être aussi