Suport de curs<<descarca>>
MODIFICAREA INREGISTRARILOR
comanda UPDATE
comanda UPDATE
Pentru modificarea continutului
uneia sau a mai multor coloane dintr-o inregistrare existenta este folosita instructiunea UPDATE, cu urmatoarea
sintaxa:
UPDATE [LOW_PRIORITY]
nume_tabel
SET actualizare
[WHERE conditie] [LIMIT randuri]
unde:
- nume_tabel: numele tabelului ale carui inregistrari urmeaza a fi actualizate;
- actualizare: indica modificarile ce trebuie operate, prezentandu-se sub forma de perechi coloana – valoare (col1 = ’val_noua_1’, col2 = ’val_noua_2’);
- conditie: indica conditia ce trebuie indeplinita pentru ca modificarile sa se rasfranga asupra anumitor inregistrari; in cazul in care lipseste, modificarile vor afecta intregul tabel.
Clauza LIMIT specifica numarul maxim
de inregistrari care vor fi actualizate.
Clauza LOW_PRIORITY amana executia
instructiunii UPDATE pana cand nici un utilizator nu mai citeste din tabelul
care trebuie actualizat.
Clauza WHERE este optionala, fiind folosita
pentru a crea instructiuni UPDATE conditionale. Este similara cu folosirea clauzei
WHERE in cadrul instructiunilor SELECT, putandu-se folosi toti operatorii de
comparatie si cei logici, cum ar fi: =, >, <, OR si AND
!!! Omiterea clauzei WHERE duce la actualizarea
tuturor înregistrărilor din tabelă
Exemple:
UPDATE
suppliers SET zip = ‘99999’ WHERE zip = ‘95460’
UPDATE
coffees SET price = 9.99 WHERE price<=5.0
Exemple:
1) Să se modifice câmpul NRSAL din
tabela SALARIAŢI, pentru depozitul cu codul 130000, atribuindu-i valoarea 11.
SQL>
UPDATE SALARIAŢI SET NRSAL=11 WHERE CODD= 130000;
1 record
updated.
2) Să se modifice data de livrare,
cantitatea solicitată şi preţul de livrare pentru produsul cu codul 13333 din
comanda cu numărul 211111.
SQL>
UPDATE COMENZI SET DATAL=SYSDATE,CANT=50, PRET=42000 WHERE CODP=13333 AND NRCOM=211111;
1 record
updated.
3) Să se modifice data de livrare
cu data actuală pentru toate produsele cu codul egal cu 13333, din toate
comenzile.
SQL>
UPDATE COMENZI SET DATAL=SYSDATE WHERE CODP=13333;
1 record
updated.
4) Să se mărească salariul cu 15%
pentru salariaţii care au o funcţie identică cu CARMEN ANA.
SQL>
UPDATE SALARIAŢI SET SALA=SALA*1.15 WHERE FUNCT IN (SELECT FUNCT FROM SALARIAŢI
WHERE NUME='CARMEN ANA');
11 records updated.