I. SQL et Conception de Bases de Données
A) 📜 Définition de SQL
- Le langage SQL permet d'interagir avec les bases de données en écrivant des requêtes.
- Les requêtes sont soumises aux SGBD (Systèmes de Gestion de Bases de Données), qui renvoient une réponse.
- SQL peut inclure des mots-clés spécifiques selon le SGBD utilisé, mais de nombreuses instructions sont communes.
- Développé dans les années 1970 par IBM.
- Standardisé par l'ANSI (American National Standards Institute) et l'ISO (International Organization for Standardization).
II. Introduction à SQL
A) 📊 DDL et DML
- DDL (Data Definition Language) : Utilisé pour créer les structures de bases de données.
- DML (Data Manipulation Language) : Utilisé pour manipuler les données.
B) 🔌 Interactions avec le SGBD
- Pour écrire des requêtes, il faut un client capable de se connecter au SGBD :
- Client CLI (Command Line Interface)
- Client logiciel “lourd” (ex. : SQL Developer, HeidiSQL)
- Application web (ex. : phpMyAdmin)
C) 📂 Soumission des requêtes
- Une fois la connexion au SGBD établie, on peut soumettre des requêtes sur une base de données particulière avec la commande
USE. - Ce principe est également utilisé pour permettre aux applications d'interagir avec les bases de données.
III. Ddl: Créer Les Structures De Base De Données
A) 🛠️ Création Des Tables
- Commande CREATE : Utilisée pour créer des tables.
- Syntaxe :
CREATE TABLE table (colonne1 TYPE, ..., colonneN TYPE); - Exemple :
CREATE TABLE Etudiants (ID_Etudiant INT, Nom VARCHAR(50), Prénom VARCHAR(50), Age INT);
B) 🔑 Création Avec Contraintes
-
Clé Primaire : Une colonne doit être unique.
- Syntaxe :
CREATE TABLE Etudiants (ID_Etudiant INT, Nom VARCHAR(50), Prénom VARCHAR(50), Age INT, PRIMARY KEY(ID_Etudiant)); -
Clé Étrangère : Référence à une clé primaire d'une autre table.
- Syntaxe :
CREATE TABLE Inscriptions (ID_Inscription INT, ID_Etudiant INT, ID_Cours INT, Date_Inscription DATE, PRIMARY KEY(ID_Inscription), FOREIGN KEY(ID_Etudiant) REFERENCES Etudiants(ID_Etudiant), FOREIGN KEY(ID_Cours) REFERENCES Cours(ID_Cours));
C) ⚠️ Autres Contraintes
-
NOT NULL : La colonne doit avoir une valeur.
- Exemple :
CREATE TABLE Etudiants (ID_Etudiant INT NOT NULL, Nom VARCHAR(50), Prénom VARCHAR(50), Age INT, PRIMARY KEY(ID_Etudiant)); -
AUTO_INCREMENT : Valeur automatique incrémentée.
- Exemple :
CREATE TABLE Etudiants (ID_Etudiant INT NOT NULL AUTO_INCREMENT, Nom VARCHAR(50), Prénom VARCHAR(50), Age INT, PRIMARY KEY(ID_Etudiant));
D) ✏️ Modification Des Tables
-
Commande ALTER TABLE : Pour modifier une table.
-
Actions possibles :
- Renommer une table.
- Ajouter, supprimer ou modifier des colonnes.
- Ajouter ou supprimer des contraintes.
-
Syntaxe :
ALTER TABLE table RENAME TO nouvelle_table; ALTER TABLE table ADD colonne1 TYPE; ALTER TABLE table DROP COLUMN colonne1;
E) ❌ Suppression Des Tables/Bases
-
Suppression des Tables :
- Syntaxe :
DROP TABLE table;- Exemple :
DROP TABLE Etudiants; -
Suppression des Bases de Données :
- Syntaxe :
DROP DATABASE db;- Exemple :
DROP DATABASE nom_de_la_base;
IV. Dml: Manipulation Des Données
A) 📊 Sélection de Données
- Commande SELECT : Utilisée pour récupérer des données.
- Syntaxe :
SELECT colonnes FROM table; - Exemple : Sélectionner tous les étudiants :
SELECT * FROM Étudiants;
B) 🔍 Sélection avec Filtrage (WHERE)
- Commande SELECT avec condition.
- Syntaxe :
SELECT colonnes FROM table WHERE condition; - Exemple : Sélectionner les étudiants âgés de plus de 20 ans :
SELECT Nom, Prénom FROM Étudiants WHERE Age > 20;
C) ⚙️ Conditions SQL
- Comparateurs arithmétiques :
>=,>,<,<=,=,<>. - Opérateurs logiques :
AND,OR,NOT. - Ensembles : Utilisation de
IN,BETWEEN. - Chaînes de caractères : Utilisation de
LIKE,ISNULL. - Exemple :
SELECT Nom, Prénom FROM Étudiants WHERE (Age > 20) AND (Age < 30);
D) 🔤 Chaînes de Caractères
- Conditions complexes :
- Exactement la chaîne :
=. - Motif : utilisation de
LIKE. - Caractère
_: remplace un caractère. - Caractère
%: remplace une séquence de caractères.
- Exactement la chaîne :
- Exemples :
- Lister les cours exactement "Géo" :
SELECT * FROM Cours WHERE Nom_Cours = 'Géo'; - Lister les cours commençant par "Géo" + 1 caractère :
SELECT * FROM Cours WHERE Nom_Cours LIKE 'Géo_'; - Lister les cours commençant par "Géo" :
SELECT * FROM Cours WHERE Nom_Cours LIKE 'Géo%';
- Lister les cours exactement "Géo" :
E) 📈 Sélection avec Tri (ORDER BY)
- Syntaxe :
SELECT colonnes FROM table ORDER BY colonne [ASC|DESC]; - Exemple : Sélectionner les étudiants triés par nom :
SELECT Nom, Prénom FROM Étudiants ORDER BY Nom ASC;
F) ➕ Insertion de Données
- Commande INSERT : Utilisée pour ajouter des données.
- Syntaxe :
INSERT INTO table (colonnes) VALUES (valeurs); - Exemple : Insérer un nouvel étudiant :
INSERT INTO Étudiants (ID_Etudiant, Nom, Prénom, Âge) VALUES (3, 'Dupuis', 'Luc', 21);
G) ➕ Insertion de Plusieurs Lignes
- Syntaxe :
INSERT INTO table (colonnes) VALUES (valeurs1), (valeurs2), ...; - Exemple : Insérer plusieurs étudiants :
INSERT INTO Étudiants (ID_Etudiant, Nom, Prénom, Âge) VALUES (4, 'Martin', 'Sophie', 22), (5, 'Bernard', 'Pierre', 23);
H) 🔄 Mise à Jour de Données
- Commande UPDATE : Utilisée pour modifier des données.
- Syntaxe :
UPDATE table SET colonne = valeur WHERE condition; - Exemple : Mettre à jour l'âge d'un étudiant :
UPDATE Étudiants SET Âge = 22 WHERE ID_Etudiant = 1;
I) 🔄 Mise à Jour de Plusieurs Colonnes
- Syntaxe :
UPDATE table SET colonne1 = valeur1, colonne2 = valeur2 WHERE condition; - Exemple : Mettre à jour le nom et le prénom d'un étudiant :
UPDATE Étudiants SET Nom = 'Durand', Prénom = 'Marie' WHERE ID_Etudiant = 2;
J) ❌ Suppression de Données
- Commande DELETE : Utilisée pour supprimer des données.
- Syntaxe :
DELETE FROM table WHERE condition; - Exemple : Supprimer un étudiant :
DELETE FROM Étudiants WHERE ID_Etudiant = 3;
V. Exercice Pratique
A) ✍️ Écriture de Requêtes SQL
- DELETE FROM : Utilisé pour supprimer des lignes d'une table.
- Exemple :
DELETE FROM Étudiants WHERE ID_Etudiant = 3; - Syntaxe générale :
DELETE FROM table;
B) 📊 Guide étape par étape
- Identifier la table cible.
- Déterminer les conditions de suppression.
- Exécuter la requête.
C) 🔍 Exemples de requêtes
- Suppression de toutes les lignes :
DELETE FROM Étudiants; - Suppression conditionnelle :
DELETE FROM Étudiants WHERE ID_Etudiant = 3;