ฐานข้อมูล H2 - อัปเดต
แบบสอบถาม UPDATE ใช้เพื่ออัปเดตหรือแก้ไขระเบียนที่มีอยู่ในตาราง เราสามารถใช้ WHERE clause กับ UPDATE query เพื่ออัปเดตแถวที่เลือกมิฉะนั้นแถวทั้งหมดจะได้รับผลกระทบ
ไวยากรณ์
ต่อไปนี้เป็นไวยากรณ์พื้นฐานของแบบสอบถาม UPDATE
UPDATE tableName [ [ AS ] newTableAlias ] SET
{ { columnName = { DEFAULT | expression } } [,...] } |
{ ( columnName [,...] ) = ( select ) }
[ WHERE expression ] [ ORDER BY order [,...] ] [ LIMIT expression ]
ในไวยากรณ์ UPDATE นี้เราสามารถรวมเงื่อนไขได้มากกว่าหนึ่งเงื่อนไขโดยใช้ AND หรือ OR clauses
ตัวอย่าง
พิจารณาตารางลูกค้าที่มีบันทึกต่อไปนี้
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 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 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
หากคุณต้องการรับตารางลูกค้าพร้อมกับข้อมูลที่กำหนดให้ดำเนินการค้นหาต่อไปนี้
CREATE TABLE CUSTOMER (id number, name varchar(20), age number, address varchar(20),
salary number);
INSERT into CUSTOMER values (1, 'Ramesh', 32, 'Ahmedabad', 2000);
INSERT into CUSTOMER values (2, 'Khilan', 25, 'Delhi', 1500);
INSERT into CUSTOMER values (3, 'kaushik', 23, 'Kota', 2000);
INSERT into CUSTOMER values (4, 'Chaitali', 25, 'Mumbai', 6500);
INSERT into CUSTOMER values (5, 'Hardik', 27, 'Bhopal', 8500);
INSERT into CUSTOMER values (6, 'Komal', 22, 'MP', 4500);
INSERT into CUSTOMER values (7, 'Muffy', 24, 'Indore', 10000);
คำสั่งต่อไปนี้เป็นตัวอย่างซึ่งจะอัปเดต ADDRESS สำหรับลูกค้าที่มี ID คือ 6 -
UPDATE CUSTOMERS SET ADDRESS = 'Pune' WHERE ID = 6;
ตอนนี้ตาราง CUSTOMERS จะมีบันทึกต่อไปนี้ เราสามารถตรวจสอบบันทึกตารางของลูกค้าได้โดยดำเนินการสอบถามต่อไปนี้
SELECT * FROM CUSTOMERS;
แบบสอบถามด้านบนให้ผลลัพธ์ดังต่อไปนี้
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 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 | Pune | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
ในการแก้ไขค่าคอลัมน์ ADDRESS และ SALARY ทั้งหมดในตาราง CUSTOMERS เราไม่จำเป็นต้องใช้คำสั่ง WHERE แบบสอบถาม UPDATE จะเป็นดังนี้ -
UPDATE CUSTOMERS SET ADDRESS = 'Pune', SALARY = 1000.00;
ตอนนี้ตาราง CUSTOMERS จะมีบันทึกต่อไปนี้ เราสามารถตรวจสอบบันทึกตารางของลูกค้าได้โดยดำเนินการสอบถามต่อไปนี้
SELECT * FROM CUSTOMERS;
แบบสอบถามข้างต้นให้ผลลัพธ์ดังต่อไปนี้ -
+----+----------+-----+---------+---------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+---------+---------+
| 1 | Ramesh | 32 | Pune | 1000.00 |
| 2 | Khilan | 25 | Pune | 1000.00 |
| 3 | kaushik | 23 | Pune | 1000.00 |
| 4 | Chaitali | 25 | Pune | 1000.00 |
| 5 | Hardik | 27 | Pune | 1000.00 |
| 6 | Komal | 22 | Pune | 1000.00 |
| 7 | Muffy | 24 | Pune | 1000.00 |
+----+----------+-----+---------+---------+