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

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

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

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

    MySQL

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

    単一テーブル構文:

    UPDATE [LOW_PRIORITY] [IGNORE] table_reference
        SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
        [WHERE where_condition]
        [ORDER BY ...]
        [LIMIT row_count]

    複数テーブルの構文:

    UPDATE [LOW_PRIORITY] [IGNORE] table_references
        SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
        [WHERE where_condition]

    SQL Server

    Transact-SQLリファレンスから:

    [ WITH <common_table_expression> [...n] ]
    UPDATE 
        [ TOP ( expression ) [ PERCENT ] ] 
        { { table_alias | <object> | rowset_function_limited 
             [ WITH ( <Table_Hint_Limited> [ ...n ] ) ]
          }
          | @table_variable    
        }
        SET
            { column_name = { expression | DEFAULT | NULL }
              | { udt_column_name.{ { property_name = expression
                                    | field_name = expression }
                                    | method_name ( argument [ ,...n ] )
                                  }
              }
              | column_name { .WRITE ( expression , @Offset , @Length ) }
              | @variable = expression
              | @variable = column = expression
              | column_name { += | -= | *= | /= | %= | &= | ^= | |= } expression
              | @variable { += | -= | *= | /= | %= | &= | ^= | |= } expression
              | @variable = column { += | -= | *= | /= | %= | &= | ^= | |= } expression
            } [ ,...n ] 
    
        [ <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 [, ...] ]
    UPDATE [ ONLY ] table_name [ * ] [ [ AS ] alias ]
        SET { column_name = { expression | DEFAULT } |
              ( column_name [, ...] ) = ( { expression | DEFAULT } [, ...] ) |
              ( column_name [, ...] ) = ( sub-SELECT )
            } [, ...]
        [ FROM from_list ]
        [ WHERE condition | WHERE CURRENT OF cursor_name ]
        [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]

    Oracleデータベース

    Oracle Database Online Documentation 12 cから リリース1(12.1):

    UPDATE [ hint ]
       { dml_table_expression_clause
       | ONLY (dml_table_expression_clause)
       } [ t_alias ]
       update_set_clause
       [ 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) [ (+) ]

    update_set_clause ::=

    SET
    { { (column [, column ]...) = (subquery)
      | column = { expr | (subquery) | DEFAULT }
      }
         [, { (column [, column]...) = (subquery)
            | column = { expr | (subquery) | DEFAULT }
            }
         ]...
    | VALUE (t_alias) = { expr | (subquery) }
    }

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

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

    更新 ステートメントは、条件を満たすすべての行の指定された列の値を変更します。 SET に含める必要があるのは、変更する列のみです。 句;明示的に変更されていない列は、以前の値を保持します。


    1. 時間範囲内で5分の間隔にグループ化

    2. AccessとExcelを一緒に使用するトップ10の理由

    3. SQL Serverの置き換え、特定の文字の後のすべてを削除

    4. MySQLで値に少なくとも1桁の数字が含まれているかどうかを検出する方法