Cet article répertorie le code SQL DELETE
syntaxe, telle qu'implémentée par divers systèmes de gestion de bases de données (SGBD). La syntaxe est répertoriée exactement comme chaque fournisseur l'a répertoriée sur son site Web. Cliquez sur le lien applicable pour afficher plus de détails sur la syntaxe d'un fournisseur particulier.
Les SGBD couverts sont MySQL, SQL Server, PostgreSQL et Oracle Database.
MySQL
À partir du manuel de référence MySQL 5.7.
Syntaxe à table unique :
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROMtbl_name
[PARTITION (partition_name
,...)] [WHEREwhere_condition
] [ORDER BY ...] [LIMITrow_count
]
Syntaxe multitable :
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]tbl_name
[.*] [,tbl_name
[.*]] ... FROMtable_references
[WHEREwhere_condition
]
Ou :
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROMtbl_name
[.*] [,tbl_name
[.*]] ... USINGtable_references
[WHEREwhere_condition
]
SQL Server
À partir de la référence Transact-SQL :
[ WITH <common_table_expression> [ ,...n ] ] DELETE [ TOP ( expression ) [ PERCENT ] ] [ FROM ] { { table_alias | <object> | rowset_function_limited [ WITH ( table_hint_limited [ ...n ] ) ] } | @table_variable } [ <OUTPUT Clause> ] [ FROM table_source [ ,...n ] ] [ WHERE { <search_condition> | { [ CURRENT OF { { [ GLOBAL ] cursor_name } | cursor_variable_name } ] } } ] [ OPTION ( <Query Hint> [ ,...n ] ) ] [; ] <object> ::= { [ server_name.database_name.schema_name. | database_name. [ schema_name ] . | schema_name. ] table_or_view_name }
PostgreSQL
À partir du manuel PostgreSQL 9.5 :
[ WITH [ RECURSIVE ] with_query [, ...] ] DELETE FROM [ ONLY ] table_name [ * ] [ [ AS ] alias ] [ USING using_list ] [ WHERE condition | WHERE CURRENT OF cursor_name ] [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]
Base de données Oracle
À partir de la documentation en ligne de la base de données Oracle 12c Version 1 (12.1) :
DELETE [ hint ] [ FROM ] { dml_table_expression_clause | ONLY (dml_table_expression_clause) } [ t_alias ] [ where_clause ] [ returning_clause ] [error_logging_clause];
DML_table_expression_clause : :=
{ [ schema. ] { table [ partition_extension_clause | @ dblink ] | { view | materialized view } [ @ dblink ] } | ( subquery [ subquery_restriction_clause ] ) | table_collection_expression }
partition_extension_clause ::=
{ PARTITION (partition) | PARTITION FOR (partition_key_value [, partition_key_value]...) | SUBPARTITION (subpartition) | SUBPARTITION FOR (subpartition_key_value [, subpartition_key_value]...) }
subquery_restriction_clause ::=
WITH { READ ONLY | CHECK OPTION } [ CONSTRAINT constraint ]
expression_table_collection ::=
TABLE (collection_expression) [ (+) ]
clause_where ::=
WHERE condition
returning_clause ::=
{ RETURN | RETURNING } expr [, expr ]... INTO data_item [, data_item ]...
error_logging_clause ::=
LOG ERRORS [ INTO [schema.] table ] [ (simple_expression) ] [ REJECT LIMIT { integer | UNLIMITED } ]
À propos de DELETE
Déclaration
Le DELETE
est une instruction en langage de manipulation de données (DML) qui supprime les lignes spécifiées d'un tableau.
La SUPPRIMER l'instruction supprime les lignes qui satisfont à WHERE clause de la table spécifiée. Si le OÙ clause est absente, toutes les lignes du tableau seront supprimées, laissant le tableau vide.
Astuce
Le TRUNCATE
(ou dans le cas de SQL Server, l'instruction TRUNCATE TABLE
) est similaire à DELETE
instruction sans WHERE
clause; cependant, TRUNCATE
est plus rapide et utilise moins de ressources système et de journaux de transactions.