BD-1st-2.4-lab6.tresc-1.1-Slajd11

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Modyfikowanie krotek relacji – cd.

Modyfikowanie krotek relacji – cd.


Jak wspomniano na poprzednim slajdzie, możliwe jest stosowanie podzapytań w poleceniu UPDATE. Podzapytania można wykorzystać tutaj zarówno do zaawansowanego obliczania nowych wartości atrybutów, jak i w klauzuli WHERE do zaawansowanego wyszukiwania krotek, które mają zostać zmodyfikowane. Należy pamiętać jedynie o tym, aby podzapytanie obliczające nową wartość atrybutu zwracało relację wynikową złożoną z jednego atrybutu i jednej krotki. Podzapytania w klauzuli WHERE można definiować w sposób analogiczny do sposobu definiowania podzapytań w poleceniu SELECT. Składnię polecenia UPDATE z wykorzystaniem podzapytania przedstawiono na przykładzie (1). Przykład (2) zawiera zaawansowane polecenie UPDATE wykorzystujące podzapytania. Rozpocznijmy analizę tego polecenia od klauzuli WHERE. Według warunku zdefiniowanego w tej klauzuli, modyfikacji ulegną jedynie te krotki relacji PRACOWNICY, dla których istnieje przynajmniej jedna krotka w wyniku podzapytania. Jest to podzapytanie skorelowane odszukujące wszystkich podwładnych rozważanego w poleceniu UPDATE pracownika. W celu odróżnienia atrybutów relacji PRACOWNICY przeglądanych przez podzapytanie od atrybutów modyfikowanej relacji, na początku polecenia UPDATE nadano modyfikowanej relacji pracownicy alias „s”. Podsumowując, warunek WHERE przykładowego polecenia SELECT mówi nam, iż zmodyfikowani mają zostać jedynie ci pracownicy, którzy posiadają jakichś podwładnych. Przejdźmy obecnie do operacji przypisania tego polecenia. W operacji tej, przypisujemy atrybutowi PLACA_DOD starą wartość tego atrybutu powiększoną o 10% wartości zwróconej przez podzapytanie. Podzapytanie jest również skorelowane i zwraca sumę wartości atrybutu PLACA_POD krotek opisujących podwładnych rozważanego przez polecenie UPDATE pracownika. Podsumowując, można powiedzieć, że polecenie UPDATE zwiększa płacę dodatkową wszystkim pracownikom posiadającym podwładnych o 10% sumarycznej płacy podstawowej wszystkich jego podwładnych.


<< Poprzedni slajd | Spis treści | Następny slajd >>