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

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

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

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

Grupowanie danych klauzula GROUP BY

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

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

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

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

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

Łączenie wyników zapytań w SQL

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

Transakcje inf. podstawowe

PODZAPYTANIE (SUBSELECT)

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

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

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

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel

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

SQL (ang. Structured Query Language)

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

3. Podzapytania, łączenie tabel i zapytań

Grupowanie i funkcje agregacji

Podstawowe zapytania SELECT (na jednej tabeli)

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

Plan wykładu BAZY DANYCH II WYKŁAD 4. Co to jest kursor? Rodzaje kursorów

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

Podstawy języka SQL -

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

Paweł Rajba

Relacyjne bazy danych. Podstawy SQL

Podyplomowe Studia Systemy informatyczne w logistyce

Autor: Joanna Karwowska

Autor: Joanna Karwowska

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

Systemy GIS Tworzenie zapytań w bazach danych

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

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Podstawowe funkcje dodatku linq w C#

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

Grupowanie i funkcje agregujące

Gdzie jest moja tabela?

Dominik Szydłowski. v

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

Wprowadzenie do języka SQL

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

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

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

Laboratorium Bazy danych SQL 3 1

Wykład 8. SQL praca z tabelami 5

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

Podobnie jak wywołania funkcji w innych funkcjach, zapytania możemy zagnieżdżać w innych zapytaniach. Podzapytanie musi zostać zapisane w nawiasie.

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

Relacyjne bazy danych. Podstawy SQL

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

Bazy danych. Informacje podstawowe

E.14 Bazy Danych cz. 14 SQL Podzapytania

Wykład 6. SQL praca z tabelami 3

Bazy danych. dr inż. Arkadiusz Mirakowski

Bazy danych SQL Server 2005

Przykład powyżej pokazuje, że w zapytaniu można umieszczać funkcje zarówno zdefiniowane w ramach środowiska, jak również własne.

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

Autor: Joanna Karwowska

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

Zarzadzanie transakcjami. Transakcje

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

Ćwiczenie zapytań języka bazy danych PostgreSQL

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

Podzapytania. Podzapytania nieskorelowane i skorelowane

Tabela SPRZEDAŻ WYCIECZEK

Zadania z SQLa (MS SQL Server)

Język SQL. Rozdział 2. Proste zapytania

SELECT uŝywane jest do selekcji danych z tabeli. Wynik zapisany jest w postaci tabeli (result-set).

Podstawy języka SQL cz. 2

Wykład XII. optymalizacja w relacyjnych bazach danych

ACESS- zadania z wykorzystaniem poleceń SQL

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

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

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

Zapytania z ograniczeniem czasowym w Oracle

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

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

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

Bazy Danych II. Ćwiczenia

Język SQL w Delphi. 1. Kwerendy Przygotowanie do ćwiczenia Komenda SELECT

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

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

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

Wprowadzenie do SQL TEMAT 3 - Zadania dodatkowe

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

Pony ORM. Dominik Kozaczko, PyWaw #73

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

Technologie baz danych

SQL Structured Query Language

Oracle11g: Wprowadzenie do SQL

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

Współczesne systemy baz danych

STROJENIE PRZETWARZAŃ SAS

Język SQL. Rozdział 8. Język manipulowania danymi DML

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

Język SQL podstawy zapytań

Transkrypt:

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

Podzapytania do tabel W miejscu w którym możemy użyć nazwy tabeli, możemy użyć podzapytania SELECT T.orderid, T.customerid FROM ( SELECT orderid, customerid FROM orders ) AS T GO

Podzapytanie jako wyrażenie Podzapytanie zwraca pojedynczą wartość Podzapytanie może być traktowane jako wyrażenie może pojawić się na liście polecenia select SELECT productname, price,( SELECT AVG(price) FROM products) AS average,price-(select AVG(price) FROM products) AS difference FROM products UWAGA: Podzapytanie jest wykowane tylko raz

Podzapytanie w warunku Podzapytanie może być użyte w warunku SELECT productname, price,( SELECT AVG(unitprice) FROM products) AS average,unitprice-(select AVG(price) FROM products) AS difference FROM products WHERE unitprice > ( SELECT AVG(unitprice) FROM products) UWAGA: Podzapytanie jest wykowane tylko raz

Podzapytania skorelowane Zewnętrzne zapytanie przekazuje dane do zapytania wenętrznego SELECT productname, unitprice,( SELECT AVG(unitprice) FROM products as p_wew WHERE p_zew.categoryid = p_wew.categoryid ) AS average FROM products as p_zew Zapytanie wewnętrzne wykorzystuje te dane od wygenerowania wyniku Zapytanie wewnętrzne zwraca ten wynik do zapytania zewnętrznego Proces jest powtarzany dla każdego wiersza zapytania wewnętrznego Back to Step 1

Podzapytania skorelowane w warunku Użycie podzapytania skorelowanego w warunku SELECT productname, price,( SELECT AVG(price) FROM products as p_wew WHERE p_zew.category_id = p_wew.categoryid ) AS average FROM products as p_zewn WHERE price > ( SELECT AVG(price) FROM products as p_wew WHERE p_zew.category_id = p_wew.categoryid )

Podzapytania skorelowane Dla każdego produktu podaj maksymalną liczbę zamówionych jednostek SELECT DISTINCT productid, quantity FROM [order details] AS ord1 WHERE quantity = ( SELECT MAX(quantity) FROM [order details] AS ord2 WHERE ord1.productid = ord2.productid ) ORDER BY productid

To samo przy użyciu GROUP BY Dla każdego produktu podaj maksymalną liczbę zamówionych jednostek select productid, max(quantity) from [order details] group by productid order by productid

Operatory EXISTS, NOT EXISTS Zewnętrzne zapytanie testuje wystąpienie (lub nie) zbioru wynikowego określonego przez zapytanie wewnętrzne zapytanie wewnętrzne zwraca TRUE lub FALSE SELECT lastname, employeeid FROM employees AS e WHERE EXISTS (SELECT * FROM orders AS o WHERE e.employeeid = o.employeeid AND o.orderdate = '9/5/97') GO Zapytanie zwraca listę wszystkich pracowników którzy obsłużyli zamówienie '9/5/97'

EXISTS vs JOIN podzapytanie SELECT lastname, employeeid FROM employees AS e WHERE EXISTS (SELECT * FROM orders AS o WHERE e.employeeid = o.employeeid AND o.orderdate = '9/5/97') GO join SELECT DISTINCT lastname, e.employeeid FROM orders AS o INNER JOIN employees AS e ON o.employeeid = e.employeeid WHERE o.orderdate = '9/5/1997' GO

Operatory EXISTS, NOT EXISTS Zewnętrzne zapytanie testuje wystąpienie (lub nie) zbioru wynikowego określonego przez zapytanie wewnętrzne zapytanie wewnętrzne zwraca TRUE lub FALSE SELECT lastname, employeeid FROM employees AS e WHERE NOT EXISTS (SELECT * FROM orders AS o WHERE e.employeeid = o.employeeid AND o.orderdate = '9/5/97') GO Zapytanie zwraca listę wszystkich pracowników którzy nie obsłużyli zamówień '9/5/97'

Operatory IN, NOT IN Zewnętrzne zapytanie testuje wystąpienie elementu w zbiorze (na liście) wygenerowanym przez zapytanie wewnętrzne zapytanie wewnętrzne zwraca zbiór elementów SELECT lastname, employeeid FROM employees AS e WHERE employeeid IN (SELECT employeeid FROM orders AS o WHERE o.orderdate = '9/5/97') Zapytanie zwraca listę wszystkich pracowników którzy obsłużyli zamówienie '9/5/97'

JOIN vs EXISTS vs IN JOIN SELECT DISTINCT lastname, e.employeeid FROM orders AS o INNER JOIN employees AS e ON o.employeeid = e.employeeid WHERE o.orderdate = '9/5/1997' EXIST SELECT lastname, employeeid FROM employees AS e WHERE EXISTS (SELECT * FROM orders AS o WHERE e.employeeid = o.employeeid AND o.orderdate = '9/5/97') IN SELECT lastname, employeeid FROM employees AS e WHERE employeeid in (SELECT employeeid FROM orders AS o WHERE o.orderdate = '9/5/97')