
- SQL 教程
- SQL - 首頁
- SQL - 概述
- SQL - RDBMS 概念
- SQL - 資料庫
- SQL - 語法
- SQL - 資料型別
- SQL - 運算子
- SQL - 表示式
- SQL 資料庫
- SQL - 建立資料庫
- SQL - 刪除資料庫
- SQL - 選擇資料庫
- SQL - 重新命名資料庫
- SQL - 顯示資料庫
- SQL - 備份資料庫
- SQL 表
- SQL - 建立表
- SQL - 顯示錶
- SQL - 重命名錶
- SQL - 截斷表
- SQL - 克隆表
- SQL - 臨時表
- SQL - 修改表
- SQL - 刪除表
- SQL - 刪除表
- SQL - 約束
- SQL 查詢
- SQL - INSERT 查詢
- SQL - SELECT 查詢
- SQL - SELECT INTO
- SQL - INSERT INTO SELECT
- SQL - UPDATE 查詢
- SQL - DELETE 查詢
- SQL - 排序結果
- SQL 檢視
- SQL - 建立檢視
- SQL - 更新檢視
- SQL - 刪除檢視
- SQL - 重新命名檢視
- SQL 運算子和子句
- SQL - WHERE 子句
- SQL - TOP 子句
- SQL - DISTINCT 子句
- SQL - ORDER BY 子句
- SQL - GROUP BY 子句
- SQL - HAVING 子句
- SQL - AND & OR
- SQL - BOOLEAN (BIT) 運算子
- SQL - LIKE 運算子
- SQL - IN 運算子
- SQL - ANY, ALL 運算子
- SQL - EXISTS 運算子
- SQL - CASE
- SQL - NOT 運算子
- SQL - 不等於
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN 運算子
- SQL - UNION 運算子
- SQL - UNION vs UNION ALL
- SQL - INTERSECT 運算子
- SQL - EXCEPT 運算子
- SQL - 別名
- SQL 連線
- SQL - 使用連線
- SQL - 內連線
- SQL - 左連線
- SQL - 右連線
- SQL - 交叉連線
- SQL - 全連線
- SQL - 自連線
- SQL - DELETE 連線
- SQL - UPDATE 連線
- SQL - 左連線 vs 右連線
- SQL - UNION vs JOIN
- SQL 金鑰
- SQL - 唯一鍵
- SQL - 主鍵
- SQL - 外部索引鍵
- SQL - 組合鍵
- SQL - 備選鍵
- SQL 索引
- SQL - 索引
- SQL - 建立索引
- SQL - 刪除索引
- SQL - 顯示索引
- SQL - 唯一索引
- SQL - 聚簇索引
- SQL - 非聚簇索引
- 高階 SQL
- SQL - 萬用字元
- SQL - 註釋
- SQL - 注入
- SQL - 託管
- SQL - MIN & MAX
- SQL - NULL 函式
- SQL - CHECK 約束
- SQL - DEFAULT 約束
- SQL - 儲存過程
- SQL - NULL 值
- SQL - 事務
- SQL - 子查詢
- SQL - 處理重複項
- SQL - 使用序列
- SQL - 自動遞增
- SQL - 日期和時間
- SQL - 遊標
- SQL - 公共表表達式
- SQL - GROUP BY vs ORDER BY
- SQL - IN vs EXISTS
- SQL - 資料庫調優
- SQL 函式參考
- SQL - 日期函式
- SQL - 字串函式
- SQL - 聚合函式
- SQL - 數值函式
- SQL - 文字和影像函式
- SQL - 統計函式
- SQL - 邏輯函式
- SQL - 遊標函式
- SQL - JSON 函式
- SQL - 轉換函式
- SQL - 資料型別函式
- SQL 有用資源
- SQL - 問答
- SQL - 快速指南
- SQL - 有用函式
- SQL - 有用資源
- SQL - 討論
SQL - UPDATE 查詢
SQL UPDATE 語句
SQL 的UPDATE語句用於修改表中現有的記錄。此語句是資料操作語言 (DML) 的一部分,因為它只修改表中存在的資料,而不會影響表的結構。
要過濾需要修改的記錄,可以使用 UPDATE 語句的 WHERE 子句。使用 WHERE 子句,您可以更新單行或多行。
由於它只與表的資料互動,因此需要謹慎使用 SQL UPDATE 語句。如果未正確選擇要修改的行,則表中的所有行都將受到影響,並且正確的表資料將丟失或需要重新插入。
SQL UPDATE 語句在修改表中的每一行時都會使用鎖,並且一旦修改了該行,就會釋放鎖。因此,它可以使用單個查詢更改單行或多行。
語法
帶有 WHERE 子句的 SQL UPDATE 語句的基本語法如下:
UPDATE table_name SET column1 = value1, column2 = value2,..., columnN = valueN WHERE [condition];
您可以使用 AND 或 OR 運算子組合 N 個條件。
示例
假設我們使用 CREATE TABLE 語句建立了一個名為CUSTOMERS的表,如下所示:
CREATE TABLE CUSTOMERS ( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25), SALARY DECIMAL (18, 2), PRIMARY KEY (ID) );
現在,使用 INSERT 語句將值插入此表,如下所示:
INSERT INTO CUSTOMERS VALUES (1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ), (2, 'Khilan', 25, 'Delhi', 1500.00 ), (3, 'Kaushik', 23, 'Kota', 2000.00 ), (4, 'Chaitali', 25, 'Mumbai', 6500.00 ), (5, 'Hardik', 27, 'Bhopal', 8500.00 ), (6, 'Komal', 22, 'Hyderabad', 4500.00 ), (7, 'Muffy', 24, 'Indore', 10000.00 );
該表將建立為:
ID | 姓名 | 年齡 | 地址 | 薪水 |
---|---|---|---|---|
1 | Ramesh | 32 | Ahmedabad | 2000.00 |
2 | Khilan | 25 | Delhi | 1500.00 |
3 | Kaushik | 23 | Kota | 2000.00 |
4 | Chaitali | 25 | Mumbai | 6500.00 |
5 | Hardik | 27 | Bhopal | 8500.00 |
6 | Komal | 22 | Hyderabad | 4500.00 |
7 | Muffy | 24 | Indore | 10000.00 |
以下查詢將更新 ID 號為 6 的客戶的地址。
UPDATE CUSTOMERS SET ADDRESS = 'Pune' WHERE ID = 6;
輸出
該查詢產生以下輸出:
Query OK, 1 row affected (0.13 sec) Rows matched: 1 Changed: 1 Warnings: 0
驗證
要驗證表中的記錄是否已修改,請使用以下 SELECT 查詢:
SELECT * FROM CUSTOMERS WHERE ID=6;
現在,CUSTOMERS 表將具有以下記錄:
ID | 姓名 | 年齡 | 地址 | 薪水 |
---|---|---|---|---|
6 | Komal | 22 | Pune | 4500.00 |
更新多行和多列
使用 SQL UPDATE 語句,還可以更新表中的多行和多列。要更新多行,請在 WHERE 子句中指定條件,以便只有所需的記錄才能滿足該條件。
但是,要更新多列,請將新值設定為需要更新的所有列。在這種情況下,使用 WHERE 子句將縮小表的記錄範圍,而不使用該子句將更改這些列中的所有值。
語法
以下是更新多行和多列的語法:
UPDATE table_name SET column_name1 = new_value, column_name2 = new_value... WHERE condition(s)
示例
如果要修改 CUSTOMERS 表中的所有 AGE 和 SALARY 列值,則不需要使用 WHERE 子句,因為 UPDATE 查詢就足夠了。以下查詢將所有客戶的年齡增加 5 年,並將所有薪水值增加 3000:
UPDATE CUSTOMERS SET AGE = AGE+5, SALARY = SALARY+3000;
輸出
該查詢產生以下輸出:
Query OK, 7 rows affected (0.12 sec) Rows matched: 7 Changed: 7 Warnings: 0
驗證
要驗證表中的記錄是否已修改,請使用以下 SELECT 查詢:
SELECT * FROM CUSTOMERS;
現在,CUSTOMERS 表將具有以下記錄:
ID | 姓名 | 年齡 | 地址 | 薪水 |
---|---|---|---|---|
1 | Ramesh | 37 | Ahmedabad | 5000.00 |
2 | Khilan | 30 | Delhi | 4500.00 |
3 | Kaushik | 28 | Kota | 5000.00 |
4 | Chaitali | 30 | Mumbai | 9500.00 |
5 | Hardik | 32 | Bhopal | 11500.00 |
6 | Komal | 27 | Pune | 7500.00 |
7 | Muffy | 29 | Indore | 13000.00 |
示例
但是,如果要修改 CUSTOMERS 表中所選記錄的 ADDRESS 和 SALARY 列,則需要使用 WHERE 子句指定條件來過濾要修改的記錄,如下面的查詢所示:
UPDATE CUSTOMERS SET ADDRESS = 'Pune', SALARY = 1000.00 WHERE NAME = 'Ramesh';
輸出
此查詢產生以下輸出:
Query OK, 1 row affected (0.04 sec) Rows matched: 1 Changed: 1 Warnings: 0
驗證
要驗證表中的記錄是否已修改,請使用以下 SELECT 查詢:
SELECT * FROM CUSTOMERS WHERE NAME = 'Ramesh';
現在,CUSTOMERS 表將具有以下記錄:
ID | 姓名 | 年齡 | 地址 | 薪水 |
---|---|---|---|---|
1 | Ramesh | 37 | Pune | 1000.00 |