31/10/2025
Requêtes SQL
TRIGGER
Un trigger, également appelé déclencheur, permet de
• Exécuter un ensemble d’instruction SQL juste après un événement.
• Faciliter et d’automatiser des actions au sein d’un Système de Gestion de Base
de Données (SGBD).
CREATE TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE| DELETE }
ON table_name FOR EACH ROW
trigger_body;
1
31/10/2025
TRIGGER
Exemple
Chaque fois qu’on insère une nouvelle commande, on veut automatiquement enregistrer la date
actuelle dans un champ date_creation.
Structure du Trigger
CREATE TRIGGER avant_insertion_commande
BEFORE INSERT ON commandes
FOR EACH ROW
BEGIN
SET NEW.date_creation = NOW();
END$$
Création d’une DATABASE
Pour créer une base de données qui sera appelé « ma_base »
CREATE DATABASE ma_base
Si une base de données porte déjà ce nom, la requête retournera une
erreur. Pour éviter d’avoir cette erreur, il convient d’utiliser la requête
suivante
CREATE DATABASE IF NOT EXISTS ma_base
2
31/10/2025
Suppression d’une DATABASE
Pour supprimer la base de données “ma_base”, la requête est la suivante :
DROP DATABASE ma_base
Si le nom de base utilisé n’existe pas, la requête retournera une erreur.
Pour éviter d’obtenir cette erreur
DROP DATABASE IF EXISTS ma_base
Création d’une table
La syntaxe générale pour créer une table est la suivante :
CREATE TABLE nom_de_la_table
(
colonne1 type_donnees,
colonne2 type_donnees,
colonne3 type_donnees,
colonne4 type_donnees
)
3
31/10/2025
Création d’une table
Exemple de creation d’une table
CREATE TABLE utilisateur
(
id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
nom VARCHAR(100),
prenom VARCHAR(100),
email VARCHAR(255),
date_naissance DATE,
pays VARCHAR(255),
ville VARCHAR(255),
code_postal VARCHAR(5),
nombre_achat INT
)
Modification d’une table
La commande ALTER TABLE en SQL permet de modifier une table existante.
ALTER TABLE nom_table
instruction
Ajouter une colonne Supprimer une colonne
ALTER TABLE utilisateur ALTER TABLE nom_table
ADD adresse_rue VARCHAR(255) DROP nom_colonne
4
31/10/2025
Suppression d’une table
Pour supprimer une table “nom_table” il suffit simplement d’utiliser la syntaxe
suivante :
Drop TABLE nom_table
Afficher le contenu d’une table
la commande SELECT retourne les enregistrements d’un tableau de résultat.
Afficher toutes les colonnes
SELECT * FROM nom_du_tableau
Afficher une seule colonne
SELECT nom_du_champ FROM nom_du_tableau
Afficher certaines colonnes
SELECT nom_colonne1, nom_colonne2 FROM nom_du_tableau
5
31/10/2025
Afficher le contenu d’une table
conditionné
la commande SELECT + where retourne les enregistrements d’un tableau selon
une condition
Afficher le contenu de la colonne si la condition est vérifiée
SELECT nom_colonnes FROM nom_table WHERE condition
Exemple
SELECT * FROM client WHERE ville = 'paris'
Afficher le contenu d’une table
conditionné par LIKE
L’opérateur LIKE est utilisé dans la clause WHERE des requêtes SQL. Ce mot-clé
permet d’effectuer une recherche sur les enregistrements dont la valeur d’une
colonne commence par telle ou telle lettre.
SELECT *FROM table WHERE colonne LIKE modele
Exemple: Affichage des villes qui commencent par ‘N’
SELECT FROM client WHERE ville LIKE 'N%'
6
31/10/2025
Afficher le contenu d’une table sans
redondance
La commande SELECT en SQL permet de lire toutes les données d’une ou plusieurs
colonnes. Cette commande peut potentiellement afficher des lignes en doubles. Pour
éviter des redondances dans les résultats il faut simplement ajouter DISTINCT après
le mot SELECT.
SELECT DISTINCT ma_colonne FROM nom_du_tableau
Pour le Système de Gestion de Bases de Données (SGBD) Oracle, cette requête est
remplacée par la commande “UNIQUE”:
SELECT UNIQUE ma_colonne FROM nom_du_tableau
Afficher le contenu d’une table
operateur Between
L’opérateur BETWEEN est utilisé dans une requête SQL pour sélectionner un
intervalle de données dans une requête utilisant WHERE.
SELECT * FROM table WHERE nom_colonne BETWEEN 'valeur1' AND 'valeur2’
Si l’ont souhaite obtenir les membres qui se sont inscrit entre le 1 avril 2012 et
le 20 avril 2012 il est possible d’effectuer la requête suivante:
SELECT * FROM utilisateur WHERE date_inscription BETWEEN ‘2012-04-01’
AND ‘2012-04-20’
7
31/10/2025
Afficher le contenu d’une table
operateur IN
L’opérateur logique IN dans SQL s’utilise avec la commande WHERE pour
vérifier si une colonne est égale à une des valeurs comprises dans set de
valeurs déterminés.
SELECT nom_colonne FROM table WHERE nom_colonne IN ( valeur1, valeur2,
valeur3, ... )
Exemple:
SELECT prenom
FROM utilisateur
WHERE prenom IN ( 'Maurice', 'Marie', 'Thimoté' )
Afficher le contenu d’une table
operateur AND & OR
Une requête SQL peut être restreinte à l’aide de la condition WHERE. Les
opérateurs logiques AND et OR peuvent être utilisées au sein de la commande
WHERE pour combiner des conditions.
SELECT nom_colonnes FROM nom_table WHERE condition1 AND/OR condition2
Exemple:
SELECT * FROM produit WHERE categorie = 'informatique' AND stock < 20
8
31/10/2025
Afficher le contenu d’une table
operateur IS NULL / IS NOT NULL
Pour filtrer les résultats où les champs d’une colonne sont à NULL il convient
d’utiliser la syntaxe suivante:
SELECT * FROM table WHERE nom_colonne IS NULL
SELECT * FROM table WHERE nom_colonne IS NOT NULL
Afficher le contenu d’une table
operateur GROUP BY
La commande GROUP BY est utilisée en SQL pour grouper plusieurs résultats et
utiliser une fonction de totaux sur un groupe de résultat.
SELECT colonne1, fonction(colonne2) FROM table GROUP BY colonne1
9
31/10/2025
Afficher le contenu d’une table
operateur GROUP BY
SELECT client, SUM(tarif) FROM achat GROUP BY client
Avant Après
Afficher le contenu d’une table
operateur HAVING
La condition HAVING en SQL 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, SUM(colonne2) FROM nom_table GROUP BY colonne1
HAVING fonction(colonne2) operateur valeur
10
31/10/2025
Afficher le contenu d’une table
operateur HAVING
SELECT client, SUM(tarif) FROM achat GROUP BY
client HAVING SUM(tarif) > 40
Avant Après
Afficher le contenu d’une table
operateur ORDER BY
La commande ORDER BY permet de trier les lignes dans un résultat
d’une requête SQL. Il est possible de trier les données sur une ou
plusieurs colonnes, par ordre ascendant ou descendant.
SELECT colonne1, colonne2 FROM table ORDER BY colonne1 DESC/ASC
Exemple: Triage croissant (ASC)
SELECT * FROM utilisateur ORDER BY nom ASC
11
31/10/2025
Afficher le contenu d’une table
operateur AS
Dans le langage SQL il est possible d’utiliser des alias pour renommer
temporairement une colonne ou une table dans une requête. Cette
astuce est particulièrement utile pour faciliter la lecture des requêtes.
SELECT colonne1 AS c1, colonne2 FROM table
Afficher le contenu d’une table
operateur LIMIT & OFFSET
La clause LIMIT est à utiliser dans une requête SQL pour spécifier le
nombre maximum de résultats que l’ont souhaite obtenir.
SELECT * FROM table LIMIT 10
Cette requête permet de récupérer les résultats 6 à 15 (car l’OFFSET
commence toujours à 0). A titre d’exemple, pour récupérer les résultats
16 à 25 il faudrait donc utiliser: LIMIT 10 OFFSET 15
SELECT * FROM table LIMIT 10 OFFSET 5
12
31/10/2025
Insérer des enregistrements dans une table
L’insertion de données dans une table s’effectue à l’aide de la
commande INSERT INTO. Cette commande permet au choix d’inclure
une seule ligne à la base existante ou plusieurs lignes d’un coup.
INSERT INTO table VALUES ('valeur 1', 'valeur 2', ...)
Exemple:
INSERT INTO table (nom_colonne_1, nom_colonne_2) VALUES ('valeur
1', 'valeur 2')
Mettre à jour des enregistrements d’une table
La commande UPDATE permet d’effectuer des modifications sur des lignes
existantes. Très souvent cette commande est utilisée avec WHERE pour
spécifier sur quelles lignes doivent porter la ou les modifications.
UPDATE table SET nom_colonne_1 = 'nouvelle valeur’ WHERE condition
Exemple:
UPDATE client SET rue = '49 Rue Ameline’ WHERE id = 2
13
31/10/2025
Supprimer des enregistrements d’une table
La commande DELETE en SQL permet de supprimer des lignes dans une
table. En utilisant cette commande associée à WHERE il est possible de
sélectionner les lignes concernées qui seront supprimées.
DELETE FROM table WHERE condition
Exemple:
DELETE FROM utilisateur WHERE id = 1
Utilisation des jointures internes
Dans le langage SQL la commande INNER JOIN, est un type de jointures
très communes pour lier plusieurs tables entre-elles. Cette commande
retourne les enregistrements lorsqu’il y a au moins une ligne dans chaque
colonne qui correspond à la condition.
SELECT * FROM table1 INNER JOIN table2 ON [Link] = table2.fk_id
14
31/10/2025
Utilisation des jointures internes
SELECT id, prenom, nom, date_achat, num_facture, prix_total
FROM utilisateur
INNER JOIN commande ON [Link] = commande.utilisateur_id
Utilisation des jointures internes
SELECT id, prenom, nom, date_achat, num_facture, prix_total
FROM utilisateur
INNER JOIN commande ON [Link] = commande.utilisateur_id
15
31/10/2025
Fonctions d’agrégation
Les fonctions d’agrégation dans le langage SQL permettent d’effectuer
des opérations statistiques sur un ensemble d’enregistrement.
Fonction AVG
La fonction d’agrégation AVG() dans le langage SQL permet de calculer une
valeur moyenne sur un ensemble d’enregistrement de type numérique et non
nul.
SELECT client, AVG(tarif) FROM achat GROUP BY client
Fonctions d’agrégation
SELECT client, AVG(tarif) FROM achat GROUP BY client
Résultats
16
31/10/2025
Fonctions d’agrégation
Les fonctions d’agrégation dans le langage SQL permettent d’effectuer
des opérations statistiques sur un ensemble d’enregistrement.
Fonction COUNT()
En SQL, la fonction d’agrégation COUNT() permet de compter le nombre
d’enregistrement dans une table.
Possibilité des doublons
SELECT COUNT(nom_colonne) FROM table
Sans doublons
SELECT COUNT(DISTINCT nom_colonne) FROM table
Fonctions d’agrégation
SELECT COUNT(*) FROM utilisateur
Résultat
17
31/10/2025
Fonctions d’agrégation
Les fonctions d’agrégation dans le langage SQL permettent d’effectuer
des opérations statistiques sur un ensemble d’enregistrement.
Fonction SUM()
Dans le langage SQL, la fonction d’agrégation SUM() permet de calculer la
somme totale d’une colonne contenant des valeurs numériques. Cette
fonction ne fonction que sur des colonnes de types numériques (INT, FLOAT …)
SELECT SUM(prix) AS prix_total FROM facture WHERE facture_id = 1
Fonctions d’agrégation
SELECT SUM(prix) AS prix_total FROM facture WHERE facture_id = 1
Résultat
18