Această comandă permite modificarea valorilor din înregistrările unui tabel. Sintaxa este următoarea:
UPDATE nume_tabel SET coloana1=expresie1[, coloana2=expresie2, ...] [WHERE conditie] [LIMIT n]
Clauza WHERE
precizează condițiile îndeplinite de înregistrările care vor fi actualizate. Această clauză este opțională, dar în lipsa ei se vor modifica toate înregistrările.
Clauza LIMIT
precizează numărul maxim de înregistrări (n
) care vor fi actualizate.
Exemplu
Plecând de la tabelul elevi
, utilizat anterior, afișăm înregistrările sale:
mysql> select * from elevi; +----+-------------+-------+-------+-------+-------+ | id | nume | clasa | nota1 | nota2 | media | +----+-------------+-------+-------+-------+-------+ | 1 | Popescu Ion | 12 | 7 | 8 | 0.00 | | 2 | Ionescu Ana | 11 | 7 | 9 | 0.00 | | 3 | Pop Vasile | 12 | 10 | 9 | 0.00 | | 4 | Ion Ion | 12 | 3 | 4 | 0.00 | +----+-------------+-------+-------+-------+-------+ 4 rows in set (0.00 sec)
Convertim numele tuturor elevilor la majuscule, și reafișăm tabelul:
mysql> update elevi set nume=upper(nume); Query OK, 4 rows affected (0.05 sec) Rows matched: 4 Changed: 4 Warnings: 0 mysql> select * from elevi; +----+-------------+-------+-------+-------+-------+ | id | nume | clasa | nota1 | nota2 | media | +----+-------------+-------+-------+-------+-------+ | 1 | POPESCU ION | 12 | 7 | 8 | 0.00 | | 2 | IONESCU ANA | 11 | 7 | 9 | 0.00 | | 3 | POP VASILE | 12 | 10 | 9 | 0.00 | | 4 | ION ION | 12 | 3 | 4 | 0.00 | +----+-------------+-------+-------+-------+-------+ 4 rows in set (0.00 sec)
Calculăm media pentru elevi promovați:
mysql> update elevi set media=(nota1+nota2)/2 where nota1+nota2>9; Query OK, 3 rows affected (0.09 sec) Rows matched: 3 Changed: 3 Warnings: 0 mysql> select * from elevi; +----+-------------+-------+-------+-------+-------+ | id | nume | clasa | nota1 | nota2 | media | +----+-------------+-------+-------+-------+-------+ | 1 | POPESCU ION | 12 | 7 | 8 | 7.50 | | 2 | IONESCU ANA | 11 | 7 | 9 | 8.00 | | 3 | POP VASILE | 12 | 10 | 9 | 9.50 | | 4 | ION ION | 12 | 3 | 4 | 0.00 | +----+-------------+-------+-------+-------+-------+ 4 rows in set (0.00 sec)