Bases des bases de données

Quel est le résultat de l'exécution en SQL de DELETE FROM Employe sans clause WHERE ?

  1. AToutes les lignes de la table Employe sont supprimées, et il reste une table vide
  2. BLa table elle-même est supprimée, et sa définition disparaît aussi
  3. CComme il n'y a pas de clause WHERE, une erreur se produit et rien n'est supprimé
Afficher la réponse et l'explication

Réponse : A. Toutes les lignes de la table Employe sont supprimées, et il reste une table vide

DELETE est une instruction du DML qui supprime des lignes d'une table. Avec une condition dans une clause WHERE, seules les lignes qui la satisfont sont supprimées ; si la clause WHERE est omise, toutes les lignes sont supprimées. Même après que DELETE a supprimé toutes les lignes, la définition de la table (noms et types des colonnes, contraintes) subsiste, et l'on peut de nouveau ajouter des lignes avec INSERT. Supprimer la table elle-même, définition comprise, se fait avec l'instruction DDL DROP TABLE Employe. Il en va de même pour UPDATE : oublier la clause WHERE réécrit toutes les lignes ; il est donc important de vérifier la condition avant l'exécution. À l'intérieur d'une transaction, la modification peut être annulée par ROLLBACK avant le COMMIT.

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases des bases de données

  1. La colonne Points d'une table Examen contient 4 valeurs : 80, NULL, 70, 90 (NULL signifie que la personne n'a pas passé l'examen). Quel est le résultat de SELECT AVG(Points) FROM Examen ?
  2. La colonne Points d'une table Resultat contient 6 valeurs : 50, NULL, 70, NULL, 90, 30. Quelle proposition donne, dans l'ordre, le résultat de SELECT COUNT(*), COUNT(Points), AVG(Points) FROM Resultat ?
  3. À partir d'une table Employe(NumEmploye, Service, Salaire), on veut obtenir les services dont le salaire moyen est supérieur ou égal à 300, ainsi que ce salaire moyen. Quelle instruction SQL est correcte ?
  4. Une table Vente(Magasin, Montant) contient 7 lignes : (A, 500), (A, 700), (B, 300), (B, 400), (C, 1200), (D, 200), (D, 900). Combien de lignes renvoie SELECT Magasin, SUM(Montant) FROM Vente GROUP BY Magasin HAVING SUM(Montant) >= 1000 ?
  5. Une table Employe(Nom, Service, Salaire) contient 8 lignes ; les salaires par service sont : Commercial 320, 280, 350 ; Développement 400, 310 ; Administration 260, 300 ; Planification 330. Combien de lignes renvoie SELECT Service, COUNT(*) FROM Employe WHERE Salaire >= 300 GROUP BY Service HAVING COUNT(*) >= 2 ?