Fiche de révision : Langage SQL et requêtes

Plan du Cours

  1. Principes et schéma relationnel
  2. Requêtes sur une relation
  3. Valeurs NULL et logique ternaire
  4. Requêtes multirelationnelles
  5. Jointures SQL92
  6. Sous-requêtes et opérateurs d’ensemble
  7. Ensembles et multiensembles
  8. Agrégation et regroupement

1. Principes et schéma relationnel

Notions clés & Définitions

  • SQL : Langage de très haut niveau qui exprime ce qu’il faut faire plutôt que la manière de le faire, tandis que le système de gestion de bases de données choisit une méthode d’exécution optimisée.

Points essentiels

  • Le schéma d’exemple comprend les relations:
    • Beers(name, manf)
    • Bars(name, addr, license)
    • Drinkers(name, addr, phone)
    • Likes(#drinker, #beer)
    • Sells(#bar, #beer, price)
    • Frequents(#drinker, #bar)

Astuce mémo

SQL décrit quoi faire, tandis qu’un langage procédural décrit comment le faire.

2. Requêtes sur une relation

★ À maîtriser

  • Une requête sur une relation commence par la relation de FROM, applique la sélection de WHERE, puis applique la projection étendue de SELECT.

📌 Les conditions WHERE peuvent utiliser les comparaisons =, <>, <, >, <= et >=, les opérateurs LIKE, IN, AND, OR et NOT.

Compléments

📌 L’expression AS permet de renommer un attribut dans le résultat d’une requête, par exemple name AS beer.

  • Dans une clause SELECT portant sur une seule relation, l’astérisque représente tous les attributs de cette relation.

  • Une clause SELECT peut contenir des expressions, comme price*114 AS priceInYen, ainsi que des constantes textuelles comme 'likes Bud'.

Astuce mémo

FROM → WHERE → SELECT : partir, filtrer, projeter.

3. Valeurs NULL et logique ternaire

Notions clés & Définitions

  • Valeur NULL : Représente généralement une valeur manquante ou une valeur inapplicable, comme une adresse inconnue ou le conjoint d’une personne célibataire.
  • COALESCE : Renvoie le premier paramètre qui n’est pas NULL.

★ À maîtriser

📌 Toute comparaison avec NULL, y compris NULL = NULL, produit UNKNOWN, et une ligne n’est retenue par WHERE que si la condition vaut TRUE.

  • La logique SQL comporte trois valeurs de vérité : TRUE, FALSE et UNKNOWN.

Compléments

📌 L’expression IS NULL ou IS NOT NULL renvoie toujours TRUE ou FALSE pour tester la présence d’une valeur NULL.

Astuce mémo

TRUE sélectionne, FALSE et UNKNOWN éliminent.

4. Requêtes multirelationnelles

★ À maîtriser

  • Une requête portant sur plusieurs relations forme d’abord le produit des relations de FROM, applique la condition de WHERE, puis projette les attributs et expressions de SELECT.

  • Pour trouver les bières aimées par une personne fréquentant Joe’s Bar, on relie Likes et Frequents par l’égalité de leur attribut drinker et on impose bar = 'Joe''s Bar'.

  • Une auto-jointure de Beers b1 et Beers b2 trouve les paires de bières du même fabricant avec b1.manf = b2.manf et b1.name < b2.name, ce qui évite les paires identiques et les doublons inversés.

Compléments

  • Les variables de tuple associées aux relations de FROM parcourent chaque combinaison de tuples et transmettent au SELECT celles qui satisfont WHERE.

📌 Lorsqu’un attribut porte le même nom dans plusieurs relations, il est désigné par la forme relation.attribut, comme Frequents.drinker.

Astuce mémo

Deux variables de tuple parcourent ensemble les combinaisons de relations.

5. Jointures SQL92

Notions clés & Définitions

  • Jointure theta : S’écrit R JOIN S ON condition et indique explicitement la condition de jointure.
  • Jointure naturelle : S’écrit R NATURAL JOIN S et égalise implicitement les attributs de même nom dans R et S.
  • Jointure externe : Conserve des tuples pendants qui ne trouvent pas de correspondance, contrairement à une jointure interne.
  • CROSS JOIN : Produit le produit cartésien de deux relations et remplace la forme ancienne consistant à placer les deux relations séparées par une virgule dans FROM.

★ À maîtriser

  • Dans une jointure externe:
    • LEFT conserve les tuples pendants de la relation gauche
    • RIGHT conserve ceux de la relation droite
    • FULL conserve ceux des deux relations

Compléments

  • Une jointure est interne par défaut, et le mot-clé INNER est donc généralement omis.

Astuce mémo

Theta explicite la condition, NATURAL l’infère ; INNER exclut, OUTER conserve les tuples orphelins.

6. Sous-requêtes et opérateurs d’ensemble

Notions clés & Définitions

  • Sous-requête : Instruction SELECT-FROM-WHERE placée entre parenthèses et utilisable notamment comme relation dans FROM ou comme valeur dans WHERE.

★ À maîtriser

  • Une sous-requête garantie de produire un seul tuple peut être utilisée comme une valeur, mais une erreur d’exécution survient si elle ne produit aucun tuple ou plusieurs tuples.

  • L’opérateur IN est vrai si le tuple appartient à la relation produite par la sous-requête, tandis que NOT IN teste son absence.

  • EXISTS est vrai si et seulement si le résultat de la sous-requête n’est pas vide.

  • Une sous-requête autonome ne référence pas la requête principale et peut être évaluée une seule fois, tandis qu’une sous-requête corrélée référence le tuple courant et peut être évaluée pour chaque tuple principal.

Compléments

📌 x = ANY sous-requête est vrai si x est égal à au moins un tuple produit, tandis que x <> ALL sous-requête est vrai si x est différent de tous les tuples produits.

  • Les opérateurs d’ensemble expriment:
    • UNION l’union
    • INTERSECT l’intersection
    • EXCEPT la différence

Astuce mémo

IN teste l’appartenance, EXISTS teste la non-vacuité, ANY généralise OR et ALL généralise AND.

7. Ensembles et multiensembles

Notions clés & Définitions

  • Sémantique multiensemble : Conserve les tuples dupliqués dans le résultat.

★ À maîtriser

📌 UNION, INTERSECT et EXCEPT utilisent par défaut une sémantique ensembliste qui élimine les doublons.

Compléments

📌 SELECT DISTINCT force l’élimination des doublons dans le résultat.

📌 Le mot-clé ALL conserve les doublons dans les opérateurs d’ensemble, comme dans UNION ALL ou EXCEPT ALL.

Astuce mémo

SELECT conserve les doublons, tandis que les opérateurs d’ensemble les éliminent par défaut.

8. Agrégation et regroupement

Notions clés & Définitions

  • HAVING : Applique une condition à chaque groupe après GROUP BY et élimine les groupes qui ne la satisfont pas.

★ À maîtriser

  • GROUP BY regroupe le résultat de FROM-WHERE selon les valeurs des attributs indiqués, puis applique les agrégations séparément à chaque groupe.

📌 Les valeurs NULL ne contribuent ni à SUM, ni à AVG, ni à COUNT, et ne peuvent être le minimum ou le maximum d’une colonne ; COUNT d’un ensemble vide vaut toutefois 0.

📌 Avec une agrégation, chaque élément de SELECT doit être soit agrégé, soit présent dans la liste GROUP BY.

  • Les fonctions d’agrégation SUM, AVG, COUNT, MIN et MAX peuvent être appliquées à une colonne, et COUNT(*) compte le nombre de tuples.

Compléments

  • 🔄 L’ordre syntaxique des clauses est: SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY

  • 🔄 L’ordre d’exécution conceptuel est: FROM, WHERE, GROUP BY, HAVING, ORDER BY, SELECT

Astuce mémo

Filtrer les tuples, regrouper, filtrer les groupes, ordonner.

Tableaux de synthèse

Types de jointures

DimensionThetaNaturelle
Condition de jointureExplicite avec ONImplicite par attributs de même nom
FormeR JOIN S ON conditionR NATURAL JOIN S
Nommage requisPas nécessairement identiqueAttributs joints de même nom

Jointures internes et externes

TypeTuples conservésOption
INNERCorrespondances uniquementValeur par défaut
LEFT OUTERCorrespondances et pendants gauchesLEFT
RIGHT OUTERCorrespondances et pendants droitsRIGHT
FULL OUTERCorrespondances et pendants des deux côtésFULL

Teste tes connaissances

Teste tes connaissances sur Langage SQL et requêtes avec 24 questions à choix multiples et corrections détaillées.

1. Quelle caractéristique décrit le mieux le rôle de SQL dans l’exécution d’une requête ?

2. Quelle relation associe un consommateur à une bière qu’il apprécie dans le schéma considéré ?

Faire le QCM →

Révisez avec les flashcards

Mémorisez les concepts clés de Langage SQL et requêtes avec 52 flashcards interactives.

Qu'est-ce que SQL exprime principalement ?

Ce qu'il faut faire, pas comment le faire.

Qui choisit la méthode d'exécution optimisée en SQL ?

Le système de gestion de bases de données.

Quelles relations contient le schéma d'exemple ?

Beers, Bars, Drinkers, Likes, Sells, Frequents.

Voir les flashcards →

Cours similaires

Crée tes propres fiches de révision

Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.

Générateur de fiches