Тази статия изброява 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[.*]] ...
FROM table_references
[WHERE where_condition] Или:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
FROM tbl_name[.*] [, tbl_name[.*]] ...
USING table_references
[WHERE where_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 е по-бърз и използва по-малко ресурси на системата и транзакциите.