Autor: Joanna Karwowska

Podobne dokumenty
Wykład 6. SQL praca z tabelami 3

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

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

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

Złączenie CROSS JOIN jest to tzw. złączenie krzyżowe, którego ogólna postać wygląda następująco:

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

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

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

3. Podzapytania, łączenie tabel i zapytań

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

Przestrzenne bazy danych Podstawy języka SQL

Podstawy języka SQL cz. 2

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

RBD Relacyjne Bazy Danych

Łączenie wyników zapytań w SQL

Paweł Rajba

Model relacyjny. Wykład II

Autor: Joanna Karwowska

Wykład 5. SQL praca z tabelami 2

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

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

Laboratorium Bazy danych SQL 2

Autor: Joanna Karwowska

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

Tadeusz Pankowski Relacyjne bazy danych. są podstawą zachodniej cywilizacji

Grupowanie i funkcje agregacji

SQL praca z tabelami 4. Wykład 7

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

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

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

Technologie baz danych

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

Microsoft SQL Server Podstawy T-SQL

Złaczenia tablic: FROM, WHERE, JOIN

Model relacyjny. Wykład II

SQL (ang. Structured Query Language)

Operacja Teta-złączenia. v1 v1 Θ v2

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

1 Wstęp do modelu relacyjnego

Szkolenie autoryzowane. MS Tworzenie zapytań do Microsoft SQL Server Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

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

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Wyświetl imie i nazwisko ucznia, nazwę przedmiotu z którego otrzymał ocenę niedostateczną. Nazwij tę kwerendę oceny niedostateczne.

Systemy GIS Tworzenie zapytań w bazach danych

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

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

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

Algebra relacji. nazywamy każdy podzbiór iloczynu karteziańskiego D 1 D 2 D n.

Relacyjne bazy danych. Podstawy SQL

Wprowadzenie do języka SQL

Tworzenie zapytań do Microsoft SQL Server

050 SQL ELEMENTY ZAAWANSOWANE. Prof. dr hab. Marek Wisła

SQL Structured Query Language

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

BAZY DANYCH algebra relacyjna. Opracował: dr inż. Piotr Suchomski

Technologie baz danych

Wprowadzenie do baz danych

8.9. Język SQL Kwerenda wybierająca w języku SQL

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

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

Współczesne systemy baz danych

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

Pobieranie danych z wielu tabel i łączenie wyników zapytań

Struktura drzewa w MySQL. Michał Tyszczenko

PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Współczesne systemy baz danych

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

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

Projektowanie relacyjnych baz danych

Podstawowe zapytania SELECT (na jednej tabeli)

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

Struktura bazy danych

Bazy danych. Wprowadzenie. SKiBD

Bazy danych. Wykład V Kwerendy. Copyrights by Arkadiusz Rzucidło 1

Podyplomowe Studia Systemy informatyczne w logistyce

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

Bazy danych wykład trzeci. Konrad Zdanowski

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

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

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

SQL. Æwiczenia praktyczne

Wykład 8. SQL praca z tabelami 5

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

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

Język SQL podstawy zapytań

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

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

NORTHWIND. Anonco.pl. ćwiczenia praktyczne. KiK s Tutorials. NORTHWIND dwiczenia praktyczne. ANONCO.PL/SQL SQLSERVERDLAOPORNYCH.WORDPRESS.

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

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Relacyjne bazy danych. Podstawy SQL

Bazy danych. Informacje podstawowe

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

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

Plan. Łączenie danych z wielu tabel złączenia JOIN suma zbiorów - UNION Użycie aliasów dla nazw tabel

Teoretyczne podstawy informatyki

Bazy danych Język SQL część 2 Wykład dla studentów matem

Zadania z SQLa (MS SQL Server)

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

Transkrypt:

Autor: Joanna Karwowska

Jeśli pobieramy dane z więcej niż jednej tabeli, w rzeczywistości wykonujemy tak zwane złączenie. W SQL istnieją instrukcje pozwalające na formalne wykonanie złączenia tabel - istnieje wiele typów złączeń. 2

1. Rodzaje złączeń: a) WEWNĘTRZNE b) ZEWNĘTRZNE c) KRZYŻOWE 3

Złączenie typu INNER JOIN to złączenie warunkowe o postaci: SELECT kolumna1, kolumna2,, kolumnan FROM tabela1 [INNER] JOIN tabela2 ON wyrażenie_warunkowe; W przypadku tego złączenia w wyniku pojawią się tylko te wiersze z tabeli1, które mają swoje odpowiedniki w tabeli2 (które spełniają warunki wymienione po klauzuli ON). Słowo INNER w większości implementacji jest opcjonalne. Jest to więc odpowiednik instrukcji: SELECT kolumna1, kolumna2,, kolumnan FROM tabela1, tabela2 WHERE warunki; 4

Złączenie typu LEFT OUTER JOIN zapytanie zwraca wszystkie wiersze z pierwszej tabeli i pasujące wiersze z drugiej tabeli. Konstrukcja ta ma postać: SELECT kolumna1, kolumna2,, kolumnan FROM tabela1 LEFT [OUTER] JOIN tabela2 ON wyrażenie_warunkowe; Słowo OUTER w większości implementacji jest opcjonalne. 5

Złączenie typu RIGHT OUTER JOIN jest przeciwieństwem LEFT OUTER JOIN. Zapytanie zwraca wszystkie wiersze z drugiej tabeli i pasujące wiersze z pierwszej tabeli. Ma ono postać: SELECT kolumna1, kolumna2,, kolumnan FROM tabela1 RIGHT [OUTER] JOIN tabela2 ON wyrażenie_warunkowe; 6

Złączenie typu FULL OUTER JOIN jest kombinacją LEFT OUTER JOIN i RIGHT OUTER JOIN. Nie jest ono obsługiwane przez bazę MYSQL. Ma ogólną postać: SELECT kolumna1, kolumna2,, kolumnan FROM tabela1 FULL [OUTER] JOIN tabela2 ON wyrażenie_warunkowe; Uwzględnia ono w wynikach zapytania zarówno takie wiersze z pierwszej tabeli, które nie mają swoich odpowiedników w drugiej, jak i takie wiersze z drugiej tabeli, które nie mają swoich odpowiedników w pierwszej. 7

Złączenie typu CROSS JOIN to złączenie krzyżowe, którego ogólna postać jest następująca: SELECT kolumna1, kolumna2,, kolumnan FROM tabela1 CROSS JOIN tabela2; Wykonuje ono iloczyn kartezjański łączonych tabel, czyli łączy każdy wiersz (krotkę) tabeli1 z każdym wierszem (krotką) tabeli2. Jest to zatem odpowiednik instrukcji: SELECT kolumna1, kolumna2,, kolumnan FROM tabela1, tabela2; 8

W złączeniach można również stosować klauzulę WHERE. W wyniku takiego zapytania najpierw zostanie wykonane złączenie spełniające warunki występujące po klauzuli ON. Następnie z otrzymanych wierszy zostaną wyeliminowane te, które nie spełniają warunków występujących po klauzuli WHERE, a serwer bazy danych zwróci ostateczny wynik. 9

Napisz zapytanie wykorzystujące złączenie LEFT OUTER JOIN do wyświetlenia danych pracowników, dla których w kolumnie stanowisko znajdują się wartości niemające odpowiedników w tabeli stanowiska. SELECT imie, nazwisko, pesel, nazwa, pensja FROM pracownicy LEFT OUTER JOIN stanowiska ON stanowisko=stanowiska.id_stanowiska WHERE nazwa IS NULL; 10

Omówione wcześniej sposoby łączenia tabel w klauzuli FROM dotyczyły łączenia zbiorów w sposób poziomy. Określane były typy złączeń (m.in. INNER, OUTER JOIN) oraz warunki dopasowania rekordów wyszczególnione przed operatorem ON. W wyniku otrzymywaliśmy zbiór elementów, opisywany za pomocą wszystkich kolumn (atrybutów) łączonych tabel. Dlatego nazywamy to połączenie jako poziome. 11

1. Rodzaje operacji pionowych: UNION suma bez duplikatów UNION ALL suma z duplikatami EXCEPT odejmowanie zbiorów INTERSECT iloczyn (część wspólna) 12

Operują one zawsze, na wynikach całych kwerend (tabel wejściowych) i zwracają tabelę wynikową, będącą zbiorem identycznie określonym jak pierwsza tabela wejściowa (liczba i nazwy kolumn). Zawierają jednak elementy (wiersze), zgodne z arytmetyką zbiorów, określoną przez operator: UNION, UNION ALL, EXCEPT lub INTERSECT. W jednym zapytaniu możemy dokonywać wiele operacji na zbiorach np. łączyć (UNION) wyniki 5 kwerend (tabel wejściowych). 13

14

Jest kilka zasad, które muszą być spełnione: Warunkiem podstawowym, któregokolwiek ze sposobów operowania na zbiorach w sposób pionowy, jest podobna struktura tabel wejściowych. Liczba kolumn w każdym zbiorze (kwerendzie), musi być identyczna oraz typy danych poszczególnych kolumn, muszą do siebie pasować. Nazwy kolumn, nie mają znaczenia. W zbiorze wynikowym, atrybuty będą nazwane tak jak w pierwszej z kwerend. 15

UNION oznacza sumę zbiorów. W wyniku otrzymamy elementy znajdujące się zarówno w zbiorze pierwszym jak i drugim, ale domyślnie jest to operacja UNION DISTINCT, czyli z usunięciem wszystkich duplikatów. 16

Wykonaj zapytanie, które wyświetli dane (imię, nazwisko i PESEL) wszystkich pracowników uczelni UczelniaA i UczelniaB. SELECT imie, nazwisko pesel FROM UczelniaA UNION SELECT imie, nazwisko pesel FROM UczelniaB; 17

Drugim sposobem na dodawanie zbiorów jest UNION ALL czyli łączenie bez usuwania duplikatów. 18

Użyj instrukcji UNION wyświetlającej dane wszystkich pracowników w taki sposób, aby w wynikach znalazły się wszystkie wiersze zapytań składowych. SELECT imie, nazwisko pesel FROM UczelniaA UNION ALL SELECT imie, nazwisko pesel FROM UczelniaB; 19

Operator EXCEPT oznacza odejmowanie zbiorów. Ze zbioru pierwszego (czyli po lewej stronie od operatora EXCEPT), odejmowane są wszystkie elementy wspólne ze zbiorem drugim (tabeli wynikowej, kwerendy po prawej stronie). 20

21

Operatora INTERSECT używamy do wyznaczenia części wspólnej zbiorów. Podobnie jak EXCEPT, zaimplementowany w SQL Server, został również tylko jako INTERSECT DISTINCT, czyli części wspólna dwóch zbiorów z usunięciem duplikatów. 22

23

Możemy operować na wielu zbiorach w ramach jednej kwerendy i stosować różne operacje. Obowiązuje tutaj kolejność wykonywania działań dokładnie tak jak w matematyce. Poprzez stosowanie nawiasów, mamy pełną kontrolę nad logiczną kolejnością wykonywania działań. 24

Najpierw zostaną wykonane działania w nawiasach, czyli UNION ostatnich dwóch kwerend (wyciągających dane z tabeli 4 i 5). Następnie mnożenie zbiorów, czyli INTERSECT część wspólna pomiędzy wynikiem wyznaczonym w kroku pierwszym a kwerendą wyciągającą dane z tabeli3. W końcu, jeśli nie ma już żadnych nawiasów i iloczynów, zostaną wykonane wszystkie pozostałe kroki od lewej do prawej, czyli w tym przypadku najpierw, pierwszy UNION i w końcu EXCEPT. 25

za uwagę! ZA UWAGĘ!!! 26