sql >> Base de Datos >  >> RDS >> Mysql

Sintaxis SQL DELETE – Listado por DBMS

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] FROM tbl_name
    [PARTITION (partition_name,...)]
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]

Sintaxis de varias tablas:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
    tbl_name[.*] [, tbl_name[.*]] ...
    FROM table_references
    [WHERE where_condition]

O:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
    FROM tbl_name[.*] [, tbl_name[.*]] ...
    USING table_references
    [WHERE where_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.