SQLite - 更新

  • 简述

    SQLite UPDATE查询用于修改表中的现有记录。您可以将 WHERE 子句与 UPDATE 查询一起使用来更新选定的行,否则将更新所有行。
  • 句法

    以下是带有 WHERE 子句的 UPDATE 查询的基本语法。
    
    UPDATE table_name
    SET column1 = value1, column2 = value2...., columnN = valueN
    WHERE [condition];
    
    你可以结合 N 使用 AND 或 OR 运算符的条件数。
  • 例子

    考虑具有以下记录的 COMPANY 表 -
    
    ID          NAME        AGE         ADDRESS     SALARY
    ----------  ----------  ----------  ----------  ----------
    1           Paul        32          California  20000.0
    2           Allen       25          Texas       15000.0
    3           Teddy       23          Norway      20000.0
    4           Mark        25          Rich-Mond   65000.0
    5           David       27          Texas       85000.0
    6           Kim         22          South-Hall  45000.0
    7           James       24          Houston     10000.0
    
    以下是一个示例,它将为 ID 为 6 的客户更新 ADDRESS。
    
    sqlite> UPDATE COMPANY SET ADDRESS = 'Texas' WHERE ID = 6;
    
    现在,COMPANY 表将具有以下记录。
    
    ID          NAME        AGE         ADDRESS     SALARY
    ----------  ----------  ----------  ----------  ----------
    1           Paul        32          California  20000.0
    2           Allen       25          Texas       15000.0
    3           Teddy       23          Norway      20000.0
    4           Mark        25          Rich-Mond   65000.0
    5           David       27          Texas       85000.0
    6           Kim         22          Texas       45000.0
    7           James       24          Houston     10000.0
    
    如果要修改 COMPANY 表中的所有 ADDRESS 和 SALARY 列值,则不需要使用 WHERE 子句,UPDATE 查询如下:
    
    sqlite> UPDATE COMPANY SET ADDRESS = 'Texas', SALARY = 20000.00;
    
    现在,COMPANY 表将包含以下记录 -
    
    ID          NAME        AGE         ADDRESS     SALARY
    ----------  ----------  ----------  ----------  ----------
    1           Paul        32          Texas       20000.0
    2           Allen       25          Texas       20000.0
    3           Teddy       23          Texas       20000.0
    4           Mark        25          Texas       20000.0
    5           David       27          Texas       20000.0
    6           Kim         22          Texas       20000.0
    7           James       24          Texas       20000.0