80 likes | 248 Views
Bazy danych II. Piotr Górczyński. Instrukcja UPDATE. Spis treści. Składnia UPDATE Zmiana wierszy Zmiana wierszy na podstawie danych wybranych z innych tabel. Składani UPDATE. Rozkaz UPDATE służy do zmiany wartości pól wierszy w tabeli
E N D
Bazy danych II Piotr Górczyński Instrukcja UPDATE
Spis treści • Składnia UPDATE • Zmiana wierszy • Zmiana wierszy na podstawie danych wybranych z innych tabel
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
Zmiana wierszy • 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 • 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)
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: UPDATETABELA_A SET TABELA_A.POLE1=TABELA_B.POLE3 FROMTABELA_B WHERE TABELA_A.ID=TABELA_B.ID1 AND TABELA_B.POLE2 = 1 Zmiana wierszy na podstawie danych wybranych z innych tabel
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
Przykład – slajd 2 z 2 UPDATE UZYTKOWNIK SET UZYTKOWNIK.NRALBUMU=REALIZACJA.WYNIK FROM REALIZACJA WHERE UZYTKOWNIK.IDUZYTKOWNIK = REALIZACJA.FKIDUZYTKOWNIK AND REALIZACJA.FKIDTEST = 57
Literatura • Microsoft SQL Server Books Online