SQL - Update
Szintaxis:
UPDATE tábla név
SET oszlop1=érték, oszlop2=érték2,... (új értékek)
WHERE some_oszlop=some_érték (feltétel)
Az UPDATE utasítás a következő részekből áll:
Tábla - Azon tábla neve, amelynek adatait módosítani szeretnénk.
új érték - Az a kifejezés, amely meghatározza, milyen érték kerül be a módosítandó rekordok egyes mezőibe.
Feltétel - Az a kifejezés, amely meghatározza, mely rekordok módosulnak. Csak a kifejezésnek eleget tevő rekordok változnak.
Megjegyzés:
Az UPDATE különösen akkor hasznos, amikor sok rekordot szeretnénk módosítani, vagy amikor a módosítandó rekordok több különböző táblában vannak.
Egyszerre több mezőt is módosíthatunk.
Az UPDATE nem hoz létre eredményhalmazt. Ha a rekordokat frissítő lekérdezéssel módosítjuk, a műveletet nem lehet visszavonni. Ha látni szeretnénk, mely rekordok módosulnának, először futtassunk le egy választó lekérdezést ugyanolyan feltétellel, s ennek eredményét vizsgáljuk meg. Csak ezután futtassuk le a módosító lekérdezést.
Az adatokról mindig legyen másolatunk. Ha rossz rekordokat módosítunk, a másolatból helyreállíthatjuk az eredeti adatokat.
'Személyek' tábla:
Most szeretnénk módosítani a 'Személyek' táblázatban néhány adatot.
|
Kód |
Vezetéknév |
Keresztnév |
Cím |
Város |
|
1 |
Szabó |
Péter |
Fő út 10. |
Budapest |
|
2 |
Kovács |
Áron |
Dózsa Gy. út 2. |
Debrecen |
|
3 |
Szalay |
Tünde |
Széchényi út 69. |
Budapest |
|
4 |
Orosz |
Gábor |
Virág út 38. |
Debrecen |
|
5 |
Zsólyomi |
László |
|
|
UPDATE Személyek
SET Cím='Nagykör út 44.', Város='Békéscsaba'
WHERE Vezetéknév='Zsólyomi' AND Keresztnév='László';
Az eredmény így néz ki:
|
Kód |
Vezetéknév |
Keresztnév |
Cím |
Város |
|
1 |
Szabó |
Péter |
Fő út 10. |
Budapest |
|
2 |
Kovács |
Áron |
Dózsa Gy. út 2. |
Debrecen |
|
3 |
Szalay |
Tünde |
Széchényi út 69. |
Budapest |
|
4 |
Orosz |
Gábor |
Virág út 38. |
Debrecen |
|
5 |
Zsólyomi |
László |
Nagykör út 44. |
Békéscsaba |
Legyünk óvatosak, ha nem használunk WHERE záradékot, mert akkor a táblázat azonos címekre és városokra változik meg.
UPDATE Személyek
SET Cím='Békéscsaba 44.', Város='Békéscsaba';
Az eredméyn így néz ki, ha nem használunk WHERE feltételt:
|
Kód |
Vezetéknév |
Keresztnév |
Cím |
Város |
|
1 |
Szabó |
Péter |
Nagykör út 44. |
Békéscsaba |
|
2 |
Kovács |
Áron |
Nagykör út 44. |
Békéscsaba |
|
3 |
Szalay |
Tünde |
Nagykör út 44. |
Békéscsaba |
|
4 |
Orosz |
Gábor |
Nagykör út 44. |
Békéscsaba |
|
5 |
Zsólyomi |
László |
Nagykör út 44. |
Békéscsaba |