Système de gestion de base de données
Le Langage SQL
Mahmoud Zakaria
[Link]@[Link]
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Plan
1. Requêtes de définition de données
○ Création d’une base de données
○ Modification de la structure d’une table
○ Modification des champs d’une table
○ Suppression d’une table ou d’une base de données
2. Requêtes d’insertion de données
3. Requêtes de mise à jour des données
○ Modification des données
○ Suppression des données
4. Requêtes de sélection des données
○ Sélection avec critère de restriction
○ Jointures et unions
○ Fonctions de calculs et opérateurs d’agrégation
○ Les sous-requêtes
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Introduction
Base de données
Une base de données (BDD ) est une collection d’informations organisées afin d’être facilement consultables, gérables
et mises à jour. Au sein d’une database, les données sont organisées en lignes, colonnes et tableaux. Elles sont indexées
afin de pouvoir facilement trouver les informations recherchées à l’aide d’un logiciel informatique. Chaque fois que de
nouvelles informations sont ajoutées, les données sont mises à jour.
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Introduction
Système de Gestion de Base de Données (SGBD) [ DataBase Management System (DBMS) ]
Un système de gestion de base de données (SGBD) est un logiciel qui permet à un ordinateur de stocker, récupérer,
ajouter, supprimer et modifier des données. Un SGBD gère tous les aspects primaires d'une base de données, y compris
la gestion de la manipulation des données, comme l'authentification des utilisateurs, ainsi que l'insertion ou l'extraction
des données. Un SGBD définit ce qu'on appelle le schéma de données ou la structure dans laquelle les données sont
stockées.
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Introduction
SQL
● Structured Query Language
● Il permet de définir, administrer et manipuler les bases de données
● Il est exprimé sous forme de requêtes et de commandes
● Il est intégré aux SGBD
○ Exemples de SGBD : Oracle server, MySQL, MariaDB, PostgreSQL, ...
SGBD : Système de gestion des bases de données
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Introduction
Une table ?
Une colonne décrit les valeurs d’une
entité Personne
Une ligne décrit la
valeur d’un
Nom Adresse
enregistrement
Ahmed 123, Avenue principale
Karim 456, deuxieme avenue
Assia 789, troisieme avenue
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Introduction
Installation XAMPP [Telecharger XAMPP]
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Introduction
La requête SQL
La requête
(Query)
Database
Server
Utilisateur
Database Le résultat
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Plan
1. Requêtes de définition de données
○ Création d’une base de données
○ Modification de la structure d’une table
○ Modification des champs d’une table
○ Suppression d’une table ou d’une base de données
2. Requêtes d’insertion de données
3. Requêtes de mise à jour des données
○ Modification des données
○ Suppression des données
4. Requêtes de sélection des données
○ Sélection avec critère de restriction
○ Jointures et unions
○ Fonctions de calculs et opérateurs d’agrégation
○ Les sous-requêtes
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Introduction
Mots réservés du SQL
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Création d’une base de données
Création d’une base de données et ses tables
Pour être capable de stocker des données dans un SGBD, il faut suivre les étapes :
-- Création d’une base de données
CREATE DATABASE NomDB;
-- Sélection de la base de données
USE NomDB;
Remarque : Il est recommandé de mettre les mots clés en majuscule et le reste en minuscule.
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Création d’une base de données
Exemple
CREATE DATABASE ecole;
USE ecole;
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Création d’une base de données
La table
● Définition:
○ Dans une base de données, les données sont structurées en une sorte de tableau qu'on appelle "
table ".
○ On identifie chaque table par son nom. Et comme tout tableau, les tables ont des colonnes qu'on
désignera par " champ ".
Attribut
Une colonne décrit les valeurs d’une
entité Personne
Une ligne décrit la
valeur d’un
Nom Adresse
enregistrement
Ahmed 123, Avenue principale
Karim 456, deuxieme avenue
Assia NULL
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Création d’une base de données
La table
● Définition:
○ La table Personne possède 2 champs : Nom, Adresse
○ La table Personne possède 3 enregistrements.
○ Chaque colonne de la table est identifiée par un nom (attribut).
○ NULL correspond à une absence de valeur.
○ Une base de données peut contenir une ou plusieurs tables comme celle-ci.
○ L'avantage de cette structuration des données est que l'on peut facilement :
■ Stocker des données.
■ Accéder aux données et consulter la partie qui nous intéresse.
■ Manipuler les données.
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Création d’une base de données
La table
● Clé primaire (primary key):
Un des objectifs principaux d'une base de données est d'éviter la redondance de données.
Il ne doit pas y avoir de répétitions dans une base de données. Sinon on a ce que l'on appelle des
doublons.
Un doublon est deux enregistrements (ou plus) identiques.
Pour prendre garde à cela, on utilise une clé primaire qui sert d'identifiant unique pour chaque
ligne.
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Création d’une base de données
La table
● Clé primaire (primary key):
○ Attribut(s) identifiant de manière unique une ligne de la table.
○ Deux lignes distinctes de la table ne peuvent pas avoir les mêmes valeurs pour les champs définis
au niveau de la clé primaire.
Table avec doublon Table avec identifiant
Prenom Ville id Prenom Ville
Ahmed Ben Guerir 1 Ahmed Ben Guerir
Ahmed Ben Guerir 2 Ahmed Ben Guerir
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Création d’une base de données
La table
● Création de tables
○ Syntaxe
CREATE TABLE nomTable
(champ1 type_champ1,
champ2 type_champ2,
champ3 type_champ3 ...);
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Création d’une base de données
La table
● Création de tables
○ Exemple
CREATE TABLE produit
( id_produit INT,
nom VARCHAR(30),
quantité VARCHAR(30),
prix INT
);
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Création d’une base de données
Type de données
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Modification de la structure d’une table
Après la création d’une nouvelle bnomColase de données et ses tables, il n’est pas rare de vouloir modifier sa
structure (modifier une colonne, supprimer une colonne, supprimer une table ...)
→Syntaxe : ALTER TABLE nomTable ADD|DROP|CHANGE|MODIFY
● Ajouter une nouvelle colonne : ADD nomCol typeDonnée
● Ajouter une contrainte NOT NULL : ADD CHECK NOT NULL
● Supprimer une colonne : DROP nomCol
● Changer le nom d’une colonne : CHANGE ancienNom nouveauNom typeDonnée
● Modifier le type de donnée : MODIFY nomCol nouveauType
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Modification de la structure d’une table
● Si on veut ajouter un nouveau champs
○ ALTER TABLE NomTable ADD NomChamps type
○ Exemple : ALTER TABLE auteur ADD dateNaissance date
● Si on veut supprimer un champs
○ ALTER TABLE NomTable DROP NomChamps
○ Exemple : ALTER TABLE auteur DROP tel
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Suppression d’une table ou d’une base de données
● Supprimer une table : DROP TABLE nomTable
● Supprimer une base de données : DROP DATABASE nomBD
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Plan
1. Requêtes de définition de données
○ Création d’une base de données
○ Modification de la structure d’une table
○ Modification des champs d’une table
○ Suppression d’une table ou d’une base de données
2. Requêtes d’insertion de données
3. Requêtes de mise à jour des données
○ Modification des données
○ Suppression des données
4. Requêtes de sélection des données
○ Sélection avec critère de restriction
○ Jointures et unions
○ Fonctions de calculs et opérateurs d’agrégation
○ Les sous-requêtes
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Insertion des données
La commande INSERT
On peut utiliser cette commande pour insérer un nouvel enregistrement dans une table.
● INSERT INTO champ1,champ2,... NOMTABLE VALUES(...)
○ Il faut prendre en compte l’ordre des champs de la table.
○ La liste des champs n’est pas obligatoire si on compte renseigner toutes les valeurs.
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Insertion des données
Exemple
● Insérez les deux enregistrements suivants : { Table Produit(nom, quantité, prix) }
○ (Clavie, 5, 2000)
○ (Souris, 100, 50)
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Insertion des données
Exemple
● Insérez les deux enregistrements suivants : { Table Produit(nom, quantité, prix) }
○ (Clavie, 5, 2000)
■ INSERT INTO produit VALUES ("Clavier", 5, 2000)
○ (Souris, 100, 50)
■ INSERT INTO produit VALUES ("Souris", 100, 50)
● Le script suivant ajoute deux nouvelles produits en une seule instruction INSERT.
■ INSERT INTO produit VALUES ("Clavier", 5, 2000),("Souris", 100, 50)
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Plan
1. Requêtes de définition de données
○ Création d’une base de données
○ Modification de la structure d’une table
○ Modification des champs d’une table
○ Suppression d’une table ou d’une base de données
2. Requêtes d’insertion de données
3. Requêtes de mise à jour des données
○ Modification des données
○ Suppression des données
4. Requêtes de sélection des données
○ Sélection avec critère de restriction
○ Jointures et unions
○ Fonctions de calculs et opérateurs d’agrégation
○ Les sous-requêtes
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Modification des données
La commande UPDATE
On peut utiliser cette commande pour modifier les valeurs de champs d’un enregistrement donné
● UPDATE nom_table
SET colonne1 = valeur1, colonne2 = valeur2, ...
WHERE condition;
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Modification des données
Table Produit
Nom Quantité Prix
Clavier 5 2000
Exemple
Souris 100 50
● Modifiez le prix de clavier. Le nouveau prix est 1800 Dh
● Modifiez le nom de souris. Le nouveau est Souris + casque
Nom Quantité Prix
Clavier 5 1800
Souris + casque 100 50
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Modification des données
Exemple
● Modifiez le prix de clavier. Le nouveau prix est 1800 Dh
○ UPDATE produit SET prix = 1800 WHERE nom = “clavier”;
● Modifiez le nom de souris. Le nouveau est Souris + casque
○ UPDATE produit SET nom = “Souris + casque” WHERE nom = “Souris”;
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Suppression des données
La commande DELETE
On peut utiliser cette commande pour supprimer un enregistrement donné
● DELETE FROM NomTable WHERE condition : suppression de quelques enregistrement.
● TRUNCATE table NomTable : suppression de tous les enregistrement
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Suppression des données
Table Produit
Nom Quantité Prix
Clavier 5 1800
Exemple
Souris + casque 100 50
● Supprimez de la table Produit l’enregistrement dont le nom est
Clavier.
● Et si on veut supprimer toute la table ?
Nom Quantité Prix
Souris + casque 100 50
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Suppression des données
Exemple
● Supprimez de la table Produit l’enregistrement dont le nom est Clavier.
○ DELETE FROM produit WHERE nom="clavier"
● Et si on veut supprimer toute la table ?
○ DROP TABLE produit
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
TP
1. Donner la requête qui crée une base de données appelée "tp1".
2. Donner la requête qui affiche toutes les bases de données existantes.
3. Sélectionner la base de données "tp1".
4. Créer une table appelée "étudiants" dans la base de données "tp1" contenant les colonnes suivantes.
Id Nom Prénom Note
5. Afficher les champs de la table "etudiants"
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
TP
6. insérer les enregistrements suivants dans la table "etudiants" :
id nom prénom note
1 Ahmed Charif 19.05
2 Imad Khatabi 20.00
3 Karim Rafiki 09.75
4 Adam Kamili 15.5
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Plan
1. Requêtes de définition de données
○ Création d’une base de données
○ Modification de la structure d’une table
○ Modification des champs d’une table
○ Suppression d’une table ou d’une base de données
2. Requêtes d’insertion de données
3. Requêtes de mise à jour des données
○ Modification des données
○ Suppression des données
4. Requêtes de sélection des données
○ Sélection avec critère de restriction
○ Jointures et unions
○ Fonctions de calculs et opérateurs d’agrégation
○ Les sous-requêtes
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Sélection des données
La commande SELECT
On peut utiliser cette commande pour sélectionner et afficher les champs des enregistrements.
● SELECT champs1,champs2,champs...
FROM NomTable
Si on veut afficher tous les champs, on peut utiliser le caractère *
● SELECT * FROM NomTable
La commande SELECT
Affichez l’identifiant et le nom de tous les étudiants
●
Affichez toute la table "etudiants"
●
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Sélection des données
La commande SELECT
On peut utiliser cette commande pour sélectionner et afficher les champs des enregistrements.
● SELECT champs1,champs2,champs...
FROM NomTable
Si on veut afficher tous les champs, on peut utiliser le caractère *
● SELECT * FROM NomTable
La commande SELECT
Affichez l’identifiant et le nom de tous les étudiants
● SELECT id, nom FROM etudiants
Affichez toute la table "etudiants"
● SELECT * FROM etudiants
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Sélection des données
La clause WHERE
Cette clause permet de préciser les enregistrements visés par une requête de sélection en indiquant la valeur d’une
colonne ou plusieurs. La condition qui suit cette clause est définie par les opérateurs suivants :
● =, <, >, <>
● BETWEEN, LIKE
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]
Requêtes de définition de données
Sélection des données
Exemple
CREATE DATABASE tp2;
USE tp2;
CREATE TABLE utilisateurs (
id INT,
nom VARCHAR(50),
prenom VARCHAR(50),
ville VARCHAR(50),
email VARCHAR(50),
password VARCHAR(50)
);
● Click sur le button Import
● Click sur le button Choose File
● Choisir le fichier “[Link]”
● Click sur le button GO
Mahmoud Zakaria Système de gestion de base de données [Link]@[Link]