Cours SQL et MySQL · Module 5: Modifier les données (DML)
NULL et les valeurs par défaut en DML
Dans cette leçon4
Tous les champs d'un parchemin ne doivent pas forcément être remplis. Parfois, le scribe ne connaît pas encore une valeur - un livre est emprunté mais n'a pas encore été rendu, donc data_zwrotu reste vide. Dans la langue de la Bibliothèque, on appelle ce vide NULL.
Qu'est-ce que NULL ?
NULL est l'absence de valeur - ni zéro, ni texte vide, mais l'information « il n'y a rien ici ». C'est une distinction importante :
0- est le nombre zéro précis,''- est un texte vide (un texte de longueur zéro),NULL- est l'absence de toute valeur.
Insérer NULL dans un INSERT
Pour enregistrer une absence de valeur, à la place de la valeur nous écrivons le mot NULL sans guillemets simples :
1INSERT INTO wypozyczenia (ksiazka_id, czytelnik_id, data_wypozyczenia, data_zwrotu)
2VALUES (5, 7, '2024-03-01', NULL);Ici, nous fixons data_zwrotu à NULL - le livre a été emprunté, mais il n'y a pas encore de date de retour.
Vider un champ avec UPDATE
Pour vider un champ existant (pas toute la ligne !), nous utilisons UPDATE ... SET champ = NULL :
1UPDATE wypozyczenia
2SET data_zwrotu = NULL
3WHERE id = 8;Rappelle-toi : ceci reste un UPDATE - donc le WHERE s'applique ici aussi ! Sans lui, tu viderais data_zwrotu dans tous les emprunts.
NULL face à une colonne omise
Si tu omets une colonne dans un INSERT, la Bibliothèque insère sa valeur par défaut (souvent NULL, et pour id - le prochain numéro d'AUTO_INCREMENT). Écrire NULL explicitement a le même effet, mais ton intention est visible immédiatement.
Tu as repéré une erreur dans cette leçon ?
Teste tes connaissances
Réponds aux questions de cette leçon. Choisis une réponse pour voir tout de suite si elle est correcte.
1. Que signifie la valeur NULL dans une colonne ?
2. Comment indique-t-on dans une commande INSERT qu'une colonne donnée n'a pas de valeur ?
Tâches pratiques dans le jeu
- Éditeur de code
Écris une commande qui ajoute à la table wypozyczenia une ligne (colonnes ksiazka_id, czytelnik_id, data_wypozyczenia, data_zwrotu) : 5, 7, '2024-03-01' et NULL pour data_zwrotu (le livre n'est pas encore rendu).
- Tri vertical
Ordonne les lignes d'un INSERT multi-lignes dans le bon ordre (de haut en bas) :
- Tri horizontal
Ordonne sur une ligne le fragment SET qui met un champ à NULL (de gauche à droite) :