Тази статия изброява SQL DELETE
синтаксис, както се изпълнява от различни системи за управление на бази данни (СУБД). Синтаксисът е посочен точно както всеки доставчик го е посочил на своя уебсайт. Щракнете върху приложимата връзка, за да видите повече подробности за синтаксиса за конкретен доставчик.
Обхванатите СУБД са MySQL, SQL Server, PostgreSQL и Oracle Database.
MySQL
От Справочното ръководство за MySQL 5.7.
Синтаксис на една таблица:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROMtbl_name
[PARTITION (partition_name
,...)] [WHEREwhere_condition
] [ORDER BY ...] [LIMITrow_count
]
Синтаксис за множество таблици:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]tbl_name
[.*] [,tbl_name
[.*]] ... FROMtable_references
[WHEREwhere_condition
]
Или:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROMtbl_name
[.*] [,tbl_name
[.*]] ... USINGtable_references
[WHEREwhere_condition
]
SQL сървър
От справочника за 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
От ръководството за 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 ] [, ...] ]
База данни на Oracle
От Oracle Database Online Documentation 12c Издание 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 (partition) | PARTITION FOR (partition_key_value [, partition_key_value]...) | SUBPARTITION (subpartition) | SUBPARTITION FOR (subpartition_key_value [, subpartition_key_value]...) }
clause_subquery_restriction_clause::=
WITH { READ ONLY | CHECK OPTION } [ CONSTRAINT constraint ]
израз за_колекция_таблица::=
TABLE (collection_expression) [ (+) ]
където_клауза::=
WHERE condition
клауза за връщане ::=
{ RETURN | RETURNING } expr [, expr ]... INTO data_item [, data_item ]...
клауза_за_регистриране на грешка ::=
LOG ERRORS [ INTO [schema.] table ] [ (simple_expression) ] [ REJECT LIMIT { integer | UNLIMITED } ]
Относно DELETE
Изявление
DELETE
Инструкцията е израз на език за манипулиране на данни (DML), който премахва посочените редове от таблица.
ИЗТРИВАНЕ оператор изтрива редове, които отговарят на WHERE клауза от посочената таблица. Ако КЪДЕ клаузата липсва, всички редове в таблицата ще бъдат изтрити, оставяйки таблицата празна.
Съвет
TRUNCATE
оператор (или в случай на SQL Server, TRUNCATE TABLE
изявление ) е подобно на DELETE
изявление без WHERE
клауза; обаче TRUNCATE
е по-бърз и използва по-малко ресурси на системата и транзакциите.