Bazy danych 2. Wykład 4 Structured Query Language (SQL)



Podobne dokumenty
Autor: Joanna Karwowska

Autor: Joanna Karwowska

Przestrzenne bazy danych Podstawy języka SQL

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING

Systemy GIS Tworzenie zapytań w bazach danych

SQL (ang. Structured Query Language)

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

Relacyjne bazy danych. Podstawy SQL

Ćwiczenie 3 funkcje agregujące

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

Podstawy języka SQL cz. 2

Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa. Studia Podyplomowe dla Nauczycieli

Język SQL. Rozdział 2. Proste zapytania

Autor: Joanna Karwowska

Paweł Rajba

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

Podstawowe zapytania SELECT (na jednej tabeli)

Wprowadzenie do języka SQL

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

Wstęp do SQL. copyright: KGiIS WGGiOŚ AGH

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

SQL Structured Query Language

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Relacyjne bazy danych. Podstawy SQL

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Szkolenie Oracle SQL podstawy. Terminy lutego 2010 First Minute! 1100zł!

SQL - Structured Query Language. strukturalny język zapytań

3. Podzapytania, łączenie tabel i zapytań

Zadania z SQLa (MS SQL Server)

Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING.

SQL praca z tabelami 4. Wykład 7

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga

Język SQL. Rozdział 5. Połączenia i operatory zbiorowe

Wykład 5. SQL praca z tabelami 2

Współczesne systemy baz danych

Grupowanie i funkcje agregujące

Laboratorium Bazy danych SQL 2

Współczesne systemy baz danych

Bazy danych SQL Server 2005

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2)

Struktura bazy danych

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Bazy danych 8. Podzapytania i grupowanie. P. F. Góra

Technologie baz danych

Język SQL podstawy zapytań

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

Grupowanie i funkcje agregacji

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Wykład 6. SQL praca z tabelami 3

SQL do zaawansowanych analiz danych część 1.

Technologie baz danych

P o d s t a w y j ę z y k a S Q L

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

Bazy danych 6. Podzapytania i grupowanie. P. F. Góra

Zaawansowane bazy danych i hurtownie danych studia zaoczne II stopnia, sem. I

Wprowadzenie do baz danych

Wykład 8. SQL praca z tabelami 5

Widok Connections po utworzeniu połączenia. Obszar roboczy

Bazy Danych. SQL Podstawy języka II: zapytania. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Model relacyjny. Wykład II

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Zadania SELECT do schematu EDS (EMP, DEPT, SALGRADE)

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Aliasy Select p.first_name, p.salary, j.job_title from employees p, jobs j where p.job_id=j.job_id;

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

Laboratorium Bazy danych SQL 3 1

Laboratorium nr 10. Temat: Połączenia relacji

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Złaczenia tablic: FROM, WHERE, JOIN

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

Model relacyjny. Wykład II

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

Bazy Danych. SQL Podstawy języka III: powtórzenie. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Agregacja i Grupowanie Danych. Funkcje Agregacji. Opcje GROUP BY oraz HAVING

PODZAPYTANIE (SUBSELECT)

a) Polecenie: Wyświetl wszystkie rekordy z tabeli Pracownicy (wszystkie atrybuty)

Plan. Wyświetlanie n początkowych wartości (TOP n) Użycie funkcji agregujących. Grupowanie danych - klauzula GROUP BY

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Podzapytania. Podzapytania nieskorelowane i skorelowane

Ćwiczenie zapytań języka bazy danych PostgreSQL

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Podzapytania. SELECT atrybut_1, atrybut_2,... FROM relacja WHERE atrybut_n operator (SELECT atrybut_1, FROM relacja WHERE warunek

Microsoft SQL Server Podstawy T-SQL

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus

Wykład 5 Charakterystyka języka SQL. Elementy obliczeń relacyjnych.

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS.

Konstruowanie Baz Danych DQL agregacja danych

WyŜsza Szkoła Zarządzania Ochroną Pracy MS EXCEL CZ.2

ACESS- zadania z wykorzystaniem poleceń SQL

Transkrypt:

Bazy danych 2 Wykład 4 Structured Query Language (SQL)

Cechy SQL W standardzie SQL wyróŝnia się dwie części: DDL (Data Definition Language) - język definiowania danych DML (Data Manipulation Language) język manipulowania danymi SQL jest językiem nieproceduralnym: uŝytkownik opisuje informacje, których potrzebuje, a nie wskazuje w jaki sposób naleŝy ja odnaleźć Ma dość swobodny format poszczególne fragmenty poleceń nie muszą być umieszczone w określonych miejscach SQL nie jest językiem zupełnym obliczeniowo SQL moŝe być osadzony w języku proceduralnym

Cechy SQL Będziemy UśYWAĆ SKŁADNI Backusa-Naura Wielkie litery będziemy uŝywać w poleceniach Małymi litrami będziemy zapisywać sowa definiowane przez uŝytkownika Pionowej kreski będziemy uŝywać, by zaznaczyć moŝliwość wyboru jednej z przedstawionych opcji W nawiasach klamrowych umieszczamy elementy wymagane W nawiasach kwadratowych umieszczamy elementy opcjonalne Nawiasów okrągłych ( ) uŝywamy, aby zaznaczyć moŝliwość powtórzenia elementu zero lub dowolna liczbę razy Literały to stałe wykorzystywane w poleceniach SQL, nieliczbowe wartości danych zapisujemy w apostrofach, a wartości liczbowe bez

Klauzula SELECT SELECT FROM [WHERE [GROUP BY [ORDER BY [DISTINCT ALL]{* [wyraŝenie kolumnowe[as nowa_nazwa]] [, ]} NazwaTabeli [alias][, ] warunek_selekcji wierszy] lista_kolumn][having warunek_selekcji_grup] lista_kolumn];

Klauzula SELECT Kolejność przetwarzania jest następująca FROM określa tabelę (lub tabele), z których będziemy korzystać WHERE pozwala wybrać wiersze spełniające zadany warunek selekcji wierszy GROUP BY tworzy grupy wierszy o tej samej wartości wskazanej kolumny HAVING pozwala wybrać grupy ze względu na podany warunek selekcji SELECT wskazuje, które kolumny powinny pojawić się w wyniku ORDER BY określa uporządkowanie wyniku Porządku elementów zapytania SELECT nie moŝna zmieniać

Klauzula SELECT Przykład 1. Wyszukiwanie wszystkich kolumn i wierszy Podaj wszystkie dane wszystkich pracowników SELECT * FROM Personel; Przykład 2. Wyszukiwanie wybranych kolumn i wszystkich wierszy Podaj listę płac wszystkich pracowników, lista powinna zawierać jedynie numer pracownika, jego imię i nazwisko oraz pensję. SELECT pracowniknr, imię, nazwisko, pensja FROM Personel; Przykład 3. Wykorzystanie DISTINCT Podaj numery wszystkich nieruchomości, które zostały odwiedzone przez klientów SELECT DISTINCT nieruchomośćnr FROM Wizyta;

Pola wyliczane Przykład 4. Pola wyliczane Podaj listę miesięcznych płac wszystkich pracowników; lista powinna zawierać numer pracownika, jego imię i nazwisko oraz płacę (w tabeli pensje są pensjami rocznymi) SELECT PracownikNr, imię, nazwisko, pensja/12 AS pensjamiesięczna FROM Personel; Polecenie SQL moŝe zawierać dodawanie, odejmowanie, mnoŝenie i dzielenie oraz nawiasy pozwalające budować bardziej skomplikowane wyraŝenia W kolumnie wyliczanej moŝe wystąpić więcej niŝ jedna kolumna

Klauzula WHERE Klauzula WHERE zawiera warunek selekcji, 5 podstawowych warunków to: Porównanie polega na porównaniu wartości jednego wyraŝenia z wartością drugiego wyraŝenia Sprawdzenie zakresu polega na sprawdzeniu, czy zadana wartość naleŝy do wskazanego przedziału wartości PrzynaleŜność do zbioru polega na sprawdzeniu, czy zadana wartość jest równa jednemu spośród elementów zbioru Dopasowanie do wzorca polega na sprawdzeniu czy słowo pasuje do podanego wzorca Wartośc pusta polega na sprawdzeniu, czy w kolumnie jest wartość pusta

Klauzula WHERE Przykład 5. Warunek selekcji: porównanie Podaj wszystkich pracowników, których pensja jest wyŝsza niŝ 10000 funtów SELECT pracowniknr, imię, nazwisko, stanowisko, pensja FROM Personel WHERE pensja>10000; Przykład 6. ZłoŜony warunek selekcji: porównanie Podaj adresy wszystkich biur znajdujących się w Londynie lub Glasgow SELECT * FROM Biuro WHERE miasto= Londyn OR miasto= Glasgow ;

Klauzula WHERE Przykład 6. Warunek selekcji: wartości z zakresu (BETWEEN i NOT BETWEEN) Podaj wszystkich pracowników mających pensję pomiędzy 20000 a 30000 funtóww SELECT pracowniknr, imię, nazwisko, stanowisko, pensja FROM Personel WHERE pensja BETWEEN 20000 AND 30000; Przykład 7. Warunek selekcji : przynaleŝność do zbioru (IN lub NOT IN) Podaj wszystkich kierowników i dyrektorów SELECT pracowniknr, imię, nazwisko, stanowisko FROM Personel WHERE stanowisko IN ( kierownik, dyrektor );

Klauzula WHERE W SQL występują dwa szczególne symbole zastępcze: % - znak procentu zastępuje dowolny ciąg znaków _ - znak podkreślenia zastępuje dowolny (jeden) znak Przykład 8. Warunek selekcji: dopasowanie do wzorca (LIKE lub NOT LIKE) Podaj wszystkich właścicieli, w których adresie występuje słowo Glasgow SELECT klientnr, imię, nazwisko, adres, telnr FROM WłaścicielPryatny WHERE adres LIKE %Glasgow% ; Jeśli słowo powinno zawierać znak specjalny musimy uŝyć klauzuli ESCAPE, np. by znaleźć ciąg 15% uŝyjemy warunku LIKE 15#% ESCAPE #

Klauzula WHERE Przykład 9. Warunek selekcji: wartości puste (IS NULL lub IS NOT NULL) Podaj szczegółowe informacje o wszystkich wizytach w nieruchomości PG4, po których nie zgłoszono uwag SELECT klientnr, datawizyty FROM Wizyta WHERE nieruchomośćnr= PG4 AND uwagi IS NULL;

Klauzula ORDER BY Do uporządkowania wierszy będących wynikiem zapytania słuŝy klauzula ORDER BY zawierająca listę oddzielonych przecinkami identyfikatorów kolumn, wg których naleŝy posortować wynik Przykład 10. Porządkowanie według jednej kolumny Wygeneruj listę pensji wszystkich pracowników uporządkowaną malejąco według pensji SELECT pracowniknr, imię, nazwisko, pensja FROM Personel ORDER BY pensja DESC Przykład 11. Porządkowanie według wielu kolumn. Wygeneruj listę wybranych informacji dotyczących nieruchomości uporządkowana według rodzajów nieruchomości SELECT nieruchomośćnr, typ, pokoje, czynszimię, nazwisko, pensja FROM Nieruchomość ORDER BY typ, czynsz DESC;

Funkcje agregujące W standardzie SQL pięć funkcji agregujących COUNT zwraca liczbę wartości występujących w określonej kolumnie SUM zwraca sumę wartości występujących w określonej kolumnie AVG zwraca średnią wartości występujących w określonej kolumnie MIN zwraca najmniejsza wartość występującą w określonej kolumnie MAX zwraca największą wartość występującą w określonej kolumnie Funkcje COUNT, MIN i MAX moŝna stosować zarówno do wartości liczbowych jak i nieliczbowych Wszystkie funkcje oprócz COUNT(*) pomijają wartości puste JeŜeli chcemy wyeliminować powtórzenia, uŝywamy słowa kluczowego DISTINCT przed nazwą kolumny w argumencie funkcji, moŝe być uŝyte tylko jeden raz w zapytaniu

Funkcje agregujące Funkcje agregujące mogą być stosowne jedynie na liście SELECT lub klauzuli HAVING JeŜeli lista SELECT zawiera funkcję agregującą i w zapytaniu nie jest zastosowana klauzula GROUP BY słuŝąca do grupowania danych, to wówczas Ŝaden z elementów listy SELECT nie moŝe odwoływać się do kolumny, o ile ta kolumna nie jest argumentem funkcji agregującej, np. błędne jest poniŝsze zapytanie SELECT pracowniknr, COUNT(pensja) FROM Personel

Funkcje agregujące Przykład 12. Zastosowanie COUNT(*) W ilu nieruchomościach miesięczny czynsz jest wyŝszy niŝ 350 funtów. SELECT COUNT(*) AS liczba FROM Nieruchomość WHERE czynsz>350; Przykład 13. Zastosowanie COUNT DISTINCT Ile nieruchomości odwiedzono w maju 2001 roku? SELECT COUNT(DISTINCT nieruchomościnr) AS liczba FROM Wizyta WHERE data Wizyty BETWEN 1.05.2001 AND 31.05.2001 ;

Funkcje agregujące Przykład 14. Zastosowanie COUNT i SUM Oblicz, ilu jest dyrektorów i jaka jest ich sumaryczna pensja. SELECT COUNT(pracownikNr) AS liczba, SUM(pensja) as suma FROM Personel WHERE stanowisko= dyrektor ; Przykład 15. Zastosowanie MIN, MAX i AVG Oblicz najmniejszą, największa i średnią pensję pracownika SELECT MIN(pensja) S minimum, MAX(pensja) AS maksimum, AVG(pensja) AS średnia FROM Personel;

Klauzula GROUP BY Zapytanie z klauzulą GROUP BY nazywamy zapytaniem grupującym, poniewaŝ w trakcie jego obliczania dane z tabeli SELECT są dzielone na grupy i dla kaŝdej grupy jest generowany jeden wiersz podsumowania. Kolumny wymienione w klauzuli GROUP BY nazywamy kolumnami grupującymi. Gdy w zapytaniu występuje GROUP BY, dla kaŝdego elementu z listy SELECT musi istnieć moŝliwość wyznaczenia jednoznacznie wartości w ramach grupy Klauzula SELECT moŝe zawierać jedynie Nazwy kolumn grupowania Funkcje agregujące Stałe WyraŜenia zawierające kombinacje powyŝszych elementów Wszystkie nazwy kolumn na liście SELECT muszą występować w klauzuli GROUP BY, chyba Ŝe nazwa kolumny jest uŝywana jako argument funkcji agregującej

Klauzula GROUP BY Przykład 16. Zastosowanie GROUP BY Oblicz, dla kaŝdegobiura liczbę zatrudnionych w nim pracowników oraz ich sumaryczna pensję.ilu jest dyrektorów i jaka jest ich sumaryczna pensja. SELECT biuronr, COUNT(pracownikNr) AS liczba, SUM(pensja) AS suma FROM Personel GROUP BY biuronr ORDER BY biuronr;

Klauzula HAVING Klauzulę HAVING stosuje się razem w połączeniu z klauzulą GROUP BY Klauzula HAVING słuŝy do wyboru grup, które ostatecznie trafia do tabeli wynikowej Nazwy kolumn występujące w klauzuli HAVING pojawiały się takŝe na liście GROUP BY lub były argumentami funkcji agregującej Przykład 17. Zastosowanie HAVING Dla kaŝdego biura zatrudniającego więcej niŝ jednego pracownika, podajliczbę pracowników biura oraz sumę ich zarobków SELECT biuronr, COUNT(pracownikNr) AS liczba, SUM(pensja) AS suma FROM Personel GROUP BY biuronr HAVING COUNT(pracownikNr)>1 ORDER BY biuronr;

Podzapytania Zapytania zagnieŝdŝone (wewnętrzne) mogą występować w klauzulach WHERE i HAVING zapytania zewnętrznego, a takŝe w klauzulach INSERT, UPDATE i DELETE Istnieją trzy rodzaje podzapytań: Podzapytania skalarne zwracają jedną kolumnę i jeden wiersz Podzapytania krotkowe zwracają kilka kolumn i tak jak poprzednio tylko jeden wiersz Podzapytanie tabelowe zwracają jedną lub więcej kolumn i wiele wierszy

Podzapytania Przykład 18. Zastosowanie podzapytania z równością Podaj wszystkich pracowników zatrudnionych w biurze przy 163 MainStr. SELECT pracowniknr, imię, nazwisko, stanowisko FROM Personel WHERE biuronr=(select biuron FROM Biuro WHERE ulica= 163 Main Str. ); Przykład 19. Stosowanie podzapytań z funkcją agregującą Podaj wszystkich pracowników, których pensja jest wyŝsza od średniej; pokaŝ róŝnicę między poszczególnymi pensjami z średnią. SELECT pracowniknr, imię, nazwisko, stanowisko, pensja róŝnica FROM Personel WHERE pensja>(select AVG(pensja) FROM Personel AS róŝnica) ;

Podzapytania Do podzapytań stosuje się poniŝsze zasady: W podzapytaniach nie wolno uŝywać klauzuli ORDER BY Lista SELECT podzapytania musi składać się z pojedynczej nazwy kolumny lub wyraŝenia, z wyjątkiem podzapytań wykorzystywanych z operatorem EXISTS Domyślnie nazwy kolumn w podzapytaniu odnoszą się do nazwy tabeli z klauzuli FROM podzapytania. Do kolumn tabeli z klauzulą FROM zapytania zewnętrznego moŝna odwołać się poprzedzając nazwę kolumny nazwą tabeli. JeŜeli podzapytanie jest jednym z dwóch argumentów, których dotyczy porównanie, to musi występować po prawej stronie porównania.

Podzapytania Przykład 20. Podzapytania zagnieŝdŝone: Podaj wszystkie nieruchomości nadzorowane przez pracowników zatrudnionych w biurze 163 Main Str SELECT nieruchomośćnr, ulica, miasto, kodpocztowy, typ, pokoje, czynsz FROM Nieruchomość WHERE pracowniknr IN (SELECT pracowniknr FROM Personel WHERE biuronr=(select biuron FROM Biuro WHERE ulica= 163 Main Str. ));

Klauzule ANY, SOME i ALL Słowa ANY, SOME i ALL w przypadku gdy wynik daje wiele wierszy i stosujemy operatory porównania Przykład 20. Zastosowanie ANY/SOME: Znajdź wszystkich pracowników, którzy mają pensję wyŝsza niŝ przynajmniej jeden pracownik biura o numerze B003 SELECT pracowniknr, imię, nazwisko, pensja FROM Personel WHERE pensja>some (SELECT pensja FROM Personel WHERE biuronr= B003 );

Zapytania dotyczące wielu tabel Aby dokonać złączenia w klauzuli FROM naleŝy wymienić tabele oddzielając je przecinkami, a w klauzuli WHERE określić kolumny wg których jest dokonywane złączenie Dla kaŝdej tabeli moŝna zdefiniować alias moŝna go uŝywać wszędzie zamiast nazwy Przykład 22. Proste złączenie: Podaj nazwy wszystkich klientów, którzy odwiedzili wszystkie nieruchomości. Wraz z danymi klienta podaj zgłoszone przez niego uwagi. SELECT k.klientnr, imię, nazwisko, nieruchomośćnr, uwagi FROM Klient k, Wizyta w WHERE k.klientnr=w.klientnr

Zapytania dotyczące wielu tabel W standardzie SQL opisano alternatywne sposoby zapisu powyŝszego złaczenia FROM Klient k JOIN Wizyta w ON k.klientnr=w.klientnr FROM Klient JOIN Wizyta USING klientnr FROM Klient NATURAL JOIN Wizyta

Złączenia Procedura generowania wyniku zapytania SELECT ze złączeniem jest następująca: (1) Utwórz iloczyn kartezjański tabel wymienionych po klauzuli FROM (2) JeŜeli istnieje klauzula WHERE, to zastosuj warunek selekcji do kaŝdego z wierszy iloczynu, pozostawiając tylko te wiersze, które spełniają warunek (3) Dla kaŝdego z pozostałych wierszy ustal wartość kaŝdego elementu z listy SELECT i wygeneruj jeden wiersz (4) JeŜeli w zapytaniu uŝyto SELECT DISTINCT, usuń powtarzające sie wiersze z tabeli wynikowej (5) JeŜeli występuje klauzula ORDER BY, to uporządkuj tabelę wynikową według ustalonego kryterium

Złączenia zewnętrzne Złączenie zewnętrzne zachowuje wiersze niespełniające warunku złączenia Istnieją trzy rodzaje złączenia zewnętrznego: Lewostronne LEFT JOIN Prawostronne RIGHT JOIN Pełne FULL JOIN

Złączenia zewnętrzne RozwaŜmy przykład: Złączenie lewostronne: SELECT b.*, d.* FROM biuro1 b LEFT JOIN Nieruchomość1 d ON b.bmiasto=d.nmiasto; Złączenie prawostronne: SELECT b.*, d.* FROM biuro1 b RIGHT JOIN Nieruchomość1 d ON b.bmiasto=d.nmiasto; Złączenie pełne: SELECT b.*, d.* FROM biuro1 b FULL JOIN Nieruchomość1 d ON b.bmiasto=d.nmiasto;

UNION, INTERSECT, EXCEPT W języku SQL mamy moŝliwość wykonywania operacji na zborach: sumy, iloczynu, róŝnicy Operacje te nazywane są w standardzie SQL odpowienio: UNION, INTERSECT i EXCEPT Sposób zapisu jest następujący operacja [ALL] [CORRESPONDING [BY [kolumna1[,...]]]] gdzie opcja CORRESPONDING [BY [kolumna1[,...]]] informuje, Ŝe operacja jest wykonywana na wskazanych kolumnach opcja CORRESPONDING informuje, Ŝe operacja jest wykonywana w oparciu o wspólne kolumny opcja ALL - wynik moŝe zawierać powtarzające się wiersze

UNION, INTERSECT, EXCEPT Przykład 25. Zastosowanie UNION: Podaj listę wszystkich miast w których znajduje się biuro lub nieruchomość (SELECT miasto FROM biuro WHERE miasto IS NOT NULL) UNION (SELECT miasto FROM Nieruchomość WHERE miasto IS NOT NULL) lub (SELECT * FROM biuro WHERE miasto IS NOT NULL) UNION CORRESPONDING BY miasto (SELECT * FROM Nieruchomość WHERE miasto IS NOT NULL)

Dziękuję za uwagę