Den här artikeln listar SQL DELETE
syntax, som implementeras av olika databashanteringssystem (DBMS). Syntaxen är listad exakt som varje leverantör har listat den på sin webbplats. Klicka på den tillämpliga länken för att se mer information om syntaxen för en viss leverantör.
De DBMS som omfattas är MySQL, SQL Server, PostgreSQL och Oracle Database.
MySQL
Från MySQL 5.7 Reference Manual.
Syntax för en tabell:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROMtbl_name
[PARTITION (partition_name
,...)] [WHEREwhere_condition
] [ORDER BY ...] [LIMITrow_count
]
Syntax för flera tabeller:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]tbl_name
[.*] [,tbl_name
[.*]] ... FROMtable_references
[WHEREwhere_condition
]
Eller:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROMtbl_name
[.*] [,tbl_name
[.*]] ... USINGtable_references
[WHEREwhere_condition
]
SQL-server
Från Transact-SQL-referensen:
[ 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
Från PostgreSQL 9.5-manualen:
[ 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
Från 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 } ]
Om DELETE
Uttalande
Den DELETE
statement är ett datamanipulationsspråk (DML) påstående som tar bort de angivna raderna från en tabell.
Den RADERA uttalande tar bort rader som uppfyller WHERE klausul från den angivna tabellen. Om VAR sats saknas, kommer alla rader i tabellen att raderas och tabellen lämnas tom.
Tips
Den TRUNCATE
sats (eller i fallet med SQL Server, TRUNCATE TABLE
sats ) liknar DELETE
uttalande utan WHERE
klausul; dock TRUNCATE
är snabbare och använder färre system- och transaktionsloggresurser.