Concept Flow - UPDATE with WHERE clause
Start UPDATE statement
Check WHERE condition for each row
Update row
End UPDATE
The UPDATE command checks each row against the WHERE condition. If true, it updates that row; if false, it leaves it unchanged.
UPDATE employees SET salary = salary + 500 WHERE department = 'Sales';
| Step | Row ID | Current salary | Department | WHERE condition (department='Sales') | Action | New salary |
|---|---|---|---|---|---|---|
| 1 | 1 | 3000 | Sales | True | Update salary | 3500 |
| 2 | 2 | 3200 | HR | False | Skip row | 3200 |
| 3 | 3 | 2800 | Sales | True | Update salary | 3300 |
| 4 | 4 | 4000 | IT | False | Skip row | 4000 |
| 5 | 5 | 3100 | Sales | True | Update salary | 3600 |
| 6 | - | - | - | - | End of table | - |
| Variable | Start | After Row 1 | After Row 2 | After Row 3 | After Row 4 | After Row 5 | Final |
|---|---|---|---|---|---|---|---|
| salary_row_1 | 3000 | 3500 | 3500 | 3500 | 3500 | 3500 | 3500 |
| salary_row_2 | 3200 | 3200 | 3200 | 3200 | 3200 | 3200 | 3200 |
| salary_row_3 | 2800 | 2800 | 2800 | 3300 | 3300 | 3300 | 3300 |
| salary_row_4 | 4000 | 4000 | 4000 | 4000 | 4000 | 4000 | 4000 |
| salary_row_5 | 3100 | 3100 | 3100 | 3100 | 3100 | 3600 | 3600 |
UPDATE table_name SET column = value WHERE condition; - Only rows matching WHERE condition are updated. - Rows not matching remain unchanged. - Omitting WHERE updates all rows.