Questions et réponses : SQL & Bases de données

Révisez le thème SQL & Bases de données : voici une sélection de questions de tous niveaux, avec la réponse et une explication. Pour vous tester sans voir les réponses, jouez aux quiz.

Jouer aux quiz SQL & Bases de données

Facile

Quelle instruction SQL permet de lire les données d'une table sans les modifier ?

Réponse : SELECT

SELECT lit les lignes demandées. INSERT ajoute, UPDATE modifie et DELETE supprime des lignes.

Quel mot-clé placé après SELECT supprime les lignes identiques du résultat ?

Réponse : DISTINCT

DISTINCT ne garde qu'une seule occurrence de chaque ligne identique dans le résultat.

Quelle clause ne garde que les lignes qui respectent une condition ?

Réponse : WHERE

WHERE filtre les lignes selon une condition, par exemple WHERE age >= 18.

Avec quelle clause trie-t-on les lignes d'un résultat ?

Réponse : ORDER BY

ORDER BY nom ASC trie par ordre croissant, DESC par ordre décroissant.

Quelle instruction ajoute une nouvelle ligne dans une table ?

Réponse : INSERT

INSERT INTO ajoute une ligne ; UPDATE modifie des lignes existantes, CREATE crée une table et ALTER en change la structure.

Dans le modèle relationnel, comment appelle-t-on une ligne d'une table ?

Réponse : Un n-uplet, aussi appelé enregistrement

Une ligne est un n-uplet, aussi appelé enregistrement ; une colonne correspond à un attribut.

Quel est le rôle d'une clé primaire dans une table ?

Réponse : Identifier de façon unique chaque ligne

La clé primaire ne peut être ni NULL ni répétée, ce qui permet d'identifier chaque ligne sans ambiguïté.

En quelle année Edgar F. Codd publie-t-il le modèle relationnel des bases de données ?

Réponse : 1970

Edgar F. Codd publie en 1970 l'article fondateur du modèle relationnel, sur lequel repose SQL.

Moyen

Quelle jointure ne garde que les lignes qui ont une correspondance dans les deux tables ?

Réponse : INNER JOIN

INNER JOIN ne garde que les correspondances ; LEFT JOIN conserve toutes les lignes de la table de gauche, avec NULL quand il n'y a pas de correspondance.

Quelle requête compte le nombre de clients pour chaque ville ?

Réponse : SELECT ville, COUNT(*) FROM clients GROUP BY ville

GROUP BY ville regroupe les lignes par ville, et COUNT(*) compte les lignes de chaque groupe.

Quelle clause filtre les groupes après un GROUP BY, en fonction d'un agrégat ?

Réponse : HAVING

WHERE filtre les lignes avant le regroupement ; HAVING filtre les groupes, par exemple HAVING COUNT(*) > 5.

Quelle fonction d'agrégation calcule la moyenne d'une colonne numérique ?

Réponse : AVG

AVG calcule la moyenne des valeurs non NULL d'une colonne numérique.

Quelle condition permet de trouver les lignes où une colonne n'a aucune valeur ?

Réponse : WHERE email IS NULL

Une comparaison avec = ou <> à NULL n'est jamais vraie : on utilise IS NULL ou IS NOT NULL.

Dans SELECT nom FROM clients WHERE id IN (SELECT client_id FROM commandes), que fournit la sous-requête ?

Réponse : Elle fournit la liste des client_id présents dans la table commandes

La sous-requête renvoie une liste de valeurs ; la requête externe garde les clients dont l'id figure dans cette liste.

Quel est le rôle d'une clé étrangère ?

Réponse : Référencer la clé primaire d'une autre table

Une clé étrangère référence une clé, en général la clé primaire d'une autre table ; le SGBD peut refuser une valeur absente de cette table.

Quel opérateur combine les résultats de deux requêtes en supprimant les lignes en double ?

Réponse : UNION

UNION fusionne les résultats en supprimant les doublons ; UNION ALL les garde tous, sans cette étape de suppression.

Difficile

Que désigne la lettre A de l'acronyme ACID ?

Réponse : Atomicité

Atomicité : une transaction est exécutée entièrement ou pas du tout. ACID regroupe aussi la cohérence, l'isolation et la durabilité.

Quel niveau d'isolation ANSI interdit les lectures sales mais autorise les lectures non reproductibles ?

Réponse : READ COMMITTED

READ COMMITTED ne lit que des données validées, mais une même ligne peut changer entre deux lectures d'une transaction.

Qu'impose la deuxième forme normale (2FN) ?

Réponse : Être en 1FN et éviter les dépendances partielles sur une clé composée

La 2FN suppose la 1FN, puis qu'aucun attribut non clé ne dépende d'une partie seulement d'une clé composée.

Quelle structure est utilisée par défaut pour les index d'InnoDB, le moteur de stockage de MySQL ?

Réponse : Un arbre B+

InnoDB organise ses index en arbres B+, dont les feuilles sont chaînées entre elles pour les parcours par intervalle.

Que fait la commande EXPLAIN placée devant une requête SELECT ?

Réponse : Affiche le plan d'exécution prévu sans exécuter la requête

EXPLAIN affiche le plan prévu (index, ordre des jointures) sans exécuter la requête ; EXPLAIN ANALYZE, lui, l'exécute.

Qu'est-ce qu'une vue SQL ordinaire, créée avec CREATE VIEW ?

Réponse : Un nom donné à une requête SELECT, réexécutée à chaque lecture

Une vue ordinaire ne stocke rien : elle est réexécutée à chaque lecture. Une vue matérialisée, elle, conserve ses résultats.

Qu'est-ce qu'un déclencheur (trigger) dans une base SQL ?

Réponse : Du code SQL exécuté automatiquement lors d'un INSERT, UPDATE ou DELETE sur une table

Un trigger s'exécute automatiquement lors d'un événement sur une table ; une procédure stockée, elle, s'appelle explicitement avec CALL.

Que dit le théorème CAP, proposé par Eric Brewer ?

Réponse : Un système distribué ne peut garantir à la fois cohérence, disponibilité et tolérance aux partitions

Quand le réseau se coupe entre des nœuds, un système distribué doit choisir entre cohérence et disponibilité.

Thèmes proches

Jouer aux quiz SQL & Bases de données