Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL: UPDATE ข้อมูลพนักงานรวมถึงเงินเดือน (เพิ่มเงินเดือนทุกคน)


คำอธิบาย

ใช้คำสั่ง UPDATE ... SET เพื่อแก้ไขข้อมูลในตาราง ตัวอย่างเพิ่มเงินเดือนพนักงานทุกคนจำนวนคงที่

ขั้นตอนการสร้างตารางและข้อมูลตัวอย่าง

mysql> create table DemoTable ( 
    EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    EmployeeName varchar(50), 
    EmployeeSalary int ); 
Query OK, 0 rows affected (0.57 sec)

การเพิ่มข้อมูล

mysql> insert into DemoTable(EmployeeName, EmployeeSalary) values('Chris', 56780); 
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(EmployeeName, EmployeeSalary) values('Robert', 45670); 
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable(EmployeeName, EmployeeSalary) values('Mike', 87654); 
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(EmployeeName, EmployeeSalary) values('David', 34569); 
Query OK, 1 row affected (0.11 sec)

แสดงข้อมูลก่อนอัปเดต

mysql> select * from DemoTable;

ผลลัพธ์:

+------------+--------------+----------------+
| EmployeeId | EmployeeName | EmployeeSalary |
+------------+--------------+----------------+
| 1          | Chris        | 56780          |
| 2          | Robert       | 45670          |
| 3          | Mike         | 87654          |
| 4          | David        | 34569          |
+------------+--------------+----------------+
4 rows in set (0.00 sec)

คิวรี่เพิ่มเงินเดือนทุกคน 12,346 บาท

mysql> update DemoTable 
set EmployeeSalary = EmployeeSalary + 12346; 
Query OK, 4 rows affected (0.14 sec)
Rows matched: 4 Changed: 4 Warnings: 0

ตรวจสอบข้อมูลหลังอัปเดต

mysql> select * from DemoTable;

ผลลัพธ์:

+------------+--------------+----------------+
| EmployeeId | EmployeeName | EmployeeSalary |
+------------+--------------+----------------+
| 1          | Chris        | 69126          |
| 2          | Robert       | 58016          |
| 3          | Mike         | 100000         |
| 4          | David        | 46915          |
+------------+--------------+----------------+
4 rows in set (0.00 sec)

คำอธิบาย

  • SET EmployeeSalary = EmployeeSalary + 12346: ใช้ค่าเดิมของคอลัมน์บวกค่าใหม่
  • ไม่มี WHERE clause หมายถึงอัปเดต ทุกแถว
  • Rows matched: 4, Changed: 4 แสดงว่าทุกแถวถูกเปลี่ยนแปลง

รูปแบบ UPDATE อื่นๆ ที่น่าสนใจ

-- อัปเดตเฉพาะเงินเดือนต่ำกว่า 50000
UPDATE DemoTable SET EmployeeSalary = EmployeeSalary * 1.1 WHERE EmployeeSalary < 50000;

-- อัปเดตหลายคอลัมน์พร้อมกัน
UPDATE DemoTable SET EmployeeSalary = EmployeeSalary + 5000, EmployeeName = CONCAT('Mr. ', EmployeeName);