POWRÓT NA STRONĘ SZKOŁY

Zmiana rekordów

Do zmiany danych zapisanych w bazie danych służy polecenie UPDATE o następujacej składni:
UPDATE [LOW_PRIORITY][IGNORE] nazwa_tabeli
SET kolumna1=wyrazenie1, kolumna2=wyrazenie2,...
[WHERE warunek]
[ORDER BY kryteria_porzadkowania]
[LIMIT ilosc];
Klauzula WHERE ogranicza zakres modyfikacji do wskazanego zbioru wierszy, natomiast liczbę wierszy można limitować za pomocą LIMIT. Klauzula ORDER BY jest zazwyczaj stosowana w połączeniu z klauzulą LIMIT - jeżeli chcemy przykładowo zmienić tylko pięć pierwszych wierszy, to najpierw musimy je odpowiednio uporządkować. LOW_PRIORITY powoduje, że wykonanie instrukcji zostanie odłożone do momentu, gdy żaden inny klient nie będzie czytał danych z tabeli. IGNORE powoduje ignorowanie błędów, które mogą pojawić się podczas wykonywania operacji.

Ćwiczenie 4_3_1_1. W bazie danych ksiegarnia_internetowa podnieść ceny wszystkich książek o 5%

Napierw zajrzyj do tabel bazy. W celu wykonania zadania, należy zastosować polecenie UPDATE, bez klauzuli WHERE:

UPDATE ksiazki
SET cena=cena*1.05;
Zmiana cen wszystkich ksiażek Rezultat zmiany cen wszystkich ksiażek
Rysunek 4_3_1_1. Podniesienie cen wszystkich książek o 5%.

Porównaj ceny książek. Czy wszystkie wzrosły? Nie wzystkie, ponieważ w drugim wierszu Delphi 4 dla każdego miało i ma nadal cenę 99.99. Gdzie więc jest błąd? Zajrzyj najpierw do ćwiczenia w którym tworzyliśmy tabele. Tworząc tabelę ksiazki zastosowaliśmy warunek cena FLOAT(4,2), który uniemożliwia nam wpisanie liczby składającej się z więcej jak czterech cyfr. Największą taką liczbą pisaną z dokładnością 2 cyfr po przecinku jest 99.99. Tak więc tej granicy nie możemy teraz przekroczyć. Tego błędu nie zauważyliśmy wcześniej wypełniając tabele danymi, cenę wspomnianej książki określiliśmy tam na 120.34. Czy możemy naprawić ten błąd? Tak, zrobimy to podczas następnych zajęć.

Ćwiczenie 4_3_1_2. W bazie danych ksiegarnia_internetowa uaktualnić adres jednego klienta

Należy zastosować następujące polecenie SQL:

UPDATE klienci
SET adres='Zmieniona 12'
WHERE klient_id=5;
Zmiana cen wszystkich ksiażek Rezultat zmiany cen wszystkich ksiażek
Rysunek 4_3_1_2. Zmiana adresu klienta.

Czy adres został zmieniony? Tak - pan Józef Koń mieszka teraz przy ulicy Zmieniona 12.