Vous êtes sur la page 1sur 23

INSTITUT UNIVERSITAIRE DU CEFOD

COURS DE BASE DE DONNÉES

BDD RELATIONNELLE

Enseignant :
MADJITOLOUM Blaise
Ing. Concepteur de Système d’Information

Année Académique 2021-2022


CEFOD : COURS DE BASE DE DONNÉES RELATIONNELLE

INTRODUCTION GENERALE .......................................................................... 2


Chapitre 1- : Généralités sur les bases de données................................. 3
1-1 Définition et Avantages d'une base de données ..................................................................... 3

1-2 Niveaux de représentation ....................................................................................................... 3

1-3 Définition d’un SGBD ................................................................................................................ 4

1- 4 Les fonctions d'un logiciel de gestion de base de données .................................................... 5

Chapitre 2- : Le Modèle relationnel et ses concepts ................................ 7


2-1 Le modèle de données.............................................................................................................. 7

2-2- Outil de modélisation des données ........................................................................................ 8

2-3 Le modèle relationnel............................................................................................................. 10

Chapitre 3 : Implanter et manipuler une base de données relationnelle :


Pratique de SQL ......................................................................................... 14
3-1 Introduction ............................................................................................................................ 14

3-2 Les commandes du LDD SQL .................................................................................................. 14

3-3 Les commandes du LMD SQL ................................................................................................. 16

MADJITOLOUM Blaise « madjitoloum.blaise@gmail.com », Informaticien Certifié SAGE France 1


Site Web : www.logest.tech Tel : 63249030
CEFOD : COURS DE BASE DE DONNÉES RELATIONNELLE

INTRODUCTION GENERALE
Depuis les années 60, l’utilisation des bases de données s’est largement répandue sur

toutes les gammes d’ordinateurs, et à l’heure actuelle, les SGBDR (Système de Bases

de Données Relationnelles) sont les plus utilisés (plus de 80% des systèmes

existants).

Ce cours présente les concepts des bases de données et met l’accent aussi bien sur

la conception que sur la manipulation des bases de données relationnelles.

Compte tenu du public visé, le cours a été très simplifié afin qu’il soit accessible à toute

personne désirant comprendre, concevoir et manipuler les bases de données

relationnelles. Ce qui explique que certains aspects sur le modèle relationnel ont été

volontairement omis comme, par exemple :

 La théorie de la normalisation dans la conception ;

 Le calcul relationnel dans la manipulation des données.

Ce cours pourra apporter, à certains, un éclairage nouveau sur les concepts des bases

de données, plus particulièrement, les bases de données relationnelles, à d’autres, les

connaissances qui leurs manquaient pour pouvoir les concevoir et les manipuler.

MADJITOLOUM Blaise « madjitoloum.blaise@gmail.com », Informaticien Certifié SAGE France 2


Site Web : www.logest.tech Tel : 63249030
CEFOD : COURS DE BASE DE DONNÉES RELATIONNELLE

Chapitre 1- : Généralités sur les bases de données

1-1 Définition et Avantages d'une base de données

Définition
Une base de données est un ensemble structuré d'informations agrégées ou
élémentaires, enregistrées sur des supports accessibles, et mises à la disposition d'un
ensemble d'utilisateurs en un temps opportun.

Avantages d'une base de données


Données stockées indépendamment de l'utilisation qui en est faite, d'où :
• Redondance minimale,
• Représentation cohérente,
• Données partageables entre plusieurs utilisateurs,
• Independence données/traitements
• Séparation entre la description des données et les programmes,
• Plusieurs niveaux entre le stockage physique des données et leurs
vues par les utilisateurs.

A ces avantages immédiats s'ajoutent deux objectifs fondamentaux visés à travers une
solution base de données :
• Obtenir des représentations pertinentes des modèles conceptuels de
données : une base de données peut fournir les descriptions des entités et
permettre l'exploitation des associations d'une manière plus efficace qu'une
solution en termes de fichiers.
• Assurer la sécurité des données : l'information est une ressource pour
l'entreprise, et cette ressource doit être protégée. Une solution base de
données permet d'améliorer la sécurité des données enregistrées (gestion
des droits d'accès aux données)

1-2 Niveaux de représentation

L'intérêt de structurer en niveaux de la représentation est triple :


• Indépendance données/traitements
• Indépendance logique
• Indépendance physique

On distingue 3 niveaux :
• Externe (ou schéma externe)
• Conceptuel (schéma conceptuel)
• Interne (schéma interne)

MADJITOLOUM Blaise « madjitoloum.blaise@gmail.com », Informaticien Certifié SAGE France 3


Site Web : www.logest.tech Tel : 63249030
CEFOD : COURS DE BASE DE DONNÉES RELATIONNELLE

Schéma Schéma Schéma


extern extern extern
1 2 3
e e e

NIVEAU EXTERNE

Mond Modélisatio Schéma


conceptuel
eRée n
l NIVEAU CONCEPTUEL

Schéma
interne
NIVEAU INTERNE

Niveau externe :
Vision d'une partie du schéma conceptuel (schéma externe). C'est une vue propre à
un ou plusieurs programmes ou utilisateurs.

Niveau conceptuel

Schéma central (schéma conceptuel),

Représentation globale du système d'information du domaine informatisé

Modélisation du système d'information réelle,

La représentation fait abstraction des techniques informatiques de stockage

Niveau interne

Schéma interne

Description du stockage physique des données : enregistrements, fichiers

Structure d'accès : tables d'index, pointeurs physiques


La transformation entre niveaux est réalisée par un logiciel appelé SGBD

1-3 Définition d’un SGBD

"Ensemble de logiciels permettant la gestion complète d'une base de données, c'est


à dire, la définition, la manipulation, la maintenance d'un univers de données".

MADJITOLOUM Blaise « madjitoloum.blaise@gmail.com », Informaticien Certifié SAGE France 4


Site Web : www.logest.tech Tel : 63249030
CEFOD : COURS DE BASE DE DONNÉES RELATIONNELLE

(1) Utilisation

Manipulation (2) (3) Description

Bases
données
des
physiques

1- 4 Les fonctions d'un logiciel de gestion de base de données

I- 4- 1 Fonctions attendues (ou objectifs) d'un SGBD

• Description des données : mettre à la disposition de l'utilisateur un outil pour

décrire la structure des données à stocker dans la base : LDD

• Manipulation des données : offrir à l'utilisateur la possibilité de manipuler les

données : LMD

• Intégrité (cohérence) : consiste à préserver la qualité de l'information dans la

base contre tout incident de manipulation

• Partage des données : gérer la concurrence d'accès aux données

• Sécurité d'utilisation et de fonctionnement

* Confidentialité : au niveau de l'utilisateur

* Reprise en cas de panne : au niveau du fonctionnement

MADJITOLOUM Blaise « madjitoloum.blaise@gmail.com », Informaticien Certifié SAGE France 5


Site Web : www.logest.tech Tel : 63249030
CEFOD : COURS DE BASE DE DONNÉES RELATIONNELLE

Vue du Programme sous-


program- sous-
d'application schéma schéma
meur d'ap- A B C
plication A B
Zone de liaison

(11) (10) (1)


(2)
(9)
Buffers du (8) Système de gestion
système schéma
de la base de (3)
logique
Vue du donnée global
gestionnaire s
de la base (5)
(7)
(6)
système d'exploitation
(4)

Vue du
program- Description
meur sys- Bas physique de
physique
tèm e la base
e

MANIPULATION DESCRIPTION

1- 4- 2 Langages dans les SGBD

Pour pouvoir être utilisable, le SGBD doit communiquer avec les utilisateurs à l’aide
d’un langage. En pratique, on distingue :

• Le langage de définition des données (LDD) : Il permet de décrire les


entités et les associations qui vont constituer les schémas : conceptuel,
externes et interne de la base.
• Le langage de manipulation des données (LMD) : Pour décrire les
programmes d ‘applications (consultation, mise à jour des données)
• Le langage d’interrogation (généralement considéré comme un sous
ensemble du LMD) : Permet d’interroger directement la base, à l’aide des
commandes simples sans recours à un programme.
• Le langage de contrôle de données : Permet le contrôle d’accès aux
données et l’intégrité des données

MADJITOLOUM Blaise « madjitoloum.blaise@gmail.com », Informaticien Certifié SAGE France 6


Site Web : www.logest.tech Tel : 63249030
CEFOD : COURS DE BASE DE DONNÉES RELATIONNELLE

Chapitre 2- : Le Modèle relationnel et ses concepts

2-1 Le modèle de données

Définition :
Un modèle de données est un outil formel utilisé pour comprendre et interpréter le
monde réel.

Objectif :
Décrire le schéma conceptuel
Schéma conceptuel :
Décrit une certaine réalité du réel perçu

Processus de modélisation :
Passage du monde réel au schéma conceptuel

Les concepts de base


Entité ou objet :
Représentation d'un objet concret ou abstrait du monde réel ayant un
Intérêt pour le domaine étudié
Ex : Client, Produit

Propriété ou rubrique :
Plus petite unité de donnée possédant un nom et caractérisant un objet ou une relation
Ex : Nom-client, adresse-client

Association ou relation :
Liens existant entre les entités
Ex : entre Client et Commande : émettre

Types de lien
Binaire :
Fonctionnel : A 1:1 B
Ex : entre Directeur et Entreprise : diriger

Hiérarchique : A 1:N B
Ex : entre Classe et Étudiant : appartenir

Maillé : A N:M B
Ex : entre Commande et Produit : comprendre

N-aire
Ex : entre Professeur, Classe et Matière : faire-cours

MADJITOLOUM Blaise « madjitoloum.blaise@gmail.com », Informaticien Certifié SAGE France 7


Site Web : www.logest.tech Tel : 63249030
CEFOD : COURS DE BASE DE DONNÉES RELATIONNELLE

2-2- Outil de modélisation des données


2-2-1 le M.C.D
Définition :
Le MCD décrit la signification des données sur lesquelles reposent le SI et les
structures. Il permet d’établir une représentation claire des données du SI et définit les
dépendances fonctionnelles entre les données.

Objectif :
Représentation par les données, des phénomènes pris en compte dans le S.I.
But :
- Étudier les données et les liens entre données
- Proposer une représentation schématique

phénomènes
réels
observés

Perception, identification
et énumération
schéma
descriptif

Que représenter ?

schéma
conceptuel

Comment représenter ?

Concepts
Entité : permet de modéliser un ensemble d’objets de même nature, concrets ou
abstraits, perçus d’intérêt pour le domaine étudié. L’entité exprime un type de classe,
un ensemble dont les éléments sont appelés occurrences d’entité.

Relation : représentation d'association entre entités

Propriété : rubrique ou attribut d'une entité ou d'une relation.


Formalisme
"Entité-association",
"Entité-relation",
"Formalisme individuel"

MADJITOLOUM Blaise « madjitoloum.blaise@gmail.com », Informaticien Certifié SAGE France 8


Site Web : www.logest.tech Tel : 63249030
CEFOD : COURS DE BASE DE DONNÉES RELATIONNELLE

nom nom nom


objet relation objet
- nom - nom - nom
-propriété
" " "
propriété " "
propriété "
- " " " "

Salari Servic
e
- é
n° affecté
- - n°
- matricule date_affect - service
-nom intitulé
adr - identifiant
- cardinalité
- dimension

Notion d'identifiant
- D'un objet
Propriété particulière qui identifie de manière unique un objet - D'une relation
Est la concaténation des identifiants des objets qu'elle associe.

Règles de gestion
- Précisent les contraintes qui doivent être respectées par le modèle
- Expriment les contraintes d'intégrité du modèle On
distingue :
* Règles d'action
* Règles de calcul
* Règles administratives
* Règles logiques
* Délai d’attente

Caractéristiques d'une relation


- Dimension
C'est le nombre d'objets participant à la relation Relation de dimension 1 : met en
association deux occurrences d'un même objet (relation réflexive).

- Cardinalité
Indique pour chaque couple objet/relation, les nombres maximum et minimum
d'occurrences de la relation pouvant exister pour une occurrence de l'objet.
C’est la participation d’un objet dans une relation

Construction du M.C.D.

MADJITOLOUM Blaise « madjitoloum.blaise@gmail.com », Informaticien Certifié SAGE France 9


Site Web : www.logest.tech Tel : 63249030
CEFOD : COURS DE BASE DE DONNÉES RELATIONNELLE

À partir des informations recueillies lors des interviews (comptes rendus, documents
collectés, ...)
 Expliciter clairement les règles de gestion
 Élaborer la liste des propriétés
 Établir le dictionnaire des données (prendre soin d'éliminer les synonymes et
les poly sèmes)
 Rechercher les entités et leur identifiant
 Rattacher les propriétés aux entités
 Recenser les relations entre entités
 Si possible y rattacher les propriétés
 Étudier les cardinalités à l'aide des règles de gestion
 Vérifier que les règles de décomposition et de normalisation sont respectées.

2-3 Le modèle relationnel

2-3-1- Introduction
Définition
 Défini à partir des idées de CODD (1970)
 Basé sur la théorie mathématique des relations
 Le concept de relation découle directement de la théorie des ensembles
 Les données sont structurées sous formes de tables à deux dimensions ou de
fichiers "plats" appelés relations

Objectifs
 Proposer des schémas de données faciles à utiliser
 Fournir une approche méthodologique au processus de conception
 Améliorer l'indépendance logique/physique
 Fournir un langage non procédural de haut niveau (assertionnel)
 Prendre en compte une grande variété d'applications
 Optimiser les accès à la base de données
 Améliorer l’intégrité et la confidentialité

Concepts utilisés
 Domaine : ensemble de valeurs ex : domaine des entiers, des réels, …
 Produit cartésien : soient D1, D2, D3, ......Dn une liste de domaines ; le produit
cartésien D1 x D2 x D3 x.…x Dn est l’ensemble de n-uplets (ou tuples) appelés
<v1,v2,v3,....,vn> tels que vi 𝜖 Di où 1 ≤ i ≤ n
 Relation : c'est un sous-ensemble du produit cartésien d'une liste de domaines
R ⊆ D1 x D2 x D3 x.…x Dn

Représentation
Une relation peut se présenter sous forme de tableau dont les colonnes correspondent
aux domaines et les lignes sont les n-uplets (tuples).
Ex :

MADJITOLOUM Blaise « madjitoloum.blaise@gmail.com », Informaticien Certifié SAGE France 10


Site Web : www.logest.tech Tel : 63249030
CEFOD : COURS DE BASE DE DONNÉES RELATIONNELLE

Dépôt Agence Client Compte Avoir

Tuple Doumbeur Toto 62307B 100000


Doumbeur Micro 8739C 50000

Koutou Tati 1737X 2345


Central Fouty 1047Z 9100000

Domaines
Autres concepts :
 Un attribut est une colonne d’une relation caractérisée par un nom
 L’ordre des attributs est quelconque
 Il n'existe pas des n-uplets (tuples) identiques
 L’ordre des n-uplets (tuples) est quelconque
 La cardinalité d'une relation est le nombre de n-uplets (tuples) contenus dans
la relation
 Le nombre de domaines caractérise la relation. Une relation à n domaines est
dite de degré n
 Une clé primaire d'une relation est un sous-ensemble d'attributs qui permet
d'identifier sans ambiguïté un n-uplet (tuple) de la relation (de façon unique)

Domaine primaire :
Est un domaine sur lequel une clé primaire est définie (donc mono attribut)

Clé étrangère :
Un attribut qui n’est pas clé primaire, mais qui est défini sur un domaine primaire est
donc une clé étrangère. Elle permet d’exprimer les associations entre entités.

Schéma de relation
Une relation peut être définie :
▪ Soit en extension, en énumérant l'ensemble de n-uplets (tuples),
généralement sous la forme d’une table (voir exemple précédent)
▪ Soit en intention ; on parle alors de schéma de relation

Ex : ETUDIANT (matri-et, nom-et, pren-et, age-et, …)

MADJITOLOUM Blaise « madjitoloum.blaise@gmail.com », Informaticien Certifié SAGE France 11


Site Web : www.logest.tech Tel : 63249030
CEFOD : COURS DE BASE DE DONNÉES RELATIONNELLE

Le schéma conceptuel d’une base de données relationnelle est donc un ensemble de


schémas de relation.
Une base de données relationnelle va être constituée de l’ensemble des schémas de
relation implémentés sous forme de tables.

2-3-2 Déduction du schéma relationnel


Il existe des règles qui permettent de traduire le MCD en schéma relationnel, c’est-à-
dire en un ensemble de schémas de relation Ces règles sont les suivantes :

1ère règle :
▪ Toute entité est traduite en schéma de relation, ses propriétés devenant
ses attributs, et son identifiant devenant sa clé primaire.
2è règle :
▪ Concerne les types de liens

1°) Liens binaires

* Fonctionnelle

0,1 0,1
A R B
1,1 1,1

A(cléA,.autres attributs de A....#cléB)


B(cléB, autres attributs de B.....#cléA)

* Hiérarchique
0,n 0,1
A R B
1,n 1,1

A(cléA,.autres attributs de A..)


B(cléB,.autres attributs de B...#cléA)

* Maillée
0,n 0,n
A R B
1,n 1,n

A(cléA,.autres attributs de A.....)


B(cléB,.autres attributs de B.......)
A-B(#cléA,#cléB, propriétés de R)

MADJITOLOUM Blaise « madjitoloum.blaise@gmail.com », Informaticien Certifié SAGE France 12


Site Web : www.logest.tech Tel : 63249030
CEFOD : COURS DE BASE DE DONNÉES RELATIONNELLE

2°) Liens N-aire

0, 0,n
A n R B
1, 1,n
n
0, 1,n
n
C

A(cléA,.autres attributs de A.......)


B(cléB,. autres attributs de B......)
C(cléC,...autres attributs de C...............)
A-B-C(#cléA,#cléB,#cléC,.propriétés de R)

MADJITOLOUM Blaise « madjitoloum.blaise@gmail.com », Informaticien Certifié SAGE France 13


Site Web : www.logest.tech Tel : 63249030
CEFOD : COURS DE BASE DE DONNÉES RELATIONNELLE

Chapitre 3 : Implanter et manipuler une base de données


relationnelle : Pratique de SQL

3-1 Introduction

SQL est un langage relationnel de type ensembliste. Dans ce type de langage, une
requête décrit simplement l’ensemble résultat en fonction d’un critère portant sur un
ou plusieurs ensembles (relations), c’est le SGBD qui se charge de trouver les
meilleures procédures d’accès aux données pour fabriquer le résultat. Le langage SQL
possède un triple mode de fonctionnement. Il peut fonctionner :
- En interactif (interface d’écriture de requête)
- En intégré dans un langage de 3e génération (ex : cobol, fortran, c, …)
- Comme un langage autonome permettant de construire des fonctions
d’accès aux données (ex : PL/SQL)
Les instructions du langage SQL sont regroupées en trois sous-ensembles définissant
trois langages différents :
 Le langage de définition de données (LDD)
• Le langage de manipulation des données (LMD)
• Le langage de contrôle de données (LCD)

3-2 Les commandes du LDD SQL

La définition des données dans SQL, permet la description des objets manipulés par
le SGBD. Ces objets peuvent être des objets logiques ou des objets physiques. Les
objets logiques regroupent les tables et les synonymes. Quant aux objets physiques,
ils concernent la représentation physique des données : les espaces, les index et les
regroupements.

Les commandes du LDD SQL sont :


* CREATE : création d’objet,
* ALTER : modification de structures d’objets
* DROP : suppression d’objets

3-2-1 Définition d’objets

• Création d’une base de données

CREATE DATABASE nom de la base de données [paramètres]

• Création de domaine
Permet de définir plusieurs attributs à partir du même domaine

CREATE DOMAIN nom type values (val1, val2,…valn) ;

MADJITOLOUM Blaise « madjitoloum.blaise@gmail.com », Informaticien Certifié SAGE France 14


Site Web : www.logest.tech Tel : 63249030
CEFOD : COURS DE BASE DE DONNÉES RELATIONNELLE

• Création de table

CREATE TABLE nom de la table (attribut1 type [unique] [not null], attribut2 type
[unique] [not null],......., PRIMARY KEY (attribut1 [,attribut2,…]), FOREIGN KEY
(attribut) REFERENCES nom-table
(attribut),…);

Remarques :
Type : comprend le type de la donnée, et éventuellement la longueur
[Unique] : les lignes de la table ne doivent pas avoir la même valeur pour cet attribut
[Not null] : pour des attributs qui ne doivent pas avoir une valeur nulle.
• Création de vue

CREATE VIEW nom-vue [(nom d'attributs)]


AS SELECT liste des attributs-origines
FROM tables-origines
[WHERE conditions]
===> Permet de créer des vues pour les utilisateurs.

• Création d’index

CREATE INDEX nom d'index ON nom de table (attribut1,[attribut2,...])


[ASC| DESC]
Permet d'indexer une table

3-2-2-Modification des structures d’objets

ALTER DOMAIN nom de domaine type [valeur] ===> Pour la modification d'un
domaine.

ALTER TABLE nom de la table MODIFY(attribut,type)


ADD(attribut,type)
DROP(attribut) ===> Pour la modification d'une table.

3-2-3 Suppression d’objets

Pour supprimer une base, un domaine, une table, une vue, ou un index :

DROP DATABASE nom de la base ;

DROP DOMAIN nom de domaine ;

MADJITOLOUM Blaise « madjitoloum.blaise@gmail.com », Informaticien Certifié SAGE France 15


Site Web : www.logest.tech Tel : 63249030
CEFOD : COURS DE BASE DE DONNÉES RELATIONNELLE

DROP TABLE nom de table ;

DROP VIEW nom de la vue ;

DROP INDEX nom de l’index ; Remarque :


La suppression d'une table nécessite les opérations suivantes, transparentes
pour l’utilisateur :
▪ Suppression de toutes les lignes de la table
▪ Suppression des index et vues associés à cette table,
▪ Suppression de la table elle-même, c'est-à-dire, libération de l'espace
mémoire occupé et mise à jour du dictionnaire.

3-3 Les commandes du LMD SQL

3-3-1 Opérations du langage.

. SELECT pour les interrogations


. INSERT, DELETE, UPDATE, pour les mises à jour
On a en plus les clauses: WHERE, FROM, IN, NOT IN, UNIQUE, INTO, BETWEEN
AND, ALL, ANY, EXISTS, SET, etc.

Pour les interrogations :


SELECT attributs
FROM tables concernées
WHERE conditions de sélection.

Opérateurs de comparaison :

=, <, >, >=, <=, <>

Opérateurs logiques :

AND, OR, NOT

Opérateurs arithmétiques :

+, -, *, /

Fonctions disponibles sur SQL :


- SUM : somme des valeurs
- MIN : valeur minimum
- MAX : valeur maximum
- AVG : moyenne des valeurs
- COUNT : compter le nombre des tuples ou valeurs distinctes

MADJITOLOUM Blaise « madjitoloum.blaise@gmail.com », Informaticien Certifié SAGE France 16


Site Web : www.logest.tech Tel : 63249030
CEFOD : COURS DE BASE DE DONNÉES RELATIONNELLE

- ORDER BY : permet d'ordonnancer les résultats

3-3-2 CONSULTATION DES DONNEES

1°) Interrogation simple

SELECT * [ou liste des champs sélectionnés]


FROM nom de table
[WHERE condition]

Ex : soit Produit (ref, lib, prix)


SELECT SUM(prix) : donne la somme de tous les prix
FROM Produit

SELECT AVG(prix) : donne la moyenne des prix


FROM Produit

2°) Interrogation imbriquée

Ex : lister les produits dont les prix > moyenne


SELECT lib, prix
FROM Produit
WHERE prix > (SELECT AVG(prix)
FROM Produit)

Remarque : On cherche d'abord la moyenne

3°) Trier les résultats

ORDER BY expression ASC/ DESC (croissant ou décroissant)

Remarques :
▪ Expression peut être une liste de nom colonnes ou de position de colonnes
▪ ASC est l'option par défaut si rien n'est précisé

Ex : même requête que précédemment mais les prix sont listés en ordre croissant :
SELECT lib,prix
FROM Produit
WHERE prix > (SELECT AVG(prix)
FROM Produit)
ORDER BY prix ASC

MADJITOLOUM Blaise « madjitoloum.blaise@gmail.com », Informaticien Certifié SAGE France 17


Site Web : www.logest.tech Tel : 63249030
CEFOD : COURS DE BASE DE DONNÉES RELATIONNELLE

4°) Interrogation portant sur plusieurs tables (Jointure)

Une jointure met en relation deux tables sur la base d’une clause de jointure
(comparaison de colonnes). Généralement, cette comparaison fait intervenir une clé
étrangère d’une table avec une clé primaire d’une autre table.

Ex : Pilote (num-pil, nom-pil, sexe-pil, age-pil, #code-vil)


Ville (code-vil, nom-vil)

Indiquer la ville où réside chaque pilote :


Select num-pil, nom-pil, sexe-pil, age-pil, V.code-vil, nom-vil
From pilote P, ville V
Where P.code-vil=V.code_vil

5°) Les clauses

L’opérateur BETWEEN
Permet de tester l’appartenance à une plage de valeurs
BETWEEN x AND Y
Ex: SELECT lib,prix
FROM Produit
WHERE prix BETWEEN 1500 AND 2000

L’opérateur IN
Permet de tester l’appartenance à un ensemble de valeurs
Ex: SELECT lib,prix
FROM Produit
WHERE prix IN (1500,2000,2500,3000)

L’opérateur LIKE
Permet de comparer des chaines de caractères.
nom-col LIKE ‘modèle de chaine’
‘modèle de chaine’ est une chaine pouvant contenir l’un des caractères génériques
suivants :
‘-‘ : remplace un seul caractère
‘%’ : remplace un nombre quelconque de caractères
Ex : SELECT lib,prix
FROM Produit
WHERE lib LIKE ‘H%’

L’opérateur de négation NOT


Les opérateurs vus ci-dessus peuvent être mis sous forme négative en les précédant
par l’opérateur NOT

MADJITOLOUM Blaise « madjitoloum.blaise@gmail.com », Informaticien Certifié SAGE France 18


Site Web : www.logest.tech Tel : 63249030
CEFOD : COURS DE BASE DE DONNÉES RELATIONNELLE

L’opérateur ALL permet de comparer une colonne à l’ensemble de valeurs résultat


d’une sous-requête.
- La condition est vérifiée pour toutes les valeurs
Ex : SELECT lib,prix
FROM Produit
WHERE prix >= ALL (SELECT prix
FROM produit)

L’opérateur ANY
Permet de comparer une colonne à l’ensemble de valeurs résultat d’une sous-requête.
- La condition est vérifiée pour au moins une des valeurs
Ex : SELECT lib, prix
FROM Produit
WHERE prix >ANY (SELECT prix
FROM produit)

6°) Regroupement des résultats


GROUP BY champ1, [champ2, …]
Permet le regroupement des lignes résultats par classe ayant chacune la même valeur
pour un ou plusieurs champs donnés, puis d'effectuer éventuellement un calcul des
valeurs du groupe, et de rendre le résultat sous la forme d'une ligne par groupe.

Ex : Commande (nucom, refp, libp, qtéc)


Requête : Sortir pour chaque produit le cumul des qtés commandées
SELECT refp, SUM(qtéc)
FROM Commande
GROUP BY refp

7°) Condition de sélection dans les regroupements


HAVING condition
La condition permet de comparer une valeur de groupe à une constante ou autre valeur
résultante d'une s/requête

Ex : SELECT refp, SUM(qtéc)


FROM Commande
GROUP BY refp
HAVING SUM(qtéc) >= 10

Permet de ne sortir que les produits dont la somme des quantités est >= 10

8°) Sous-questions corrélatives


Il existe des requêtes pour lesquelles il est impossible d’obtenir le résultat de la sous-
question sans faire référence au niveau externe. Dans de telles requêtes, on trouve

MADJITOLOUM Blaise « madjitoloum.blaise@gmail.com », Informaticien Certifié SAGE France 19


Site Web : www.logest.tech Tel : 63249030
CEFOD : COURS DE BASE DE DONNÉES RELATIONNELLE

au niveau interne, une référence explicite à la table (ou aux tables) de la question
externe.
Soit les relations suivantes : Commande (nucom, refp, qtéc)
Produit (refp, libp, prix)

Ex1 : lister les produits dont la quantité commandée est égale à 1000
SELECT refp, libp
FROM Produit
WHERE 1000 = (SELECT qtéc
FROM Commande
WHERE Produit.refp=Commande.refp)

Ex2 : lister les produits dont la quantité commandée est supérieure à la moyenne des
quantités commandées de chacun des produits

SELECT refp, qtéc


FROM Commande C-ext
WHERE qtéc> (SELECT AVG(qtéc)
FROM Commande C-int
WHERE C-ext.refp=C-int.refp)

9°) L’opérateur EXISTS permet de vérifier si le résultat d’une sous requête contient ou
non des données.
L’argument de EXISTS contient presque toujours au moins une référence externe
- la condition est vérifiée si le résultat n’est pas vide

Ex1 : lister les produits dont la quantité commandée est égale à 1000
SELECT refp, libp
FROM Produit
WHERE EXISTS (SELECT *
FROM Commande
WHERE Produit.refp=Commande.refp
AND qtéc=1000)

3-3-3 INSERTION DE DONNEES

L’insertion consiste à ajouter de nouvelles lignes dans une table. Elle peut affecter
toutes les colonnes d’une table ou seulement un sous-ensemble de ces colonnes.
La forme générale de la commande d’insertion est la suivante :

INSERT INTO table [(colonne, ...)]


VALUES (valeur, …)
ou
INSERT INTO table [(colonne, …)] requête

MADJITOLOUM Blaise « madjitoloum.blaise@gmail.com », Informaticien Certifié SAGE France 20


Site Web : www.logest.tech Tel : 63249030
CEFOD : COURS DE BASE DE DONNÉES RELATIONNELLE

Elle permet d’indiquer dans la commande les valeurs à insérer. Si la totalité des
colonnes de la table sont à insérer, il n’est pas nécessaire de les citer. La liste des
valeurs dans la clause VALUES doit correspondre à celle des colonnes à insérer tant
au niveau du nombre qu’au niveau de l’ordre et du type.

Ex : INSERT INTO Produit


VALUES (20,’petit pois’,120,50)

3-3-4 MODIFICATION DES DONNEES

L’opération de modification consiste à mettre à jour les colonnes d’une table par de
nouvelles valeurs. Chaque nouvelle valeur peut être donnée explicitement dans la
commande de modification ou obtenue de la base de données par une sous-requête.
La forme générale de la commande de modification est :

UPDATE table
SET colonne = valeur, ...
WHERE condition ;

La clause WHERE permet de sélectionner les lignes à mettre à jour. La clause SET
détermine les colonnes à mettre à jour
La valeur destinée à être affectée à une colonne peut être une constante, une
expression ou le résultat d’une sous-requête.

Ex1 : UPDATE Produit


SET PrixU = 120
WHERE Nupro=10

Ex2 : UPDATE Produit


Set PrixU = PrixU * 1.05
WHERE PrixU > 100

Ex3 : UPDATE Produit


Set PrixU = (SELECT PrixU
FROM Produit
WHERE Nupro=15)
WHERE Nupro=53

MADJITOLOUM Blaise « madjitoloum.blaise@gmail.com », Informaticien Certifié SAGE France 21


Site Web : www.logest.tech Tel : 63249030
CEFOD : COURS DE BASE DE DONNÉES RELATIONNELLE

3-3-5 SUPPRESSION DE DONNEES

La suppression de données consiste à supprimer une ou plusieurs lignes d’une table.


La forme générale de la commande de suppression est :

DELETE FROM table


WHERE condition ;

La condition permet de restreindre les lignes de la table à supprimer. Si la clause


WHERE est absente, tous les lignes sont supprimées.

Ex : DELETE FROM Produit


WHERE Qtes < 10

MADJITOLOUM Blaise « madjitoloum.blaise@gmail.com », Informaticien Certifié SAGE France 22


Site Web : www.logest.tech Tel : 63249030

Vous aimerez peut-être aussi