Mysql
 sql >> Base de données >  >> RDS >> Mysql

Syntaxe SQL DELETE – Répertorié par le SGBD

Cet article répertorie le code SQL DELETE syntaxe, telle qu'implémentée par divers systèmes de gestion de bases de données (SGBD). La syntaxe est répertoriée exactement comme chaque fournisseur l'a répertoriée sur son site Web. Cliquez sur le lien applicable pour afficher plus de détails sur la syntaxe d'un fournisseur particulier.

Les SGBD couverts sont MySQL, SQL Server, PostgreSQL et Oracle Database.

MySQL

À partir du manuel de référence MySQL 5.7.

Syntaxe à table unique :

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
    [PARTITION (partition_name,...)]
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]

Syntaxe multitable :

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

Ou :

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

SQL Server

À partir de la référence 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

À partir du manuel 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 données Oracle

À partir de la documentation en ligne de la base de données Oracle 12c Version 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 ]

expression_table_collection ::=

TABLE (collection_expression) [ (+) ]

clause_where ::=

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 } ]

À propos de DELETE Déclaration

Le DELETE est une instruction en langage de manipulation de données (DML) qui supprime les lignes spécifiées d'un tableau.

La SUPPRIMER l'instruction supprime les lignes qui satisfont à WHERE clause de la table spécifiée. Si le clause est absente, toutes les lignes du tableau seront supprimées, laissant le tableau vide.

Astuce

Le TRUNCATE (ou dans le cas de SQL Server, l'instruction TRUNCATE TABLE ) est similaire à DELETE instruction sans WHERE clause; cependant, TRUNCATE est plus rapide et utilise moins de ressources système et de journaux de transactions.