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