SELECT pour interroger une base de donnéesWHERESELECT * FROM MATIERE;
Affiche toutes les colonnes de la table MATIERE.
SELECT nomMatiere, coefficient FROM MATIERE;
Affiche uniquement les colonnes spécifiées.
SELECT DISTINCT codeModule FROM MATIERE;
DISTINCT élimine les lignes en double dans les résultats.
SELECT nomMatiere AS Matiere, coefficient AS Coef FROM MATIERE;
Renomme temporairement les colonnes dans l'affichage.
SELECT * FROM MATIERE WHERE codeMatiere = 'INF220';
= : égal!= ou <> : différent<, >, <=, >= : comparaisonsSELECT nomMatiere, coefficient FROM MATIERE WHERE coefficient >= 2.0;
SELECT * FROM MATIERE WHERE coefficient BETWEEN 1.5 AND 2.5;
Équivalent à coefficient >= 1.5 AND coefficient <= 2.5
SELECT * FROM MATIERE WHERE nomMatiere IN ('Anglais', 'Mathématiques');
% : n'importe quelle suite de caractères (0 ou plus)_ : un seul caractère-- Commence par 'S'
SELECT nom FROM ETUDIANT WHERE nom LIKE 'S%';
-- Termine par 'S'
SELECT ville FROM ETUDIANT WHERE ville LIKE '%S';
-- Contient 'S'
SELECT ville FROM ETUDIANT WHERE ville LIKE '%S%';
-- Deuxième caractère est 'O'
SELECT ville FROM ETUDIANT WHERE ville LIKE '_O%';
-- 5ème caractère n'est pas 'D'
SELECT rue FROM ETUDIANT WHERE rue NOT LIKE '____D%';
SELECT COUNT(*) FROM MATIERE;
SELECT COUNT(DISTINCT nomMatiere) AS Total FROM MATIERE;
SELECT AVG(coefficient) AS MoyenneCoef FROM MATIERE;
SELECT SUM(coefficient) AS SommeCoef FROM MATIERE;
SELECT MIN(coefficient) AS CoefMin, MAX(coefficient) AS CoefMax FROM MATIERE;
SELECT nomMatiere, coefficient FROM MATIERE ORDER BY coefficient;
SELECT nomMatiere, coefficient FROM MATIERE ORDER BY coefficient DESC;
SELECT nomMatiere, coefficient
FROM MATIERE
ORDER BY nomMatiere DESC, coefficient ASC;
Trie d'abord par nomMatiere (décroissant), puis par coefficient (croissant).
GROUP BY regroupe les lignes ayant la même valeur pour une colonne.
-- Nombre d'étudiants par classe
SELECT codeClasse, COUNT(*) AS NbEtudiants
FROM ETUDIANT
GROUP BY codeClasse;
-- Taille moyenne par classe
SELECT codeClasse, AVG(taille) AS TailleMoyenne
FROM ETUDIANT
GROUP BY codeClasse;
SELECT E.numEtudiant, E.nom, E.prenom, C.nomClasse
FROM ETUDIANT E, CLASSE C
WHERE E.codeClasse = C.codeClasse;
SELECT E.numEtudiant, E.nom, E.prenom, C.nomClasse
FROM ETUDIANT E
INNER JOIN CLASSE C ON E.codeClasse = C.codeClasse;
INNER JOIN est plus standard et plus lisible.
SELECT C.nomClasse, COUNT(*) AS NbEtudiants
FROM ETUDIANT E
INNER JOIN CLASSE C ON E.codeClasse = C.codeClasse
WHERE E.dateNaissance > '2005-01-01'
GROUP BY C.nomClasse;
SELECT * sélectionne toutes les colonnesWHERE filtre les lignesDISTINCT élimine les doublonsBETWEEN filtre entre deux valeurs (incluses)LIKE recherche des motifs (% = plusieurs caractères, _ = un caractère)COUNT, AVG, SUM, MIN, MAX sont des fonctions d'agrégationORDER BY trie les résultats (ASC/DESC)GROUP BY regroupe les lignes pour les agrégationsINNER JOIN permet de combiner deux tablesAS crée des alias pour renommer temporairement-- Afficher les étudiants de Paris
SELECT nom, prenom, ville
FROM ETUDIANT
WHERE ville = 'Paris';
-- Compter les matières par coefficient
SELECT coefficient, COUNT(*) AS NbMatieres
FROM MATIERE
GROUP BY coefficient
ORDER BY coefficient;
-- Étudiants avec leur classe (jointure)
SELECT E.nom, E.prenom, C.nomClasse
FROM ETUDIANT E
INNER JOIN CLASSE C ON E.codeClasse = C.codeClasse
WHERE E.ville LIKE 'B%'
ORDER BY E.nom;