skanuj0291 (3)

skanuj0291 (3)



Rozdział 10. ♦ Podstawy SQL 305

Zapytania modyfikujące dane

Dane zapisane w tabelach mogą być zmieniane i modyfikowane. Służy do tego celu instrukcja UPDATE, która ma ogólną postać:

UPDATE tabela

SET kolumnal-wartośćl. kolumna2=wartość2.....kolumnaN=wartośćN

[WHERE warunek]

Oznacza ona: zmień w tabeli tabela, w wierszach spełniających warunek, pole kolumnal na wartości, pole kolumna2 na wartość2 itd. Klauzula WHERE jest opcjonalna i może zostać pominięta; w takiej sytuacji zmianie ulegną wszystkie wskazane wiersze w tabeli. Zastosowanie przykładowej instrukcji: update osoba set 1mie='Jan':

spowoduje zamianę imion wszystkich osób, których dane zapisane są w tabeli na ciąg Jan (rysunek 10.17). Zawsze należy więc pamiętać o zastosowaniu odpowiedniego warunku, inaczej możemy osiągnąć efekty niezgodne z założeniami. Oczywiście może się też zdarzyć, że chcemy zmienić wszystkie wartości w danej kolumnie, wtedy taka instrukcja będzie jak najbardziej poprawna.

Rysunek 10.17.    select * from osoba;

Id

Imię

Nazwisko

RokJJrodzenia 1 Mie jsce_Urodzenia

3

4

5

6 7

9

10

Jan

Jan

Jan

Jan

Jan

Jan

Jan

Jan

Jan

Kowalski

Nowak

Kowalski

Malinowski

Malinowski

Nowicki

Adamczyk

Andrzejczak

Arkuszewski

Borowski

1964 1 Bydgoszcz 1972 ! Szczecin 1986 ! Nidzica 1986 1 Kielce 1989 1 Kielce 1986 1 Bydgoszcz 1971 1 Kielce 1971 ! Radom 1989 ! Szczecin 1976 1 Skierniewice

10 rows in set <0.00 sec>


Zastosowanie skróconej wersji instrukcji UPDATE spowodowało zamianę wszystkich wartości w kolumnie Imię

Najczęściej jednak aktualizuje się jeden lub kilka wierszy, stosowanie klauzuli WHERE jest więc konieczne. Przykładowo, jeśli okaże się, że w tablicy zapisaliśmy błędny rok urodzenia Andrzeja Malinowskiego, któremu w tabeli został przypisany identyfikator 5 i trzeba zamienić wartość 1989 na 1988, należałoby zastosować instrukcję:

UPDATE Osoba SET Rok_Urodzenia=1988 WHERE id=5:

Warunek id=5 został zastosowany, pole id jest bowiem kluczem podstawowym jednoznacznie identyfikującym każdy rekord. Po wykonaniu tego zapytania otrzymamy informację, czy zakończyło się ono sukcesem, ile rekordów spełniało warunek (Rows matched) i ile rekordów zostało zmodyfikowanych (Changed), tak jak jest to widoczne na rysunku 10.18.

Rysunek 10.18.

Efekt wykonania

zapytania

aktualizującego


niisql> update osoba set Rok_U»“odzenia=1988 where id =5; Query OK, 1 row affected <0.06 sec>

Rows matched: 1 Changed: 1 Warnings: 0


Wyszukiwarka

Podobne podstrony:
skanuj0279 (3) Rozdział 10. ♦ Podstawy SQL 293Zapytania wprowadzające dane Tabele utworzone w sposób
skanuj0269 (3) Rozdział 10. ♦ Podstawy SQL 283 Tabela 10.1. Typy całkowitoliczbowe Typ Zakres
skanuj0271 (3) Rozdział 10. ♦ Podstawy SQL 285 W przypadku typu DECIMAL i jego synonimów możliwe jes
skanuj0281 (3) Rozdział 10. ♦ Podstawy SQL 295Druga postać instrukcji INSERT Druga wersja instrukcji
skanuj0283 (3) Rozdział 10. ♦ Podstawy SQL 297 Listing 10.1. Instrukcja SOL wstawiające przykładowe

więcej podobnych podstron