Bazy danych II
description
Transcript of Bazy danych II
![Page 1: Bazy danych II](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814e90550346895dbc3708/html5/thumbnails/1.jpg)
25/08/2001 1
Bazy danych II
Piotr Górczyński
Instrukcja UPDATE
![Page 2: Bazy danych II](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814e90550346895dbc3708/html5/thumbnails/2.jpg)
25/08/2001 2
Spis treści
Składnia UPDATEZmiana wierszyZmiana wierszy na podstawie danych wybranych z
innych tabel
![Page 3: Bazy danych II](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814e90550346895dbc3708/html5/thumbnails/3.jpg)
25/08/2001 3
Składani UPDATE
Rozkaz UPDATE służy do zmiany wartości pól wierszy w tabeli
Składnia (skrócona):UPDATEnazwa_tabeliSET{kolumna={DEFAULT | NULL | wyrażenie} } [ ,...n] [ FROM{ nazwa_tabeli} [ ,...n ] ][ WHERE warunek_wyszukiwania ]
Elementy ujęte w nawiasy kwadratowe mogą zostać pominięte, ale element [ ,...n] oznacza, że element go poprzedzający może wystąpić n-razy
![Page 4: Bazy danych II](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814e90550346895dbc3708/html5/thumbnails/4.jpg)
25/08/2001 4
Zmiana wierszy
1. Zmiana pola IMIE na wartość ‘Piotr’ wiersza w tabeli Zawodnik, którego pole NrZaw jest równy 7 polem Nr:
UPDATE [Zawodnik]SET [Imie]=‘Piotr’ WHERE[NrZaw] =7
2. Zmiana pole Druz na wartość ‘Złote Kalesony’ w wierszach tabeli Zawodnik, których wartości pola NrZaw są równe 1,7 lub 13
UPDATE [Zawodnik]SET [Druz ]= ‘Złote Kalesony’ WHERE[NrZaw] in (1,7,13)
![Page 5: Bazy danych II](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814e90550346895dbc3708/html5/thumbnails/5.jpg)
25/08/2001 5
Zmiana wierszy na podstawie danych wybranych z innych tabel
Jeżeli relacja między tabelą zmienianą TABELA_A, a tabelą TABELA_B, z której wybieramy rekordy jest jeden do wielu (1:N), to aby można było zmienić wartości w TABELA_A należy zapewnić, że wybierze się co najwyżej jedną wartość z TABELA_B.Na przykładowym rysunku pokazano, że wybieramy tylko takie rekordy z TABELA_B, których wartość w POLE2 wynosi 1.
Rozwiązanie:UPDATE TABELA_A SETTABELA_A.POLE1=TABELA_B.POLE3 FROM TABELA_BWHERE TABELA_A.ID=TABELA_B.ID1 ANDTABELA_B.POLE2 = 1
![Page 6: Bazy danych II](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814e90550346895dbc3708/html5/thumbnails/6.jpg)
25/08/2001 6
Przykład – slajd 1 z 2
Zadanie: Chcemy do pola NRABUMU w tabeli UZYTKOWNIK przepisać wartość WYNIK z tabeli REALIZACJA tylko dla wierszy z tabeli REALIZACJA, w których pole FKIDTEST ma wartość 57
![Page 7: Bazy danych II](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814e90550346895dbc3708/html5/thumbnails/7.jpg)
25/08/2001 7
Przykład – slajd 2 z 2
UPDATE
UZYTKOWNIK
SET
UZYTKOWNIK.NRALBUMU=REALIZACJA.WYNIK
FROM
REALIZACJA
WHERE
UZYTKOWNIK.IDUZYTKOWNIK = REALIZACJA.FKIDUZYTKOWNIK
AND
REALIZACJA.FKIDTEST = 57
![Page 8: Bazy danych II](https://reader035.fdocuments.net/reader035/viewer/2022062423/56814e90550346895dbc3708/html5/thumbnails/8.jpg)
25/08/2001 8
Literatura
Microsoft SQL Server Books Online