Post on 19-Jan-2016
description
25/08/2001 1
Bazy danych II
Piotr Górczyński
Instrukcja UPDATE
25/08/2001 2
Spis treści
Składnia UPDATEZmiana wierszyZmiana wierszy na podstawie danych wybranych z
innych tabel
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
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)
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
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
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
25/08/2001 8
Literatura
Microsoft SQL Server Books Online