Résumé : dans ce tutoriel, vous apprendrez à utiliser l’instruction PostgreSQL DELETE pour supprimer des données dans une table.
Introduction à l’instruction PostgreSQL DELETE
L’instruction PostgreSQL DELETE
permet de supprimer une ou plusieurs lignes d’une table.
La syntaxe de base de l’instruction DELETE
est présentée ci-dessous :
Code language: SQL (Structured Query Language) (sql)DELETE FROM table_nameWHERE condition;
Dans cette syntaxe :
- D’abord, spécifiez le nom de la table dont vous voulez supprimer les données après les mots-clés
DELETE FROM
. - Deuxièmement, utilisez une condition dans la clause
WHERE
pour spécifier les lignes de la table à supprimer.
La clause WHERE
est facultative. Si vous omettez la clause WHERE
, l’instruction DELETE
supprimera toutes les lignes du tableau.
L’instruction DELETE
renvoie le nombre de lignes supprimées. Elle renvoie zéro si l’instruction DELETE
n’a supprimé aucune ligne.
Pour retourner la ou les lignes supprimées au client, vous utilisez la clause RETURNING
comme suit :
Code language: SQL (Structured Query Language) (sql)DELETE FROM table_nameWHERE conditionRETURNING (select_list | *)
L’astérisque (*
) permet de retourner toutes les colonnes de la ligne supprimée à partir de la table_name
.
Pour retourner des colonnes spécifiques, vous les spécifiez après le mot-clé RETURNING
.
Notez que l’instruction DELETE
ne fait que supprimer les données d’une table. Elle ne modifie pas la structure de la table. Si vous souhaitez modifier la structure d’une table, par exemple en supprimant une colonne, vous devez utiliser l’instruction ALTER TABLE
.
Exemples d’instructions DELETE de PostgreSQL
Mettons en place une table type pour la démonstration.
Les instructions suivantes créent une nouvelle table appelée links
et insèrent quelques données échantillons:
Code language: SQL (Structured Query Language) (sql)DROP TABLE IF EXISTS links;CREATE TABLE links ( id serial PRIMARY KEY, url varchar(255) NOT NULL, name varchar(255) NOT NULL, description varchar(255), rel varchar(10), last_update date DEFAULT now());INSERT INTO links VALUES ('1', 'https://www.postgresqltutorial.com', 'PostgreSQL Tutorial', 'Learn PostgreSQL fast and easy', 'follow', '2013-06-02'), ('2', 'http://www.oreilly.com', 'O''Reilly Media', 'O''Reilly Media', 'nofollow', '2013-06-02'), ('3', 'http://www.google.com', 'Google', 'Google', 'nofollow', '2013-06-02'), ('4', 'http://www.yahoo.com', 'Yahoo', 'Yahoo', 'nofollow', '2013-06-02'), ('5', 'http://www.bing.com', 'Bing', 'Bing', 'nofollow', '2013-06-02'), ('6', 'http://www.facebook.com', 'Facebook', 'Facebook', 'nofollow', '2013-06-01'), ('7', 'https://www.tumblr.com/', 'Tumblr', 'Tumblr', 'nofollow', '2013-06-02'), ('8', 'http://www.postgresql.org', 'PostgreSQL', 'PostgreSQL', 'nofollow', '2013-06-02');
Voici le contenu de la table links
:
Code language: SQL (Structured Query Language) (sql)SELECT * FROM links;
1) Utilisation du DELETE PostgreSQL pour supprimer une ligne de la table
L’instruction suivante utilise l’instruction DELETE
pour supprimer une ligne avec l’id 8 de la table links
:
Code language: SQL (Structured Query Language) (sql)DELETE FROM linksWHERE id = 8;
L’instruction renvoie 1 indiquant qu’une ligne a été supprimée :
Code language: Shell Session (shell)DELETE 1
L’instruction suivante utilise l’instruction DELETE
pour supprimer la ligne avec l’id 10:
Code language: SQL (Structured Query Language) (sql)DELETE FROM linksWHERE id = 10;
Puisque la ligne avec l’id 10 n’existe pas, l’instruction renvoie 0 :
Code language: Shell Session (shell)
2) Utilisation de PostgreSQL DELETE pour supprimer une ligne et retourner la ligne supprimée
L’instruction suivante supprime la ligne avec l’id 7 et retourne la ligne supprimée au client:
Code language: SQL (Structured Query Language) (sql)DELETE FROM linksWHERE id = 7RETURNING *;
PostgreSQL retourne la ligne supprimée suivante :
3) Utilisation de PostgreSQL DELETE pour supprimer plusieurs lignes de la la table
L’instruction suivante supprime deux lignes de la table links
et renvoie les valeurs de la colonne id
des lignes supprimées :
Code language: SQL (Structured Query Language) (sql)DELETE FROM linksWHERE id IN (6,5)RETURNING *;
Sortie :
4) Utilisation de PostgreSQL DELETE pour supprimer toutes les lignes de la table
L’instruction suivante utilise l’instruction DELETE
sans WHERE
clause pour supprimer toutes les lignes de la table links
:
Code language: SQL (Structured Query Language) (sql)DELETE FROM links;
Le tableau links
est maintenant vide.
Résumé
- Utiliser l’instruction
DELETE FROM
pour supprimer une ou plusieurs lignes d’un tableau. - Utiliser la clause
WHERE
pour spécifier les lignes à supprimer. - Utiliser la clause
RETURNING
pour retourner les lignes supprimées.
- Ce tutoriel a-t-il été utile ?
- OuiNon
.