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

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

10. Wybierz nazwy produktów oraz inf. o stanie magazynu dla produktów dostarczanych przez firmę.tokyo Traders.

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

Plan. ! Podzapytania (subqueries) ! Podzapytania do tabel. ! Podzapytanie jako wyrażenie. ! Podzapytania skorelowane. ! operatory IN, NOT IN

Analiza funkcjonalna projektu biblioteki

Autor: Joanna Karwowska

Wykład 6. SQL praca z tabelami 3

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

Podzapytania do tabel W miejscu w którym możemy użyć nazwy tabeli, możemy użyć podzapytania

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

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

SIECI KOMPUTEROWE I BAZY DANYCH

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

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

Marek Rakowski Zdanie SELECT wybieranie danych z wielu tabel Strona 1 z 6

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

Laboratorium Bazy danych SQL 2

Transakcje inf. podstawowe

SIECI KOMPUTEROWE I BAZY DANYCH

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

Podstawy języka SQL -

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

Baza danych Northwind. Baza danych firmy sprzedającej artykuły spożywcze Informacje o towarach, dostawcach, klientach, zamówieniach klientów itp.

Relacyjne bazy danych. Podstawy SQL

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

Grupowanie danych klauzula GROUP BY

Grupowanie i funkcje agregacji

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

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

Podyplomowe Studia Systemy informatyczne w logistyce

Złaczenia tablic: FROM, WHERE, JOIN

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

Microsoft SQL Server Podstawy T-SQL

Przestrzenne bazy danych Podstawy języka SQL

Grupowanie i funkcje agregujące

Podstawy języka SQL cz. 2

3. Podzapytania, łączenie tabel i zapytań

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

SIECI KOMPUTEROWE I BAZY DANYCH

Podstawowe zapytania SELECT (na jednej tabeli)

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

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

Paweł Rajba

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

Łączenie wyników zapytań w SQL

Technologie baz danych

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

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

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

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

Systemy GIS Tworzenie zapytań w bazach danych

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

Przykładowa baza danych BIBLIOTEKA

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

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

LAB 3 (część 1 Projektu)

Relacyjne bazy danych. Podstawy SQL

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

W SQL Serwerze 2008 wprowadzono parametry tablicowe (Table Valued Parameters - TVP).

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

Podstawowe funkcje dodatku linq w C#

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

Laboratorium nr 10. Temat: Połączenia relacji

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

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

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

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

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

Zadania z SQLa (MS SQL Server)

SQL praca z tabelami 4. Wykład 7

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

Wprowadzenie do SQL TEMAT 3 - Zadania dodatkowe

Podstawy języka SQL - dokończenie TRANSAKCJE 1

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

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

Krok 1. SELECT Symbol AS KS INTO Dzielnik FROM Towary WHERE (Nazwa='Orzeszki solone') OR (Nazwa = 'Zupy CHOISE') OR (Nazwa = 'Kawa BURG');

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

Uniwersytet im. Adama Mickiewicza w Poznaniu Wydział Matematyki i Informatyki. Projekt bazy danych <Moja baza>

Język SQL. Rozdział 2. Proste zapytania

Model relacyjny. Wykład II

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

Lab.8: Podstawy języka SQL.

SQL (ang. Structured Query Language)

TEMAT ĆWICZENIA Zapoznanie z technologią LINQ

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

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

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

Struktura bazy danych

Bazy danych. dr inż. Arkadiusz Mirakowski

Wprowadzenie do języka SQL

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

Wykład XII. optymalizacja w relacyjnych bazach danych

Wykład 8. SQL praca z tabelami 5

Rozpatrzymy bardzo uproszczoną bazę danych o schemacie

Wykład 05 Bazy danych

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

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

Transkrypt:

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

Przykładowa baza Joindb Joindb Database Diagram Sales PK Produce prod_id prod_name FK FK2 buyer_id prod_id qty PK Buyers buyer_id buyer_name

Użycie aliasów dla nazw tabel Przykład (bez aliasu nazwy tabeli) USE joindb SELECT buyer_name, sales.buyer_id, qty FROM buyers, sales WHERE buyers.buyer_id = sales.buyer_id GO Przykład 2 (z aliasem nazwy tabeli) USE joindb SELECT buyer_name, s.buyer_id, qty FROM buyers AS b, sales AS s WHERE b.buyer_id = s.buyer_id GO

Użycie aliasów dla nazw tabel Przykład (bez aliasu nazwy tabeli) USE joindb SELECT buyer_name, sales.buyer_id, qty FROM buyers INNER JOIN sales ON buyers.buyer_id = sales.buyer_id GO Przykład 2 (z aliasem nazwy tabeli) USE joindb SELECT buyer_name, s.buyer_id, qty FROM buyers AS b INNER JOIN sales AS s ON b.buyer_id = s.buyer_id GO

Łączenie danych z wielu tabel Wprowadzenie Złączenia (JOIN) Złączenia wewnętrzne (INNER JOIN) Złączenia zewnętrzne (OUTER JOIN) CROSS JOIN Łączenie więcej niż dwóch tabel Łączenie tabeli samej ze sobą

Łączenie danych z wielu tabel Złączenia klauzula FROM określa, które tabele są łączone klauzula WHERE specyfikuje warunki połączenia Zapytanie do dwóch lub więcej tabel w celu wygenerowania pojedynczego zbioru wynikowego Jako warunki połączenia wykorzystywane są (przeważnie) klucze główne i obce

Łączenie danych z wielu tabel Iloczyn kartezjański USE joindb SELECT b.buyer_name AS [b.buyer_name], b.buyer_id AS [b.buyer_id], s.buyer_id AS [s.buyer_id], qty AS [s.qty] FROM buyers AS b, sales AS s Warunek USE joindb SELECT b.buyer_name AS [b.buyer_name], b.buyer_id AS [b.buyer_id], s.buyer_id AS [s.buyer_id], qty AS [s.qty] FROM buyers AS b, sales AS s WHERE b.buyer_name = Adam Barr

Złączenie Warunki złączenia USE joindb SELECT b.buyer_name AS [b.buyer_name], b.buyer_id AS [b.buyer_id], s.buyer_id AS [s.buyer_id], qty AS [s.qty] FROM buyers AS b, sales AS s WHERE s.buyer_id = b.buyer_id AND b.buyer_name = Adam Barr

Złączenie cd. Warunki złączenia USE joindb SELECT b.buyer_name AS [b.buyer_name], b.buyer_id AS [b.buyer_id], s.buyer_id AS [s.buyer_id], qty AS [s.qty] FROM buyers AS b, sales AS s WHERE s.buyer_id = b.buyer_id

Złączenie cd. USE joindb SELECT buyer_name, b.buyer_id, qty FROM buyers AS b, sales AS s WHERE s.buyer_id = b.buyer_id buyers sales buyer_name buyer_id buyer_id prod_id qty Adam Barr 2 Sean Chai 2 Eva Corets 4 7 Erin O Melia 4 Result 4 2 00 buyer_name buyer_id qty Adam Barr Adam Barr Erin O Melia Eva Corets 4 7 Erin O Melia 4 00

Złączenia (JOIN) - wprowadzenie Operator JOIN Słowo kluczowe JOIN wskazuje, że tabele są łączone i określa w jaki sposób Słowo kluczowe ON specyfikuje warunki połączenia Zapytanie do dwóch lub więcej tabel w celu wygenerowania pojedynczego zbioru wynikowego Jako warunki połączenia wykorzystywane są przeważnie klucze główne i obce

Złączenie wewnętrzne INNER JOIN USE joindb SELECT buyer_name, sales.buyer_id, qty FROM buyers INNER JOIN sales ON buyers.buyer_id = sales.buyer_id buyers sales buyer_name buyer_id buyer_id prod_id qty Adam Barr 2 Sean Chai 2 Eva Corets 4 7 Erin O Melia 4 Result 4 2 00 buyer_name buyer_id qty Adam Barr Adam Barr Erin O Melia Eva Corets 4 7 Erin O Melia 4 00

Przykłady Napisz polecenie zwracające nazwy produktów i firmy je dostarczające (baza northwind) tak aby produkty bez dostarczycieli i dostarczyciele bez produktów nie pojawiali się w wyniku. USE northwind SELECT productname, companyname FROM products INNER JOIN suppliers ON products.supplierid = suppliers.supplierid GO

Przykłady Napisz polecenie zwracające jako wynik nazwy klientów, którzy złożyli zamówienia po 0 marca 998 (baza northwind) USE northwind SELECT DISTINCT companyname, orderdate FROM orders INNER JOIN customers ON orders.customerid = customers.customerid WHERE orderdate > //98 GO

Złączenie zewnętrzne OUTER JOIN USE joindb SELECT buyer_name, sales.buyer_id, qty FROM buyers LEFT OUTER JOIN sales ON buyers.buyer_id = sales.buyer_id buyers sales buyer_name buyer_id buyer_id prod_id qty Adam Barr 2 Sean Chai 2 Eva Corets 4 7 Erin O Melia 4 Result buyer_name buyer_id qty 4 2 00 Adam Barr Adam Barr Erin O Melia 4 7 Eva Corets Erin O Melia 4 00 Sean Chai NULL NULL

Przykłady Napisz polecenie zwracające wszystkich klientów z datami zamówień (baza northwind). USE northwind SELECT companyname, customers.customerid, orderdate FROM customers LEFT OUTER JOIN orders ON customers.customerid = orders.customerid GO

Ćwiczenia Napisz polecenie, które wyświetla listę dzieci będących członkami biblioteki (baza library). Interesuje nas imię, nazwisko i data urodzenia dziecka. Napisz polecenie, które podaje tytuły aktualnie wypożyczonych książek Podaj informacje o karach zapłaconych za przetrzymywanie książki o tytule Tao Teh King. Interesuje nas data oddania książki, ile dni była przetrzymywana i jaką zapłacono karę Napisz polecenie które podaje listę książek (mumery ISBN) zarezerwowanych przez osobę o nazwisku: Stephen A. Graff

Ćwiczenie Wybierz nazwy i ceny produktów (baza northwind) o cenie jednostkowej pomiędzy 20.00 a 0.00, dla każdego produktu podaj dane adresowe dostawcy Wybierz nazwy produktów oraz inf. o stanie magazynu dla produktów dostarczanych przez firmę Tokyo Traders Czy są jacyś klienci którzy nie złożyli żadnego zamówienia w 997 roku, jeśli tak to pokaż ich dane adresowe Wybierz nazwy i numery telefonów dostawców, dostarczających produkty, których aktualnie nie ma w magazynie

CROSS JOIN iloczyn karteziański USE joindb SELECT buyer_name, qty FROM buyers CROSS JOIN sales GO buyers buyer_id buyer_name Adam Barr 2 Sean Chai Eva Corets 4 Erin O Melia sales buyer_id prod_id qty 4 2 7 4 2 00 Result buyer_name Adam Barr Adam Barr Adam Barr Adam Barr qty 7 Adam Barr 00 Sean Chai Sean Chai Sean Chai 7 Sean Chai Sean Chai 00 Eva Corets......

Przykłady Napisz polecenie, wyświetlające CROSS JOIN między shippers i suppliers. użyteczne dla listowania wszystkich możliwych sposobów w jaki dostawcy mogą dostarczać swoje produkty USE northwind SELECT suppliers.companyname, shippers.companyname FROM suppliers CROSS JOIN shippers GO

Łączenie więcej niż dwóch tabel SELECT buyer_name, prod_name, qty FROM buyers INNER JOIN sales ON buyers.buyer_id = sales.buyer_id INNER JOIN produce ON sales.prod_id = produce.prod_id buyers buyer_id buyer_name Adam Barr 2 Sean Chai 4 Eva Corets Erin O Melia Result buyer_name Erin O Melia Adam Barr Erin O Melia Adam Barr Eva Corets buyer_id 4 sales prod_id 2 2 2 qty 7 00 prod_name Apples Pears Pears Oranges Peaches qty 7 00 produce prod_id prod_name Apples 2 Pears 4 Oranges Bananas Peaches

Przykład Napisz polecenie zwracające listę produktów zamawianych w dniu 996-07-08. USE northwind SELECT orderdate, productname FROM orders AS O INNER JOIN [order details] AS OD ON O.orderid = OD.orderid INNER JOIN products AS P ON OD.productid = P.productid WHERE orderdate = 7/8/96 GO

Ćwiczenia Wybierz nazwy i ceny produktów (baza northwind) o cenie jednostkowej pomiędzy 20.00 a 0.00, dla każdego produktu podaj dane adresowe dostawcy, interesują nas tylko produkty z kategorii Meat/Poultry Wybierz nazwy i ceny produktów z kategorii Confections dla każdego produktu podaj nazwę dostawcy. Wybierz nazwy i numery telefonów klientów, którym w 997 roku przesyłki dostarczała firma United Package Wybierz nazwy i numery telefonów klientów, którzy kupowali produkty z kategorii Confections

Ćwiczenia Napisz polecenie, które wyświetla listę dzieci będących członkami biblioteki (baza library). Interesuje nas imię, nazwisko, data urodzenia dziecka i adres zamieszkania dziecka. Napisz polecenie, które wyświetla listę dzieci będących członkami biblioteki (baza library). Interesuje nas imię, nazwisko, data urodzenia dziecka, adres zamieszkania dziecka oraz imię i nazwisko rodzica.

Łączenie tabeli samej ze sobą self join USE joindb SELECT a.buyer_id AS buyer, a.prod_id,b.buyer_id AS buyer2 FROM sales AS a JOIN sales AS b ON a.prod_id = b.prod_id WHERE a.buyer_id > b.buyer_id GO sales a buyer_id prod_id qty 4 2 7 4 2 00 sales b buyer_id prod_id qty 4 2 7 4 2 00 Result buyer 4 prod_id buyer2 2

Przykład Napisz polecenie, które wyświetla listę wszystkich kupujących te same produkty. USE joindb SELECT a.buyer_id AS buyer, a.prod_id,b.buyer_id AS buyer2 FROM sales AS a INNER JOIN sales AS b ON a.prod_id = b.prod_id

Przykłady Zmodyfikuj poprzedni przykład, tak aby zlikwidować duplikaty USE joindb SELECT a.buyer_id AS buyer, a.prod_id,b.buyer_id AS buyer2 FROM sales AS a JOIN sales AS b ON a.prod_id = b.prod_id WHERE a.buyer_id <> b.buyer_id USE joindb SELECT a.buyer_id AS buyer, a.prod_id,b.buyer_id AS buyer2 FROM sales AS a JOIN sales AS b ON a.prod_id = b.prod_id WHERE a.buyer_id < b.buyer_id

Przykłady Napisz polecenie, które pokazuje pary pracowników zajmujących to samo stanowisko. USE northwind SELECT a.employeeid, LEFT(a.lastname,0) AS name,left(a.title,0) AS title,b.employeeid, LEFT(b.lastname,0) AS name,left(b.title,0) AS title FROM employees AS a INNER JOIN employees AS b ON a.title = b.title WHERE a.employeeid < b.employeeid GO

Ćwiczenia Napisz polecenie, które wyświetla pracowników oraz ich podwładnych (baza northwind) Napisz polecenie, które wyświetla pracowników, którzy nie mają podwładnych (baza northwind) Napisz polecenie, które wyświetla adresy członków biblioteki, którzy mają dzieci urodzone przed stycznia 996 Napisz polecenie, które wyświetla adresy członków biblioteki, którzy mają dzieci urodzone przed stycznia 996. Interesują nas tylko adresy takich członków biblioteki, którzy aktualnie nie przetrzymują książek.

Łączenie kilku zbiorów wynikowych Użyj operatora UNION do tworzenia pojedynczego zbioru wynikowego z wielu zapytań Każde zapytanie musi mieć: Zgodne typy danych Taką samą liczbę kolumn Taki sam porządek kolumn w select-list USE northwind SELECT (firstname + ' ' + lastname) AS name,city, postalcode FROM employees UNION SELECT companyname, city, postalcode FROM customers GO

Ćwiczenie Napisz polecenie które zwraca imię i nazwisko (jako pojedynczą kolumnę name), oraz informacje o adresie: ulica, miasto, stan kod (jako pojedynczą kolumnę address) dla wszystkich dorosłych członków biblioteki Napisz polecenie, które zwraca: isbn, copy_no, on_loan, title, translation, cover, dla książek o isbn, 00 i 000. Wynik posortuj wg ISBN Napisz polecenie które zwraca o użytkownikach biblioteki o nr 20, 42, i 67 (dla każdego użytkownika: nr, imię i nazwisko członka biblioteki), oraz informację o zarezerwowanych książkach (isbn, data) Podaj listę członków biblioteki mieszkających w Arizonie (AZ) mają więcej niż dwoje dzieci zapisanych do biblioteki

Ćwiczenie Podaj listę członków biblioteki mieszkających w Arizonie (AZ) którzy mają więcej niż dwoje dzieci zapisanych do biblioteki oraz takich którzy mieszkają w Kaliforni (CA) i mają więcej niż troje dzieci zapisanych do biblioteki