A�wiczenie 3

Pobieranie danych z wiA�cej niA? jedna tabeli

Do pobrania danych z wiA�cej niA? jednej tabeli moA?emy wykorzystaA� operator WHERE uA?ywajA�c warunku rA?wnoA�ciowego.

PrzykA�ady

SELECT * FROM powiat, wojewodztwo WHERE powiat.kod_wojewodztwa=wojewodztwo.kod_wojewodztwa

warunki po operatorze WHERE moA?emy rozbudowywaA�

SELECT * FROM powiat, wojewodztwo WHERE powiat.kod_wojewodztwa=wojewodztwo.kod_wojewodztwa AND wojewodztwo.nazwa='A�A?dzkie'

JOIN bez prefiksu domyA�lnie jest wykonywany jako INNER JOIN sA�uA?y do poA�A�czenia dwu lub wiA�cej tabel na podstawie okreA�lonych pA?l sA� to pola odpowiadajA�ce za relacje czyli klucze gA�A?wne z kluczami obcymi.

PrzykA�ad

SELECT powiat.nazwa as 'Nazwa powiatu', wojewodztwo.nazwa as 'LeA?y w wojewA?dztwie' FROM powiat INNER JOIN wojewodztwo ON wojewodztwo.kod_wojewodztwa=powiat.kod_wojewodztwa

LEFT OUTER JOIN i RIGHT OUTER JOIN pozwalajA� na wyA�wietlenie oprA?cz pA?l speA�niajA�cych warunek pola z poza z jednej lub drugiej tabeli.

FULL OUTER JOIN Pozwala na wyA�wietlenie niepasujA�cych pA?l z obu tabel

PrzykA�ad

SELECT * FROM osoba JOIN zatrudnienie ON zatrudnienie.nr_osoby=osoba.nr_osoby JOIN dzial ON zatrudnienie.nr_dzialu=dzial.nr_dzialu RIGHT OUTER JOIN stanowiska ON zatrudnienie.nr_stanowiska=stanowiska.nr_stanowiska

CROSS JOIN A�A�czy kaA?dy wiersz z pierwszej tabeli z kaA?dym wierszem drugiej tabeli nie wymaga A?adnych warunkA?w zA�A�czenia.

PrzykA�ad

SELECT * FROM wojewodztwo CROSS JOIN powiat

Zadania

  1. PoA�A�cz wszystkie tabele z bazy WSTEP, ogranicz liczbA� rekordA?w do jednego (funkcja LIMIT)
  2. Podaj dane o leku z bazy danych APTEKA:
    • nazwa
    • jednostka_miary
    • Cena z Vat
    • cena
    • Vat
  3. Podaj dane o leku z punktu 2 wraz z danymi kontrahenta
  4. Czy sA� w bazie leki ktA?re nie zostaA�y nigdy sprzedane jeA�li tak podaj ich nazwy
  5. Kto jaki lek sprzedaA�
  6. KtA?ry aptekarz sprzedaA� najwiA�cej lekA?w
  7. Asrednie zakupy w aptece
  8. WybraA� leki sprzedawane na „Paragon”

Baza WSTEP

wstep

Baza APTEKA

apteka