Rekord módosítása, frissítése SQL adatbázis táblájában: UPDATE utasítás példákkal
Ebben a leckében az SQL UPDATE utasítása kerül bemutatásra, amellyel adatbázistáblák rekordjait tudjuk módosítani, frissíteni. Ez a módosítás egy feltételhez kötött, azaz minden olyan rekord frissülni, módosulni fog, amelyre teljesül az általunk meghatározott feltétel.
Az UPDATE utasítás
Az UPDATE utasítással az adatbázisok tábláinak már létező rekordjait tudjuk módosítani. Az UPDATE utasítás azokat a rekordokat módosítja, amelyekre teljesülnek a WHERE kulcsszó után megadott kondíciók. Ebből kifolyólag nagyon óvatosan kell bánni ezzel az utasítással, mert ha nem határozzuk meg tűpontosan a WHERE feltételt, akkor könnyen módosíthatunk olyan rekordokat is, amelyeket alapvetően nem is akartunk. Ilyenkor nem csak a helyes adatok visszaállítása a nehézkes, hanem már a hibás rekordok felfedezése is. Ez hatványozottan igaz egy nagyméretű adatbázisra, ezért ilyen esetekben még nagyobb figyelemmel kell eljárnunk a feltételek meghatározása során.
SQL UPDATE szintaxis
Az UPDATE kulcsszó után annak a táblának a nevét kell megadni, amelyiken szeretnénk frissítéseket elvégezni, ezt követi a SET kulcsszó, amely után meg kell határoznunk, hogy mely oszlopokat milyen értékekkel szeretnénk felülírni. Legvégül pedig következik a WHERE, ahol meg kell fogalmaznunk egy feltételt. Az összes rekord, amelyre teljesül a megfogalmazott feltétel, frissül a SET után megszabott értékekkel.
UPDATE tábla
SET oszlop1= érték1, oszlop2 = érték2 ...
WHERE feltétel;
Code language: SQL (Structured Query Language) (sql)
Illetve van egy másik szintaxis is, amelyet azokban a helyzetekben használunk, ha a tábla összes rekordját módosítani szeretnénk. Ilyenkor a tábla összes rekordja az általunk meghatározott értékeket veszi fel.
UPDATE tábla
SET oszlop1 = érték1, oszlop2 = érték2 ...;
Code language: SQL (Structured Query Language) (sql)
SQL UPDATE példák
Az elkövetkezendő példákat a lent látható „vasarlok” táblán fogjuk bemutatni.
vasarlok tábla
vezeteknev | keresztnev | lakhely | szuletesi_ev |
---|---|---|---|
Horváth | Tamás | Budapest | 1989 |
Lakatos | Dezső | Debrecen | 1961 |
Losonczi | Léna | Nyíregyháza | 2005 |
Balogh | Beatrix | Miskolc | 1985 |
Kovács | István | Budapest | 1957 |
Lakatos | Boldizsár | Debrecen | 2009 |
Példa #1
Feladat: Írjunk olyan lekérdezést, amely módosítja Horváth Tamás, 1989-ben született budapesti lakos lakhelyét Szegedre.
SQL lekérdezés
UPDATE vasarlok
SET lakhely="Szeged"
WHERE vezeteknev="Horváth" AND keresztnev="Tamás" AND lakhely="Budapest" AND szuletesi_ev=1989;
Code language: SQL (Structured Query Language) (sql)
Eredmény
vasarlok tábla
vezeteknev | keresztnev | lakhely | szuletesi_ev |
---|---|---|---|
Horváth | Tamás | Szeged | 1989 |
Lakatos | Dezső | Debrecen | 1961 |
Losonczi | Léna | Nyíregyháza | 2005 |
Balogh | Beatrix | Miskolc | 1985 |
Kovács | István | Budapest | 1957 |
Lakatos | Boldizsár | Debrecen | 2009 |
Példa #2
Feladat: Minden lakhelyet cseréljünk le Magyarországra.
SQL lekérdezés
UPDATE vasarlok
SET lakhely="Magyarország";
Code language: SQL (Structured Query Language) (sql)
Eredmény
vasarlok tábla
vezeteknev | keresztnev | lakhely | szuletesi_ev |
---|---|---|---|
Horváth | Tamás | Magyarország | 1989 |
Lakatos | Dezső | Magyarország | 1961 |
Losonczi | Léna | Magyarország | 2005 |
Balogh | Beatrix | Magyarország | 1985 |
Kovács | István | Magyarország | 1957 |
Lakatos | Boldizsár | Magyarország | 2009 |
Magyarázat: Ha nem adunk meg WHERE feltételt, akkor a tábla összes rekordjára érvényes lesz a módosítás.