Mysql
 sql >> база данни >  >> RDS >> Mysql

Синтаксис на SQL UPDATE – Изброен от СУБД

Тази статия изброява SQL UPDATE синтаксис, както се изпълнява от различни системи за управление на бази данни (СУБД). Синтаксисът е посочен точно както всеки доставчик го е посочил на своя уебсайт. Щракнете върху приложимата връзка, за да видите повече подробности за синтаксиса за конкретен доставчик.

Обхванатите СУБД са MySQL, SQL Server, PostgreSQL и Oracle Database.

MySQL

От Справочното ръководство за MySQL 5.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 сървър

От справочника за 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 12c Издание 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 (partition)
| PARTITION FOR (partition_key_value [, partition_key_value]...)
| SUBPARTITION (subpartition)
| SUBPARTITION FOR (subpartition_key_value [, subpartition_key_value]...)
}

clause_subquery_restriction_clause ::=

WITH { READ ONLY
     | CHECK OPTION 
     } [ CONSTRAINT constraint ]

израз за_колекция_таблица ::=

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 condition

клауза за връщане::=

{ 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Поправете „ГРЕШКА 3942 (HY000):Всеки ред от клауза VALUES трябва да има поне една колона“, когато използвате инструкцията VALUES в MySQL

  2. Попълване на JFreechart TimeSeriesCollection от Mysql DB?

  3. Изключване на единични кавички в PHP при вмъкване в MySQL

  4. Балансиране на натоварването на PostgreSQL и подобрения на ProxySQL - ClusterControl 1.5

  5. как да изчислим сходството между два низа в MYSQL