Module : ALGÈBRE RELATIONNELLE
&
LANGAGE SQL
(Bases de Données Relationnelles)
Le langage SQL - Partie 1
Pr. Salma MOULINE
TC MIP-Informatique — S4 Département d’Informatique
2024/2025 Laboratoire LRIT
Introduction à MySQL
• MySQL est un système de gestion de base de données relationnelle (SGBDR).
• Utilise SQL (Structured Query Language).
• Open-source, développé initialement par MySQL AB, puis acquis par Oracle.
• Populaire pour les applications web.
2024/2025
Architecture de MySQL
• Basée sur une architecture client-serveur.
• Serveur MySQL : Gère les bases de données, les requêtes SQL, etc.
• Client MySQL : Interface utilisateur pour interagir avec les bases de données.
• Outils et bibliothèques disponibles.
Téléchargement : [Link]
2024/2025
Création d'une Base de Données
Le langage de Dé nition des Données (LDD)
• Création d'une base de données :
‣ CREATE DATABASE nom_de_base;
• Utilisation d'une base de données :
‣ USE nom_de_base;
• A cher les bases existantes :
‣ SHOW DATABASES;
2024/2025
ffi
fi
Création et Gestion des Tables
Le langage de Dé nition des Données (LDD)
• Créer la table client :
CREATE TABLE Client
(id INT PRIMARY KEY, nom VARCHAR(255), age INT);
• Af cher la structure d'une table :
DESCRIBE nom_de_table ;
• Supprimer une table :
DROP TABLE nom_de_table;
2024/2025
fi
fi
Ajout de contrainte dans une table
Le langage de Dé nition des Données (LDD)
• A la création de la table
CREATE TABLE nom_de_table (
id INT PRIMARY KEY,
nom VARCHAR(100),
age INT,
salaire DECIMAL(10, 2),
-- Ajouter la contrainte CHECK pour s'assurer que l'âge soit supérieur à 18
CHECK (age >= 18)
);
2024/2025
fi
Ajout de contrainte dans une table
Le langage de Dé nition des Données (LDD)
• Par un ALTER TABLE après la création de la table
ALTER TABLE nom_de_table
ADD CONSTRAINT nom_contrainte CHECK (condition);
2024/2025
fi
Ajout d’une clé étrangère
Le langage de Dé nition des Données (LDD)
• A la création de la table
CREATE TABLE departements (
id INT PRIMARY KEY,
nom VARCHAR(50)
);
CREATE TABLE employes (
id INT PRIMARY KEY,
nom VARCHAR(100),
salaire DECIMAL(10, 2),
departement_id INT,
-- Ajout de la clé étrangère qui fait référence à la colonne "id" de la table "departements"
FOREIGN KEY (departement_id) REFERENCES departements(id)
);
2024/2025
fi
Ajout d’une clé étrangère
Le langage de Dé nition des Données (LDD)
• Par un ALTER TABLE après la création de la table
ALTER TABLE nom_de_table
ADD CONSTRAINT nom_contrainte
FOREIGN KEY (colonne_locale)
REFERENCES table_étrangère(colonne_étrangère);
2024/2025
fi
Contraintes supplémentaires pour la clé étrangère
Le langage de Dé nition des Données (LDD)
• On peut spéci er des actions sur les modi cations et suppressions dans la table parent avec ON
DELETE et ON UPDATE.
• Options courantes :
• ON DELETE CASCADE : Supprime automatiquement les lignes dans la table enfant si la ligne
correspondante dans la table parent est supprimée.
• ON UPDATE CASCADE : Met à jour automatiquement les valeurs dans la table enfant si la valeur de
la clé primaire dans la table parent change.
• ON DELETE SET NULL : Met la clé étrangère à NULL si la ligne correspondante dans la table parent
est supprimée.
2024/2025
fi
fi
fi
Interrogation et manipulation des données
Le langage de Manipulation des Données (LMD)
• SQL est utilisé pour gérer les données dans une base de données relationnelles.
• Opérations principales :
- INSERT : Ajouter des données.
- SELECT : Lire des données.
- UPDATE : Modi er des données.
- DELETE : Supprimer des données.
2024/2025
fi
Insertion de Données
Le langage de Manipulation des Données (LMD)
• Insertion simple :
INSERT INTO Client(id, nom, age) VALUES (1, 'Mohammed', 30);
• Insertion multiple :
INSERT INTO Client(id, nom, age) VALUES (2, 'Ali', 25),
(3, 'Omar', 35);
2024/2025
Requêtes de Sélection (SELECT)
Le langage de Manipulation des Données (LMD)
• Sélection de toutes les données :
SELECT * FROM nom_de_table ;
• Sélection avec condition :
SELECT * FROM nom_de_table WHERE condition ;
• Ordre des résultats :
SELECT * FROM nom_de_table ORDER BY attribut DESC; (ou ASC)
• Gestion des doublons:
SELECT DISTINCT attribut FROM nom_de_table ;
2024/2025
Requêtes de Sélection (SELECT)
Le langage de Manipulation des Données (LMD)
• Les n premiers résultats :
SELECT * FROM Client ORDER BY age DESC
(=> Les 5 clients les plus agés)
LIMIT 5 ;
• OffSet:
SELECT * FROM Client ORDER BY age DESC
OFFSET 5 (=> Les 5 clients les plus agés à partir du 6ème)
LIMIT 5;
2024/2025
Requêtes de Sélection (SELECT)
Le langage de Manipulation des Données (LMD)
• Les conditions avec BETWEEN :
SELECT * FROM Client WHERE age BETWEEN 35 AND 45 ;
• Les conditions avec LIKE et iLIKE :
SELECT * FROM Client WHERE email LIKE %@gmail.% ;
(=> Les clients qui ont des e-mail chez Google)
• Le _ remplace un caractère
2024/2025
Mise à Jour des Données (UPDATE)
Le langage de Manipulation des Données (LMD)
• Modi cation d'un enregistrement :
UPDATE Client SET age = 40 WHERE id = 1;
• Modi cation de plusieurs enregistrements :
UPDATE Client SET age = age + 1;
2024/2025
fi
fi
Suppression de Données (DELETE)
Le langage de Manipulation des Données (LMD)
• Suppression avec condition :
DELETE FROM nom_de_table WHERE id = 2 ;
• Suppression de tous les enregistrements :
DELETE FROM nom_de_table;
2024/2025
Fonctions d'Agrégat en SQL
Le langage de Manipulation des Données (LMD)
• Les fonctions d'agrégat sont utilisées pour effectuer des calculs sur un ensemble de valeurs.
• Elles retournent une valeur unique pour chaque groupe de données.
• Principales fonctions : COUNT(), SUM(), AVG(), MIN(), MAX().
2024/2025
Fonction COUNT()
Le langage de Manipulation des Données (LMD)
COUNT() retourne le nombre total de lignes dans un ensemble de résultats.
• Exemple :
SELECT COUNT(*) FROM Client ;
• Peut aussi compter des valeurs spéci ques :
SELECT COUNT(nom) FROM Client WHERE age > 30;
( Nombre d’employés ayant plus de 30 ans)
2024/2025
fi
Fonction SUM()
Le langage de Manipulation des Données (LMD)
SUM() retourne la somme totale d'une colonne numérique.
• Exemple :
SELECT SUM(salaire) FROM employes;
• Peut être utilisé avec des conditions :
SELECT SUM(salaire) FROM employes
WHERE departement = 'Finance’;
(=> La somme des salaires des employés du département ‘Finance’)
2024/2025
Fonction AVG()
Le langage de Manipulation des Données (LMD)
AVG() calcule la moyenne des valeurs numériques dans une colonne.
• Exemple :
SELECT AVG(salaire) FROM employes;
• Peut aussi être utilisé pour des groupes spéci ques :
SELECT AVG(salaire) FROM employes WHERE departement = 'IT’;
(=> La moyenne des salaires des employés du département ‘IT’)
2024/2025
fi
Fonctions MIN() et MAX()
Le langage de Manipulation des Données (LMD)
• MIN() retourne la plus petite valeur dans un ensemble de résultats.
• MAX() retourne la plus grande valeur.
• Exemples :
SELECT MIN(salaire) FROM employes;
SELECT MAX(salaire) FROM employes WHERE departement = 'Marketing’;
(=> Le salaire max des employés du département ‘Marketing’)
2024/2025
GROUP BY et HAVING
Le langage de Manipulation des Données (LMD)
• GROUP BY regroupe les lignes qui ont des valeurs communes.
• HAVING permet de ltrer les groupes après l'agrégation.
• Exemple :
SELECT departement, AVG(salaire) FROM employes
GROUP BY departement; (=> La moyenne des salaires par département)
• Filtrer avec HAVING :
SELECT departement, AVG(salaire) FROM employes
GROUP BY departement
HAVING AVG(salaire) > 50000;
(=> La moyenne des salaires des départements ayant une moyenne de salaire supérieur à 50000)
2024/2025
fi