Académique Documents
Professionnel Documents
Culture Documents
2022/2023
Déroulement
Volume Horaire :
CM : 15h
TP : 11h
Evaluation :
Contrôles Continus + Quiz + Travaux à rendre + Assiduité = 40%
Examen final: 60%
2
Plan du cours
3
Chapitre 1: Notion de Bases de données
1. Introduction;
6. Conclusion.
4
Les informations dans l’entreprise
Décisions
Chef
d’entreprise
Informations
5
Où se trouve les informations ?
Documents
Carte mémoire
Ordinateurs
Clé USB
6
Risques
• Des informations sont éparpillées
• Oublie d’information
• Plusieurs erreurs possibles
• Perte du temps
7
Solutions
Deux approches :
8
Base de données ou Excel?
• Redondance :
Données répétées (info client si plusieurs commandes, info produit si plusieurs fois
commandé…)
9
• Réécriture :
Orthographe, perte de temps, mise à jour difficile
Approche Base de données
10
Le système de gestion de base de données
La gestion de la base de données se fait grâce à un système appelé SGBD
(Système de Gestion de Bases de Données) ou en anglais DBMS (DataBase
Management System).
Le SGBD est un logiciel permettant de gérer les bases de données, c'est-à-
dire :
permettre l'accès aux données de façon simple
autoriser un accès aux informations à de multiples utilisateurs
manipuler les données présentes dans la base de données (insertion,
suppression, modification)
Le SGBD est l'interface entre la base de données et les utilisateurs 11
Niveaux de description des SGBD
Trois niveaux de description ou d'abstraction des données sont définis selon
la norme ANSI/SPARC (Standard Planning And Requirement Comitte):
12
Niveau interne (ou physique) :
Est le niveau relatif à la mémoire physique.
13
Niveau externe
14
Niveau conceptuel ou logique
Décrit la structure des données dans la base, les contraintes d’intégrité,
leurs propriétés et leurs relations, indépendamment de toute
préoccupation technologique d'implémentation ou d'accès par les
utilisateurs;
En général, la vue conceptuelle est censée être une vue des données
telles qu’elles sont réellement.
15
Niveaux de description des SGBD
16
Objectifs d'un SGBD
Un SGBD doit résoudre certains problèmes et répondre à des besoins précis :
17
Indépendance physique
18
Indépendance logique (1)
19
Indépendance logique (2)
Exemple: Une base de données contient les informations suivantes:
véhicule(num-véhicule, marque, type, couleur)
personne(num-CIN, nom, prénom)
propriétaire(num-CIN, num-véhicule, date-achat).
Un groupe de travail ne s’intéressera qu’aux individus qui possèdent
une voiture :
individus(num-CIN, nom, prénom, num-véhicule).
Un autre groupe ne s’intéressera qu’aux véhicules vendus à une
certaine date :
voiture(num-véhicule, type, marque, date-achat). 20
Non redondance des données
21
Cohérence des données
• Cohérence obtenue par la vérification des contraintes d’intégrité.
• Une contrainte d’intégrité est une contrainte sur les données de la base, qui
doit toujours être vérifiée pour assurer la cohérence de cette base.
• Les systèmes d’information sont souvent remplis de telles contraintes ; le
SGBD doit permettre une gestion automatique de ces contraintes d’intégrité
sur les données.
Par exemple :
‒ un identifiant doit toujours être saisi ;
‒ le salaire doit être positif
22
Partage de données
• Partage des données pour un accès multi-utilisateur simultané aux mêmes
données. Il faut entre autre assurer un résultat d'interrogation cohérent pour
un utilisateur consultant une base pendant qu'un autre la modifie.
23
Sécurité des données (1)
• Les données doivent pouvoir être protégées contre les accès non autorisés.
• Pour cela, il faut pouvoir associer à chaque utilisateur des droits d’accès
aux données.
24
Sécurité des données (2)
si une panne pendant l’exécution d’une opération, le SGBD doit être capable
de revenir à un état dans lequel les données sont cohérentes.
25
Principales fonctionnalités d’un SGBD
26
Les différents types de bases de données
Il existe trois grands types de bases de données :
27
Le modèle hiérarchique (1)
Les données sont classées hiérarchiquement, selon une arborescence
descendante.
Une donnée peut référencer une autre donnée dans une relation père/fils;
28
Le modèle hiérarchique (2)
Exemple hiérarchique
29
Le modèle hiérarchique (3)
Inconvénients :
Redondance de données.
31
Le modèle réseau (2)
Exemple réseau
32
Le modèle réseau (3)
Avantage par rapport aux SGBD hiérarchiques :
Inconvénients :
33
Le modèle relationnel (1)
les données sont enregistrées dans des tableaux à deux dimensions
(lignes et colonnes).
34
Le modèle relationnel (2)
Exemple relationnel
35
Le modèle relationnel (3)
Avantages :
36
Le modèle relationnel (4)
37
Exemples de SGBD (1)
Hiérarchiques : IMS;
38
Exemples de SGBD (2)
• Bases relationnelles
39
Méthodes de développement de bases de données
Un ouvrage est une oeuvre littéraire publiée. Il est caractérisé par
son numéro identifiant, son titre, son éditeur, sa date de première
parution, ses mots-clés (10 au maximum), une brève note de
présentation (ces notes sont en cours de constitution), le nom et
le prénom de ses auteurs. A un ouvrage correspondent un certain besoins des
nombre d'exemplaires, qui en sont la matérialisation physique. ... utilisateurs
Conception de
base de données
Conception de
base de données
42
Conception logique
43
Conception physique
44
Les concepts de base d’un MCD
• Les données à ne pas prendre en compte dans un MCD sont, en général,
les données calculées et concaténées.
• IL FAUT:
Supprimer les données calculées ;
Décomposer les données concaténées : (Adresse : Rue, ville et code
postal).
45
Les concepts de base d’un MCD
ENTITE :
• Une entité est la représentation d’un objet matériel ou immatériel ayant un rôle
dans le système que l'on désire décrire. Une entité peut être :
Une personne (CLIENT)
Un lieu (DEPOT, BUREAU, ATELIER, …)
Un objet documentaire ( LIVRE, OUVRAGE, DOSSIER,…)
47
Les concepts de base d’un MCD
PROPRIÉTÉ :
48
Les concepts de base d’un MCD
ASSOCIATION :
• Une association est une relation, un lien logique (sémantique) entre deux
ou plusieurs entités.
• L’association est représentée par un verbe.
• L'association est représentée par un ovale.
49
Les concepts de base d’un MCD
On distingue différents types d’association:
ASSOCIATION BINAIRE
Elève
CodeMassar
Nom
Matière
Etudier
Prénom CodeMatière
Date naissance Note Désignation
Ville
NiveauEtude
51
Les concepts de base (MCD)
ASSOCIATION TERNAIRE
… Nbre d’heure …
52
Les concepts de base (MCD)
ASSOCIATION RÉFLEXIVE
53
Les concepts de base (MCD)
ASSOCIATION PLURIELLE
54
Les concepts de base d’un MCD
CARDINALITÉ :
• La cardinalité d'une entité est composé d'un couple comportant une borne
maximale et une borne minimale.
Client Commande
1,n 1,1
Num_Client Passe Num_Cde
Nom Date_Cde
Prenom
56
Du MCD vers MLD
Traitement des Entités
• chaque entité devient une table ;
• chaque propriété d'une entité devient une colonne ;
• L'identifiant de l'entité devient la clé primaire.
Traitement des Associations diffère selon la cardinalité
• Association binaire avec au moins une cardinalité (x,1);
• Association binaire avec les deux cardinalités (x,n) ;
• Association non binaire.
57
Du MCD vers MLD
Cas 1 : Association binaire avec au moins une cardinalité maximale à 1 .
58
Exemple
Etudiant Formation
1,1 Suit 0,n
Num_Etu Libelle_Formation
Nom Description
Prenom
Etudiant Formation
Num_Etu Libelle_Formation
Nom Description
Prenom
#Libelle_Formation 59
Du MCD vers MLD
Cas 2 : Association binaire avec les deux cardinalités maximales à n .
L’association devient une table avec migration des identifiants des deux entités
La clé primaire de la nouvelle table est la combinaison des identifiants des deux
Formation Cours
Contient
Libelle_Formation Libelle_Cours
Description #Libelle_Formation Enseignant
#Libelle_Cours
#Enseignant
Coefficient 61
Du MCD vers MLD
Cas 3 : Association non binaire ( qui relie plus de deux entités).
L’association devient une table avec migration des clés primaires des entités
La clé primaire de la nouvelle table est la combinaison des clés primaires des
1,n
Classe
Nom_Classe
Cycle
63
Exemple
Enseignant Enseigne Matière
Classe
Nom_Classe
Cycle
64
Chapitre 2: Le modèle relationnel
1. Introduction;
2. Concepts de base;
3. Algèbre relationnelle;
65
Motivation d’un MLD
66
Origine du modèle relationnel
• Proposé par Codd (Thèse de doctorat) en 1970.
67
Base de données relationnelle
• Une BD relationnelle est composée d’un ensemble de tables (ou
relations).
• Cohérence des données gérée par des règles et normes (Vérifiée surtout
au niveau MCD)
Dépendances fonctionnelles
Théorie de la normalisation
69
Exemple de tables
70
Domaine
• Chaque colonne d’une table appartient à un ensemble de valeurs
possibles appelé son domaine.
Ali Rabat 72
Loubna Kenitra
Attribut
Définition:
‒ Colonne d’une relation caractérisée par un nom.
‒ Le nom associé à un attribut est généralement porteur de sens : il diffère
donc du nom du domaine qui supporte l’attribut.
Exemple :
« Est né à » Prénom VilleNatale
Mohamed Rabat
Relation Ali Rabat
« Est né à »
Sara Béni Mellal
Loubna Kenitra
Mohamed Rabat
Relation Ali Rabat
« Est né à » Sara Béni Mellal
Loubna Kenitra
Attributs : Prénom et VilleNatale
75
Base de données relationnelles
• Ensemble de schémas de relation.
• Le nombre total des enregistrements présents dans une table est appelé la
cardinalité de la table.
77
Exemple de relations
78
Règles pour une relation
• Deux tables d’une même BD ne peuvent avoir le même nom.
• Deux colonnes d’une même table ne peuvent avoir le même nom.
• Un même champ peut être présent dans plusieurs tables.
• L’ordre des colonnes est sans aucune importance.
• Toutes les lignes ont le même format et le même nombre d’entrée.
• Chaque entrée dans chaque ligne doit être une valeur unique.
• L’ordre des lignes est sans importance car elles sont identifiées par leur
contenu.
• Il n’y a pas deux lignes identiques dans toutes leurs entrées. 79
La valeur NULL
• Dans une relation, la valeur NULL représente des données manquantes,
inconnues.
• La valeur NULL correspond à une entrée non renseignée (non saisie, non
introduite, non obligatoire).
Attention :
Intégrité de domaine.
Intégrité de relation.
Intégrité de référence.
81
Intégrité de domaine
• Contrôle des valeurs des attributs:
QTE_STOCK ≥ QTE_COMMANDE
82
Intégrité de relation
• Aucun des attributs de la clé primaire ne doit être NULL (du fait que la clé
primaire identifie de manière unique les tuples d’une relation).
83
Clé étrangère
84
Clé étrangère
• Clé étrangère permet au SGBDR de maintenir la cohérence des lignes de
deux relations ou des lignes de la même relation.
• Définition : une clé étrangère est un attribut appartenant à une table qui
existe aussi en tant que clé primaire dans une autre table.
• Une clé étrangère d’une table référence une clé primaire d’une autre table.
• Les valeurs de clé étrangère qui apparaissent dans une table doivent être
les mêmes que celles de clé primaire dans la table connexe.
85
Clé étrangère
• même type de champ (texte avec texte, numérique avec numérique ...)
• Lorsqu’une ligne contenant une clé primaire est supprimée, le concepteur peut
spécifier au SGBD de supprimer toutes les lignes des autres tables ayant des
clés correspondantes ou de régler toutes les clés étrangères correspondantes à
NULL.
89
Les relations entre tables
• Dans une BD, certaines tables sont en relation les unes avec les autres.
• On répartie les données dans des tables que l’on relie pour réduire la
redondance des données.
90
Les relations entre tables
91
Les relations entre tables
Exemples de relations entre tables :
92
Les relations entre tables
93
Les relations entre tables
94
Exercice
• Considérons la table Département
• Expliquez si ces les lignes peuvent être ou non insérées dans la table
Département.
95
Solution de l’exercice
• 1ère ligne Non : cette ligne ne peut pas être insérée, car elle viole le
principe d’unicité de la clé primaire (la valeur 10 existe déjà dans la table).
• 2ème ligne Non : cette ligne ne peut pas être insérée, car elle viole la
contrainte d’intégrité de la clé primaire (la clé primaire ne peut pas être
NULL).
• 3ème ligne Oui : cette ligne peut être insérée sans problème, car aucune
contrainte n’est violée.
96
Normalisation
• Lors de la conception d’une BD, plusieurs possibilités de modélisation
existent;
• La qualité d’un modèle dépend de plusieurs facteurs:
quantité d'information à stocker
facilité d'expression des requêtes
prévention d'erreur de mise à jour et d'incohérences
• La normalisation d’une BDD implique le respect de critères de protection de
l’intégrité des données.
• Plusieurs formes normales existent dont 1ère, 2ème, 3ème sont largement
suffisantes. 97
La normalisation : exemple
• Une entreprise de vente de bateaux qui souhaite constituer un SI relatif à
son activité.
Achats(IdClient, NomClient, PrénomClient, AdresseClient,
ImmatriculationBateau, ModèleBateau, LongueurBateau, DateAchat,
MontantAchat)
Problèmes potentiels
1. redondance de données :
une personne qui achète plusieurs bateaux
2. incohérence suite à une Mise à jour :
une personne qui change d’adresse 98
La normalisation : exemple
3. anomalies lors d’insertion/suppression :
• un client potentiel ne peut être enregistré dans la BD s’il n’a pas
encore acheté de bateau.
• lorsqu’un client vend son bateau, il est supprimé du système
d’information.
99
Comment normaliser ?
100
Première Forme Normale
Une relation est dite en Première Forme Normale si tous ses attributs sont
atomiques ;
• aucun des attributs ne doit être une relation entre « sous-attributs »
• pas de colonnes dans une colonne
101
Dépendance Fonctionnelle
Définition
• Deux groupes d’attributs X et Y de la relation R sont en Dépendance
Fonctionnelle si dans R, chaque valeur de X détermine une et une seule
valeur de Y
102
Exemple 1
Soit les deux attributs suivantes:
• Code APOGEE
• Nom étudiant
Est qu’il y a une dépendance fonctionnelle entre ces deux attributs?
Détermine ?
Code APOGEE Nom étudiant
103
Exemple 2
Soit les deux attributs suivantes:
• Nom client
• Date de commande
Est qu’il y a une dépendance fonctionnelle entre ces deux attributs?
Détermine ?
Aucun de ses attributs non-clés ne dépend d’un autre attribut non-clé ; (il
n’existe pas de DF entre 2 attributs non-clés).
107
Exemple
• ville(num_ville, nom_ville, num_dept, nom_dept)
• DF
num_ville nom_ville, num_dept, nom_dept
num_dept nom_dept
• ville n’est pas en 3 FN car nom_dept dépend de num_dept
• décomposition
ville(num_ville, nom_ville, num_dept)
dept(num_dept, nom_dept)
108
Algèbre relationnelle
Définition:
• Collection d’opérations formelles qui agissent sur des relations et
produisent une relation en résultat.
• Dans la plupart des systèmes relationnels, la réponse à une requête
s’obtient par l’utilisation d’un ou plusieurs opérateurs relationnels.
Deux types d’opérateurs:
Opérateurs unaires :
Sélection, Projection,
Opérateurs binaires :
Union, Intersection, Différence, Produits, Jointures, … 109
Algèbre relationnelle
une expression dans l’algèbre relationnelle, i.e., des opérations sur les
tables.
110
Algèbre relationnelle
• Soit Filtrer :
‒ Sélection (filtre / critères)
‒ Projection (choix de colonnes)
‒ Différence (suppression de lignes)
• Soit Combiner :
‒ Produit cartésien (toutes les possibilités)
‒ Jointure (complément d'information)
‒ Union (union d'ensembles de lignes)…
111
Opérateurs relationnels unaires
• Projection
• Sélection
112
Projection
La projection d’une relation R sur un ensemble d’attributs (A1 ,…, Ak ) se note
:
113
Exemple 1
• Quels sont les références et les prix des produits ?
𝜋𝐼𝑑𝑃𝑟𝑜,𝑃𝑟𝑖𝑥 (𝑃𝑟𝑜𝑑𝑢𝑖𝑡)
114
Exemple 2
• Quelles sont les marques des produits ?
𝜋𝑀𝑎𝑟𝑞𝑢𝑒 (𝑃𝑟𝑜𝑑𝑢𝑖𝑡)
115
Sélection
• La sélection sur une relation R selon une condition C se note:
116
Exemple
• Quelles sont les produits de marque ‘IBM’ ?
• 𝜎𝑀𝑎𝑟𝑞𝑢𝑒="𝐼𝐵𝑀" (𝑃𝑟𝑜𝑑𝑢𝑖𝑡)
117
Sélection
• Opérateurs de comparaison :
118
Opérateurs relationnels binaires
• Union : La fusion de deux relations est considérée.
• Différence : Les tuples d’une relation qui n’existent pas dans une seconde
relation sont considérés.
• Produit cartésien : Toutes les combinaisons entre tuples de 2 relations
sont considérées.
• Intersection : Seuls les tuples présents dans 2 relations sont considérés.
• Thêta-produit : Produit cartésien suivi d’une sélection (Appelé également
jointure). 119
Union
• L’union de deux relations R et R’ se note : 𝑅 ∪ 𝑅′
120
Intersection
• L’intersection de deux relations R et R’ se note : 𝑅 ∩ 𝑅′
121
Différence
• La différence de deux relations R et R’ se note : 𝑅 − 𝑅′
122
Produit cartésien
• Le produit cartésien de deux relations R et R’ se note : 𝑅 × 𝑅′
123
Jointures
• Jointure naturelle
Thêta-produit dont la condition est une égalité de valeurs entre des
attributs de deux relations.
• Jointure extérieure
Jointure naturelle à laquelle on ajoute les tuples de chaque relation
n’ayant pas trouvé de correspondance dans l’autre.
• Semi-jointure
Jointure naturelle à laquelle on ajoute les tuples de la première relation
n’ayant pas trouvé de correspondance dans l’autre.
La jointure naturelle est l’opérateur le plus utilisé avec les sélections et 124
projections.
Jointure naturelle
• La jointure naturelle de deux relations R et R’ selon une condition C se note
:
125
Renommage
• C’est l’opérateur qui permet de donner un nouveau nom à un attribut
existant. 𝑅′ = 𝜌𝑎Τ𝑏 𝑅
126
Combinaison d’opérateurs
La puissance de l'algèbre relationnelle s'exprime dans la combinaison
d’opérateurs permettant d'exprimer des requêtes précises.
Ex: on cherche l’immatriculation des véhicules possédés par la personne
dont le nom est « Ali ».
127
Exercice Algèbre relationnelle
128
Exercice
Soit la base de données simplifiée. Exprimer la signification et le résultat des
requêtes suivantes:
129
Chapitre 3: Le langage SQL
2. Types de données;
3. Requêtes d’action;
4. Requêtes de sélection;
130
Présentation du langage SQL
• Le sigle SQL signifie "Structured Query Language", soit en français
"Langage de requêtes structuré".
• Il a été développé par IBM au cours des années 70 et son nom était
SEQUEL, abréviation de Structured English QUEry Language.
• SQL : langage proche de l’utilisateur et de sa façon de poser les requêtes
(formulation proche du langage naturel).
• SQL : langage facile à apprendre pour rédiger les requêtes, les lire et les
comprendre. 131
Présentation du langage SQL
Utilisation de SQL :
132
Types de données
• INTEGER ou INT : entiers signés.
• TEXT(p) ou CHAR(p) : chaîne de caractères de longueur fixe de p caractères.
• VARCHAR (p): chaîne de caractères de longueur variable de p caractères
maximum.
• DATE, TIME, DATETIME: dates et/ou heures.
• LOGICAL : valeur logique « oui » ou « non ».
• DECIMAL(p, q) : nombres décimaux de p chiffres dont q après le point décimal
(par défaut, q = 0).
• FLOAT : nombre réel en virgule flottante.
• … 133
Types de données
Quelques propriétés des attributs en SQL :
• PRIMARY KEY : clé primaire.
• FOREIGN KEY : clé étrangère.
• NULL / NOT NULL : valeurs non obligatoires/obligatoires.
• DEFAULT = Valeur : pour définir une valeur par défaut.
• UNIQUE : permet de vérifier que la valeur saisie pour un champ
n'existe pas déjà dans la table.
• CONSTRAINT : permet de donner un nom à une contrainte ce qui
permet de la manipuler. 134
Conventions
Les conventions relatives aux noms des tables et des champs varient
quelque peu d'un SGBD à l'autre:
• Le nombre de caractères ne doit pas être trop grand (64 dans Access,
18 à 30 dans d'autres SGBD) ;
• Seuls les lettres, les chiffres et le caractère de soulignement sont
autorisés.
• Certains SGBD requièrent que le nom d'un champ commence par une
lettre, mais ce n'est pas le cas d'Access ;
• Les termes faisant partie du vocabulaire du langage SQL sont interdits
("date » par exemple). Ce sont les mots réservés. 135
Les requêtes dans SQL
• Sélections (Interrogation)
136
Requêtes d’action
• Requêtes d’actions: Sont des requêtes qui permettent de créer des tables,
d’ajouter, de supprimer des enregistrements d’une table, d’ajouter une
colonne…
• Création d’une table : Cette opération donne comme résultat une table
vide ne contenant aucun enregistrement.
Il faut préciser :
Le nom de la table;
La description de ses colonnes : nom, type de données et
contraintes.
L’instruction CREATE TABLE permet de créer une nouvelle table. 137
Création de table
• Syntaxe SQL pour créer une nouvelle table avec une clé primaire :
CREATE TABLE nom_de_la_table (
champ1 type_donnees PRIMARY KEY ,
champ2 type_donnees,
champ3 type_donnees,
champ4 type_donnees
);
138
Création de table
• Syntaxe SQL pour créer une nouvelle table avec une clé primaire composé :
CREATE TABLE nom_de_la_table (
champ1 type_donnees,
champ2 type_donnees,
champ3 type_donnees,
champ4 type_donnees,
PRIMARY KEY (champ1,champ2)
);
139
Création de table: Exemple
141
Création d’une table: Clé étrangère
CREATE TABLE Participe (
Numadh INT,
Numact INT,
anneeParticipe INT,
PRIMARY KEY (Numadh, Numact, AnneeParticipe),
FOREIGN KEY (Numadh) REFERENCES
Adherent(Numadh),
FOREIGN KEY (Numact) REFERENCES Activite(Numact)
);
142
Modification dans une table
143
Modification dans une table
Il y a trois types d’actions concernant la modification de structure d’une table :
Ajouter une ou plusieurs colonnes.
Supprimer une ou plusieurs colonnes.
Modifier les propriétés d’une ou de plusieurs colonnes.
Les commandes SQL relatives à ces actions :
ADD
DROP
MODIFY
144
Modification dans une table
• Pour modifier la structure d’une table, on précise tout d’abord le nom de
celle-ci en écrivant la commande suivante :
• Pour cela, il faut utiliser l’une des trois commandes : ADD, DROP ou
MODIFY.
145
Modification dans une table : Exemples d’ajout
• Ajouter une colonne « DATECOMPTE » de type Date dans la table «
COMPTE » :
ALTER TABLE COMPTE
ADD DATECOMPTE DATE;
Ou
ALTER TABLE COMPTE
ADD Column DATECOMPTE DATE;
146
Modification dans une table: Exemples de suppression
DROP ADRAGENCE;
147
Modification dans une table : Exemples de modification
de propriétés
• Modifier la colonne « AGE » de la table « CLIENT » pour qu’elle soit
obligatoire:
ALTER TABLE CLEINT
MODIFY AGE NOT NULL;
• Modifier le type de la colonne « ADRAGENCE » pour qu’il soit un
CHAR(100) au lieu de CHAR(40) :
ALTER TABLE AGENCE
MODIFY ADRAGENCE CHAR(100);
148
Suppression d’une table
149
Insertion d’enregistrements
• La commande qui permet d’insérer une ligne dans une table est la suivante:
• Dans la clause “INTO…”, on spécifie le nom de la table ainsi que les noms
des colonnes.
• Si l’on veut ajouter une ligne contenant les valeurs pour tous les champs,
dans ce cas on peut omettre les noms de colonnes.
150
Insertion d’enregistrements: exemple
151
Modification d’un enregistrement
152
Modification d’un enregistrement
• Les champs à mettre à jour doivent être écrits dans la clause SET, l’un
après l’autre (avec leurs valeurs) et séparés par des virgules.
• Les champs non spécifiés après la clause SET ne seront pas modifiés.
153
Modification d’un enregistrement: exemples
• Donner une requête SQL pour modifier l’adresse de l'employé numéro 10
par la nouvelle adresse sera "10 Avenue Mohamed VI, Rabat".
155
Suppression d’enregistrements: exemples
156
Les requêtes de sélection
• Une requête de type SELECTION permet d'interroger une base de données
en composant les projections, les restrictions, les jointures….
• Le résultat d’une telle requête est renvoyé sous forme d’une table formée
d’un ou plusieurs attributs.
Syntaxe :
SELECT nom_du_champ
FROM nom_de_table ;
157
Exemples
Soit la table ACTEURS :
ACTEURS (N_act, Nom, Prénom, Nationalité, Salaire, Films)
• Donner une requête SQL pour afficher tous les champs et tous les
enregistrements de la table ACTEURS:
SELECT * FROM ACTEURS;
• Requête SQL pour afficher uniquement le Nom, Prénom et le salaire de
chaque Acteur:
SELECT Nom, Prénom, Salaire FROM ACTEURS;
158
DISTINCT
• Cette requête sélectionne le champ « ma_colonne » de la table
« nom_du_table » en évitant de retourner des doublons.
Syntaxe :
159
Exemple
SELECT DISTINCT prenom FROM client ;
Table :Client
160
• Avec l’instruction SELECT, il est possible d’utiliser les fonctions suivantes
pour effectuer des calculs:
‒ SUM () renvoie la somme d’un champ
‒ AVG () renvoie la moyenne d’un champ
‒ MAX () renvoie la valeur maximale d’un champ
‒ MIN () renvoie la valeur minimale d’un champ
‒ COUNT (*) renvoie le nombre d’enregistrements de la table
161
Exemples
Syntaxe :
SELECT nom_colonnes
FROM nom_table
WHERE condition ;
164
Les opérateurs de comparaison
• On peut utiliser les opérateurs suivants dans les conditions d’une requête :
= : égal
<> : différent
< : inférieur strict
> : supérieur strict
<= : inférieur ou égal
>= : supérieur ou égal
165
Les opérateurs de comparaison
• Comparaison à une valeur (= , < , > , >= , <= , <>)
166
Les opérateurs logiques
• Ils permettent de construire des conditions plus complexes.
• Les opérateurs logiques de SQL sont :
• AND (ET) : conjonction.
• OR (OU) : disjonction
• NOT (NON) : négation
• L'opérateur AND réunit deux ou plusieurs conditions et sélectionne un
enregistrement seulement si cet enregistrement satisfait toutes les
conditions listées.
• L'opérateur OR réunit deux conditions, mais sélectionne un enregistrement
167
si une des conditions listées est satisfaite.
Exemples
• Afficher tous les noms d’acteurs dont le salaire est supérieur ou égal à 4000
SELECT Nom FROM ACTEURS WHERE Salaire >=4000;
• Afficher tous les noms d’acteurs dont la nationalité est américaine et le
salaire est supérieur à 4000
SELECT Nom FROM ACTEURS WHERE
(Nationalité="américaine") AND (Salaire > 4000);
• Afficher tous les noms d’acteurs dont la nationalité est américaine ou Le
salaire est supérieur à 4000
SELECT Nom FROM ACTEURS WHERE
(Nationalité="américaine") OR (Salaire >4000);
168
Exemples
169
Exemples
170
Exemple
171
Les jointures
• Jointure interne: utilise INNER JOIN. Ne sont incluses dans le résultat
final que les lignes qui se correspondent dans les deux tables.
• La jointure externe gauche, dans laquelle INNER JOIN est remplacé par
LEFT JOIN. Toutes les lignes de la première table sont incluses dans le
résultat de la requête, même s'il n'existe pas de ligne correspondante dans
la seconde table ;
• La jointure externe droite, dans laquelle INNER JOIN est remplacé par
RIGHT JOIN. Toutes les lignes de la seconde table sont incluses dans le
résultat de la requête, même s'il n'existe pas de ligne correspondante dans
la première table. 172
Exemple
• Afficher tous les produits (Réf, Nompr) qui ont été vendus.
SELECT PRODUITS.Réf, Nompr FROM PRODUITS INNER JOIN
DETAILS ON PRODUITS.Réf = DETAILS.Réf ;
Ou bien
SELECT PRODUITS.Réf, Nompr FROM PRODUITS, DETAILS
WHERE PRODUITS.Réf = DETAILS.Réf ;
173
ORDER BY
• Afficher tous les produits (Réf, Nompr) qui ont été vendus par ordre
décroissant selon le champ Réf.
SELECT PRODUITS. Réf, Nompr
FROM PRODUITS , DETAILS
WHERE PRODUITS. Réf = DETAILS . Réf
ORDER BY PRODUITS.Réf DESC;
Par défaut, le résultat d’une requête sélection est trié selon l’ordre croissant
(ASC) du premier attribut qui figure dans la clause SELECT.
174
GROUP BY
• En utilisant la table détails, afficher pour chaque commande le total de
quantités des produits vendus.
SELECT Ncommande, SUM(Quantité) AS Totale_quantités_
vendues
FROM DETAILS
GROUP BY Ncommande ;
175
HAVING
• Afficher pour chaque commande le total de quantités des produits vendus
et tel que ce total est > 60
SELECT Ncommande, SUM(Quantité) AS Totale_quantités_
vendues
FROM DETAILS
GROUP BY Ncommande
HAVING SUM(Quantité) > 60 ;
176
Exemple
177