SQLite - แบบสอบถามการอัปเดต

SQLite UPDATEแบบสอบถามใช้เพื่อแก้ไขระเบียนที่มีอยู่ในตาราง คุณสามารถใช้คำสั่ง WHERE กับแบบสอบถาม UPDATE เพื่ออัปเดตแถวที่เลือกมิฉะนั้นแถวทั้งหมดจะได้รับการอัปเดต

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์พื้นฐานของการสอบถาม UPDATE ที่มีส่วนคำสั่ง WHERE

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

ต่อไปนี้เป็นตัวอย่างซึ่งจะอัปเดต ADDRESS สำหรับลูกค้าที่มี ID 6

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

หากคุณต้องการแก้ไขค่าคอลัมน์ ADDRESS และ SALARY ทั้งหมดในตาราง COMPANY คุณไม่จำเป็นต้องใช้ WHERE clause และ UPDATE query จะเป็นดังนี้ -

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