sql >> データベース >  >> RDS >> Mysql

SQL DELETE構文–DBMSによってリストされます

    この記事では、SQLのDELETEを一覧表示します さまざまなデータベース管理システム(DBMS)によって実装される構文。構文は、各ベンダーがWebサイトにリストしているとおりに正確にリストされています。特定のベンダーの構文の詳細を表示するには、該当するリンクをクリックしてください。

    対象となるDBMSは、MySQL、SQL Server、PostgreSQL、およびOracleデータベースです。

    MySQL

    MySQL5.7リファレンスマニュアルから。

    単一テーブル構文:

    DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
        [PARTITION (partition_name,...)]
        [WHERE where_condition]
        [ORDER BY ...]
        [LIMIT row_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 Server

    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 12 cから リリース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 ]

    table_collection_expression ::=

    TABLE (collection_expression) [ (+) ]

    where_clause ::=

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

    DELETEについて ステートメント

    DELETE ステートメントは、指定された行をテーブルから削除するデータ操作言語(DML)ステートメントです。

    削除 ステートメントは、 WHEREを満たす行を削除します 指定されたテーブルの句。 どこの場合 句がない場合、テーブル内のすべての行が削除され、テーブルは空のままになります。

    ヒント

    TRUNCATE ステートメント(またはSQL Serverの場合は、TRUNCATE TABLE ステートメント)は、DELETEに似ています WHEREのないステートメント 句;ただし、TRUNCATE より高速で、使用するシステムおよびトランザクションログリソースが少なくなります。


    1. SQL Serverデータベース変更リスナーC#

    2. MariaDBでのOCT()のしくみ

    3. SQL Server:テーブルの最大行数

    4. ハイブリッドOLTP/Analyticsデータベースワークロード:MySQLデータをClickHouseに複製する