Este artículo enumera el DELETE
de SQL sintaxis, implementada por varios sistemas de administración de bases de datos (DBMS). La sintaxis se enumera exactamente como cada proveedor la ha incluido en su sitio web. Haga clic en el enlace correspondiente para ver más detalles sobre la sintaxis de un proveedor en particular.
Los DBMS cubiertos son MySQL, SQL Server, PostgreSQL y Oracle Database.
MySQL
Del Manual de referencia de MySQL 5.7.
Sintaxis de tabla única:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROMtbl_name
[PARTITION (partition_name
,...)] [WHEREwhere_condition
] [ORDER BY ...] [LIMITrow_count
]
Sintaxis de varias tablas:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]tbl_name
[.*] [,tbl_name
[.*]] ... FROMtable_references
[WHEREwhere_condition
]
O:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROMtbl_name
[.*] [,tbl_name
[.*]] ... USINGtable_references
[WHEREwhere_condition
]
Servidor SQL
De la Referencia de 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
Del Manual de 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 datos de Oracle
De la documentación en línea de Oracle Database 12c Versión 1 (12.1):
DELETE [ hint ] [ FROM ] { dml_table_expression_clause | ONLY (dml_table_expression_clause) } [ t_alias ] [ where_clause ] [ returning_clause ] [error_logging_clause];
Cláusula_expresión_tabla_DML::=
{ [ schema. ] { table [ partition_extension_clause | @ dblink ] | { view | materialized view } [ @ dblink ] } | ( subquery [ subquery_restriction_clause ] ) | table_collection_expression }
cláusula_extensión_partición::=
{ PARTITION (partition) | PARTITION FOR (partition_key_value [, partition_key_value]...) | SUBPARTITION (subpartition) | SUBPARTITION FOR (subpartition_key_value [, subpartition_key_value]...) }
cláusula_de_restricción_de_subconsulta::=
WITH { READ ONLY | CHECK OPTION } [ CONSTRAINT constraint ]
expresión_colección_tabla::=
TABLE (collection_expression) [ (+) ]
donde_cláusula::=
WHERE condition
cláusula_devolución ::=
{ RETURN | RETURNING } expr [, expr ]... INTO data_item [, data_item ]...
cláusula_de_registro_de_errores ::=
LOG ERRORS [ INTO [schema.] table ] [ (simple_expression) ] [ REJECT LIMIT { integer | UNLIMITED } ]
Acerca de DELETE
Declaración
El DELETE
es una declaración de lenguaje de manipulación de datos (DML) que elimina las filas especificadas de una tabla.
El ELIMINAR declaración elimina filas que satisfacen el WHERE cláusula de la tabla especificada. Si el DONDE falta la cláusula, se eliminarán todas las filas de la tabla, dejando la tabla vacía.
Consejo
El TRUNCATE
declaración (o en el caso de SQL Server, la TRUNCATE TABLE
instrucción ) es similar a DELETE
declaración sin WHERE
cláusula; sin embargo, TRUNCATE
es más rápido y utiliza menos recursos del registro de transacciones y del sistema.