Dit artikel bevat de SQL DELETE
syntaxis, zoals geïmplementeerd door verschillende databasebeheersystemen (DBMS'en). De syntaxis wordt precies weergegeven zoals elke leverancier deze op hun website heeft vermeld. Klik op de toepasselijke link om meer details over de syntaxis voor een bepaalde leverancier te bekijken.
De gedekte DBMS'en zijn MySQL, SQL Server, PostgreSQL en Oracle Database.
MySQL
Uit de MySQL 5.7 Reference Manual.
Syntaxis voor één tabel:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROMtbl_name
[PARTITION (partition_name
,...)] [WHEREwhere_condition
] [ORDER BY ...] [LIMITrow_count
]
Syntaxis voor meerdere tabellen:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]tbl_name
[.*] [,tbl_name
[.*]] ... FROMtable_references
[WHEREwhere_condition
]
Of:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROMtbl_name
[.*] [,tbl_name
[.*]] ... USINGtable_references
[WHEREwhere_condition
]
SQL-server
Uit de Transact-SQL-referentie:
[ 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
Uit de PostgreSQL 9.5-handleiding:
[ 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 ] [, ...] ]
Oracle-database
Uit de Oracle Database Online Documentation 12c Release 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 ]
table_collection_expression::=
TABLE (collection_expression) [ (+) ]
where_clause::=
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 } ]
Over de DELETE
Verklaring
De DELETE
statement is een DML-instructie (Data Manipulation Language) waarmee de opgegeven rijen uit een tabel worden verwijderd.
De VERWIJDEREN instructie verwijdert rijen die voldoen aan de WHERE clausule uit de opgegeven tabel. Als de WAAR clausule ontbreekt, worden alle rijen in de tabel verwijderd, waardoor de tabel leeg blijft.
Tip
De TRUNCATE
statement (of in het geval van SQL Server, de TRUNCATE TABLE
statement ) is vergelijkbaar met de DELETE
verklaring zonder WHERE
clausule; echter, TRUNCATE
is sneller en gebruikt minder systeem- en transactielogboekbronnen.