Académique Documents
Professionnel Documents
Culture Documents
J. ANTARI
La commande CREATE :
Création d’une base de donnée:
Pour créer une base de données qui sera appelée ≪ma_base≫ il suffit d’utiliser
la requête suivante qui est très simple : CREATE DATABASE ma_base
Création d’une Table :
CREATE TABLE nom_de_la_table
(
colonne1 type_donnees,
colonne2 type_donnees,
colonne3 type_donnees,
colonne4 type_donnees
);
La commande CREATE :
Création d’une Table : Exemple 1
CREATE TABLE Internaute (
email VARCHAR (50) NOT NULL,
nom VARCHAR (20) NOT NULL,
prenom VARCHAR (20),
motDePasse VARCHAR (60) NOT NULL,
Exemple 2 anneeNaiss DECIMAL (4));
1
08/06/2021
Les Clés:
Clé secondaire : On spécifie que la valeur d’un attribut est unique pour
l’ensemble de la colonne.
La commande ALTER:
2
08/06/2021
7
Langage de Définition de Données
La commande ALTER:
Modification d’une Table :
La commande ALTER:
Modification d’une Table :
ADD COLUMN (Ajouter colonne)
ALTER TABLE Internaute ADD COLUMN region VARCHAR(10);
La commande DROP:
Suppression d’une Table :
permet de supprimer définitivement une table d’une base de données. Cela
supprime en même temps les éventuels index, relations, contraintes et
permissions associées a cette table.
Syntaxe : DROP TABLE nom_table
S’il y a une dépendance avec une autre table, il est recommande de les
supprimer avant de supprimer la table. C’est le cas par exemple s’il y a des clés
étrangères.
Exemple : DROP TABLE Internaute
3
08/06/2021
10
Langage de Manipulation des Données
Le LMD :
- Partie de SQL qui permet la manipulation et la mise à jour des tables.
- Cette partie contient les commandes :
La commande SELECT
La commande UPDATE
La commande INSERT
La commande DELETE
11
Langage de Manipulation des Données
La commande INSERT INTO :
Insertion d’un tuple dans une table :
Exemple :
INSERT INTO Livre
VALUES (‘HUGO’, ‘HERNANT’, 1830, ‘THEATRE’, 120.00);
12
Langage de Manipulation des Données
La commande SELECT:
L’utilisation la plus courante de SELECT consiste a lire des données
issues de la base de données. Cela s’effectue grâce a la commande
SELECT, qui retourne des enregistrements dans un tableau de
résultat. Cette commande peut sélectionner une ou plusieurs
colonnes d’une table. SELECT nom_du_champ
Syntaxe : FROM nom_du_tableau ;
4
08/06/2021
13
Langage de Manipulation des Données
La commande SELECT:
Obtenir plusieurs colonnes :
Table client
14
Langage de Manipulation des Données
La commande SELECT:
Obtenir toutes les colonnes d’un tableau (*):
Exemple : SELECT *
FROM client ;
La commande DISTINCT:
Cette requête sélectionne le champ ≪ma_colonne≫ de la table
≪nom_du_tableau≫ en évitant de retourner des doublons (en évitant la
redondance).
Syntaxe: SELECT DISTINCT ma_colonne
FROM nom_du_tableau ;
15
Langage de Manipulation des Données
La commande DISTINCT:
Exemple SELECT DISTINCT prenom
FROM client ;
5
08/06/2021
16
Langage de Manipulation des Données
La commande WHERE:
Permet d’extraire les lignes d’une base de données qui respectent une condition.
Cela permet d’obtenir uniquement les informations désirées.
Syntaxe: SELECT nom_colonnes
FROM nom_table
WHERE condition ;
Exemple : SELECT *
FROM client
Table client WHERE ville = 'paris' ;
17
Langage de Manipulation des Données
La commande WHERE:
Opérateurs de comparaisons: Il existe plusieurs operateurs de comparaisons. La
liste ci-jointe présente quelques uns :
18
Langage de Manipulation des Données
SELECT nom_colonnes
FROM nom_table
WHERE condition1 AND condition2;
6
08/06/2021
19
Langage de Manipulation des Données
La commande IN:
S’utilise avec la commande WHERE pour vérifier si une colonne est
égale à une des valeurs comprise dans set de valeurs déterminés, c’est
une méthode simple pour vérifier si une colonne est égale a une valeur
OU une autre valeur OU une autre valeur et ainsi de suite, sans avoir a
utiliser de multiple fois l’operateur OR
Syntaxe: SELECT nom_colonne
FROM table
WHERE nom_colonne IN ( valeur1, valeur2, valeur3, ... );
Exemple :
SELECT prenom
FROM utilisateur
WHERE prenom = 'Maurice' OR prenom = 'Marie' OR prenom = 'Thimote' ;
SELECT prenom
FROM utilisateur
WHERE prenom IN ( 'Maurice', 'Marie', 'Thimote' );
20
Langage de Manipulation des Données
La commande IN:
Exemple :
SELECT *
FROM adresse
WHERE addr_ville IN ( 'Paris', 'Graimbouville' );
Table adresse
21
Langage de Manipulation des Données
La commande IN:
Exemple : (résultat de la requête)
SELECT *
FROM adresse
WHERE addr_ville IN ( 'Paris', 'Graimbouville' );
Table adresse
7
08/06/2021
22
Langage de Manipulation des Données
La commande BETWEEN:
L’operateur BETWEEN est utilisé pour sélectionner un intervalle de données dans
une requête utilisant WHERE. L’intervalle peut être constitue de chaines de
caractères, de nombres ou de dates. L’exemple le plus concret consiste par
exemple a récupérer uniquement les enregistrements entre 2 dates définies.
Syntaxe: SELECT *
FROM table
WHERE nom_colonne BETWEEN 'valeur1' AND 'valeur2' ;
Exemple :
SELECT *
FROM utilisateur
WHERE date_inscription BETWEEN #2012/04/01# AND #2012/04/20# ;
23
Langage de Manipulation des Données
La commande GROUP BY:
Est utilisée pour grouper plusieurs résultats et utiliser une fonction de totaux sur un groupe
de résultat. Sur une table qui contient toutes les ventes d’un magasin, il est par exemple
possible de liste regrouper les ventes par clients identiques et d’obtenir le coût total des
achats pour chaque client.
SELECT colonne1, fonction(colonne2)
Syntaxe: FROM table
GROUP BY colonne1 ;
Exemple :
SELECT client, SUM(tarif)
FROM achat
GROUP BY client ;
24
Langage de Manipulation des Données
8
08/06/2021
25
Langage de Manipulation des Données
La commande HAVING:
La condition HAVING est presque similaire à WHERE à la seule différence que HAVING
permet de filtrer en utilisant des fonctions telles que SUM(), COUNT(), AVG(), MIN() ou
MAX(). SELECT colonne1, fonction(colonne2)
Syntaxe: FROM nom_table
GROUP BY colonne1
HAVING fonction(colonne2) operateur valeur ;
Exemple :
SELECT client, SUM(tarif)
FROM achat
GROUP BY client
HAVING SUM(tarif) > 40 ;
26
Langage de Manipulation des Données
La commande ORDER BY :
La commande ORDER BY permet de trier les lignes dans un résultat
d’une requête. SELECT colonne1, colonne2
Syntaxe: FROM table
ORDER BY colonne1 ;
Exemple :
SELECT id, nom, prenom
FROM utilisateur
ORDER BY nom ;
27
Langage de Manipulation des Données
La commande UPDATE:
Cette commande permet d’effectuer des modifications sur des lignes
existantes UPDATE nom_table
Syntaxe: SET nom_colonne_1 = 'nouvelle valeur'
WHERE condition ;
UPDATE client
SET rue = '49 Rue Ameline',
Exemple : ville = 'Saint-Eustache-la-Foret',
code_postal = '76210'
WHERE id = 2 ;
9
08/06/2021
28
Langage de Manipulation des Données
La commande DELETE:
La commande DELETE en SQL permet de supprimer des lignes dans
une table. En utilisant cette commande associe a WHERE il est
possible de sélectionner les lignes concernées qui seront supprimées.
Syntaxe: DELETE FROM table
WHERE condition ;
29
Langage de Manipulation des Données
La commande CASE:
La commande ≪ CASE … WHEN … ≫ permet d’utiliser des conditions de type ≪ si /
sinon ≫ (cf. if / else) similaire à un langage de programmation pour retourner un
résultat disponible entre plusieurs possibilités
Syntaxe: CASE
WHEN a=b THEN 'A egal a B'
WHEN a>b THEN 'A superieur a B'
ELSE 'A inferieur a B'
END
30
Langage de Manipulation des Données
La commande CASE :
Exemple : SELECT id, nom, surcharge, prix_unitaire, quantite,
CASE
WHEN surcharge =1 THEN 'Prix ordinaire'
WHEN surcharge >1 THEN 'Prix superieur a la normale'
ELSE 'Prix inferieur a la normale'
END
FROM `achat` ;
Table achat
10
08/06/2021
31
Langage de Manipulation des Données
La commande CASE :
Exemple : SELECT id, nom, surcharge, prix_unitaire, quantite,
CASE
WHEN surcharge =1 THEN 'Prix ordinaire'
WHEN surcharge >1 THEN 'Prix superieur a la normale'
ELSE 'Prix inferieur a la normale'
END
FROM `achat` ;
Table achat
32
Le CASE peut être utilisé dans n’importe quelle instruction ou clause, telle que
SELECT, UPDATE, DELETE, WHERE, ORDER BY ou HAVING.
UPDATE `achat`
SET `quantite` = (
CASE
WHEN `surcharge` < 1 THEN `quantite` + 1
WHEN `surcharge` > 1 THEN `quantite` - 1
ELSE quantite
END
);
33
UPDATE `achat`
SET `quantite` = (
CASE
WHEN `surcharge` < 1 THEN `quantite` + 1
WHEN `surcharge` > 1 THEN `quantite` - 1
ELSE quantite
END
);
11
08/06/2021
34
Union de 2 ensembles :
A = Résultat de la première requête
B = Résultat de la deuxième requête
35
Table magasin2_client
36
12
08/06/2021
37
Intersection de 2 ensembles :
A = Résultat de la première requête
B = Résultat de la deuxième requête
38
Table magasin2_client
39
13
08/06/2021
40
Syntaxe:
41
Table magasin2_client
42
14
08/06/2021
43
44
Plan
• Les Jointures entre tables
– Introduction
– Modélisation d’une relation
– Qu’est ce qu’une jointure?
– Les Jointures Internes
– Les Jointures Externes
45
15
08/06/2021
46
47
48
16
08/06/2021
Les relations
Une relation est une table comportant des colonnes (appelées aussi
attributs) dont le nom et le type caractérisent le contenu qui sera
inséré dans la table.
Exemple:
Relation: Personnes
Attributs : nom, prénom, adresse, téléphone. Autrement dit, c’est
une table nommée Personne possédant les colonnes : nom, prénom,
adresse, téléphone.
Les lignes que contiendra cette table seront appelées
enregistrements ou tuples.
Personnes
nom prénom adresse téléphone
Dupond Marc 8 rue 00212666
49
Algèbre relationnelle
L’algèbre relationnelle regroupe toutes les opérations possibles sur les relations.
La liste des opérations possibles :
Projection: on ne sélectionne qu’un ou plusieurs attributs d’une relation (on ignore
les autres). Par exemple n’afficher que les colonnes nom et prénom de la table
Personnes.
Jointure: on fabrique une nouvelle relation à partir de 2 ou plusieurs autres en
prenant comme pivot 1 ou plusieurs attributs. Par exemple, on concatène la table du
carnet d’adresse et celle des inscrits à la bibliothèque en fonction du nom de
famille (c’es typiquement du recoupement de fichiers).
Sélection: on sélectionne tous les tuples ou bien seulement une partie en fonction de
critères de sélection qui portent sur les valeurs des attributs. Par exemple n’afficher
que les lignes de la table Personnes qui vérifient la condition suivante : le nom ne
commence pas par la lettre ‘C’.
Cette algèbre est facilement possible avec les commandes de MySQL (SELECT…
FROM… WHERE…).
50
Projection
Personnes
nom prénom adresse téléphone
Martin Pierre 7 allée des vers 0258941236
Dupond Jean 32 allé Poivrot 0526389152
Dupond Marc 8 rue de l’octet 0123456789
51
17
08/06/2021
Jointure
Personnes Bibliothèque
nom prénom adresse téléphone nom Dernierlivre
Martin Pierre 7 allée des vers 0258941236 Dupond Robinson
Dupond Jean 32 allé Poivrot 0526389152 Jospin Faust
Martin Misère
prénom Dernierlivre
Jean Robinson
Pierre Misère
52
Sélection
Personnes
nom prénom adresse téléphone
Martin Pierre 7 allée des vers 0258941236
Dupond Jean 32 allé Poivrot 0526389152
Dupond Marc 8 rue de l’octet 0123456789
18
08/06/2021
Gens
Nom Prenom Age
Dupond Pierre 24
SELECT Nom FROM Gens
Martin Marc 48
Gens
Dupont Jean 51 2
Nom
Martin Paul 36
Dupond
Dupond Lionel 68
Martin
3 Gens
Dupont
Nom
Martin
Dupond
Dupond
Martin
Dupont
Exemples
SELECT nom, prénom Liste des nom et prénom des élèves dont
FROM élèves l’âge est compris entre 12 et 16 ans.
WHERE age BETWEEN 12 AND 16
57
19
08/06/2021
LIKE ‘a_c’ : peu utilisé, le caractère “_” (underscore) peut être remplacé par n’importe
quel caractère, mais un seul caractère uniquement (alors que le symbole pourcentage
“%” peut être remplacé par un nombre incalculable de caractères . Ainsi, ce modèle
permet de retourner les lignes “aac”, “abc”
58
20