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

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

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

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

Grupowanie danych klauzula GROUP BY

Zagadnienia podstawowe

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

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

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

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

Transakcje inf. podstawowe

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

Grupowanie i funkcje agregacji

Łączenie wyników zapytań w SQL

3. Podzapytania, łączenie tabel i zapytań

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

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

SQL (ang. Structured Query Language)

PODZAPYTANIE (SUBSELECT)

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

Paweł Rajba

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

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

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

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

Podyplomowe Studia Systemy informatyczne w logistyce

Podstawowe zapytania SELECT (na jednej tabeli)

Podstawy języka SQL cz. 2

Zarzadzanie transakcjami. Transakcje

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

Grupowanie i funkcje agregujące

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

Zadania z SQLa (MS SQL Server)

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

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

Bazy danych SQL Server 2005

Relacyjne bazy danych. Podstawy SQL

Systemy GIS Tworzenie zapytań w bazach danych

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

Bazy Danych II. Ćwiczenia

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

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

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

E.14 Bazy Danych cz. 14 SQL Podzapytania

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;

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

Lab.8: Podstawy języka SQL.

Autor: Joanna Karwowska

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

Bazy Danych i Usługi Sieciowe

Bazy danych. Informacje podstawowe

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Zbiór pytań nr 2. 1 Tabela DEPARTMENTS ma następującą strukturę:

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

Zapytania z ograniczeniem czasowym w Oracle

Wykład 6. SQL praca z tabelami 3

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

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

Autor: Joanna Karwowska

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

Autor: Joanna Karwowska

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

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

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

Wprowadzenie. Tworzenie widoków

Współczesne systemy baz danych

Bazy danych. dr inż. Arkadiusz Mirakowski

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

Pony ORM. Dominik Kozaczko, PyWaw #73

Podzapytania. Podzapytania nieskorelowane i skorelowane

ACESS- zadania z wykorzystaniem poleceń SQL

Wybór EUROPEAN będzie rozpoznawał dzień przed miesiącem, natomiast US miesiąc przed dniem.

Relacyjne bazy danych. Podstawy SQL

Ćwiczenie zapytań języka bazy danych PostgreSQL

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

Wykład 8. SQL praca z tabelami 5

SQL Structured Query Language

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

Współczesne systemy baz danych

Oracle11g: Wprowadzenie do SQL

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

Relacji między tabelami klucze obce. Schemat bazy danych, wczytanej z pliku create_tables.sql. Klucz obcy jako ograniczenie dla kolumny

Microsoft SQL Server Podstawy T-SQL

Pobieranie danych, czyli instrukcja SELECT

Language INtegrated Query (LINQ)

Technologie baz danych

SQL praca z tabelami 4. Wykład 7

Podstawy języka SQL -

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

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

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

Wprowadzenie do SQL TEMAT 3 - Zadania dodatkowe

Wprowadzenie do języka SQL

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

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

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

Dominik Szydłowski. v

Przestrzenne bazy danych Podstawy języka SQL

Transkrypt:

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

sales,fk1 stor_id ord_num,fk2,i1 title_id ord_date qty payterms employee em p_id I1 fname I1 minit I1 lname FK1 job_id job_lvl FK2 pub_id hire_date stores stor_id stor_name stor_address city state zip jobs job_id job_desc min_lvl max_lvl titleauthor,fk1,i1 au_id,fk2,i2 title_id au_ord royaltyper pub_info,fk1 pub_id logo pr_info authors au_id I1 au_lnam e I1 au_fnam e phone address city state zip contract titles title_id I1 title type FK1 pub_id price advance royalty ytd_sales notes pubdate publishers pub_id pub_name city state country roysched FK1,I1 title_id lorange hirange royalty discounts discounttype FK1 stor_id low qty highqty discount Pubs Database Diagram

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

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 USE pubs SELECT title, price,( SELECT AVG(price) FROM titles) AS average,price-(select AVG(price) FROM titles) AS difference FROM titles WHERE type='popular_comp'! UWAGA: Podzapytanie jest wykowane tylko raz

Podzapytania skorelowane Zewnętrzne zapytanie przekazuje dane dane do do zapytania wenętrznego Zapytanie wewnętrzne wykorzystuje USE northwind te te dane dane od od wygenerowania SELECT orderid, customerid wyniku FROM orders AS or1 WHERE 20 < (SELECT quantity FROM [order details] AS od WHERE or1.orderid = od.orderid AND od.productid = 23) Zapytanie wewnętrzne zwraca zwraca ten ten wynik wynik do do zapytania zewnętrznego Proces Proces jest jest powtarzany dla dla każdego wiersza zapytania wewnętrznego Back to to Step 1

Podzapytania skorelowane! Dla każdego produktu podaj maksymalną liczbę zamówionych jednostek USE northwind 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

Przykład! Podaj typy książek publikowane przez więcej niż jednego wydawcę USE pubs SELECT DISTINCT t1.type FROM titles AS t1 WHERE t1.type IN (SELECT t2.type FROM titles AS t2 WHERE t1.pub_id <> t2.pub_id)

Podzapytania vs złączenia! podzapytanie USE pubs SELECT DISTINCT t1.type FROM titles AS t1 WHERE t1.type IN (SELECT t2.type FROM titles AS t2 WHERE t1.pub_id <> t2.pub_id)! złączenie USE pubs SELECT DISTINCT t1.type FROM titles AS t1 INNER JOIN titles AS t2 ON t1.type = t2.type WHERE t1.pub_id <> t2.pub_id

Przykład! Podaj wszystkie tytuły których cena jest większa niż średnia cena ks~iążek tego samego typu

Podzapytania vs HAVING! podzapytanie USE pubs SELECT t1.type, t1.title, t1.price FROM titles AS t1 WHERE t1.price > ( SELECT AVG(t2.price) FROM titles AS t2 WHERE t1.type = t2.type )! to samo przy użyciu grupowania i operatora HAVING USE pubs SELECT t1.type, t1.title, t1.price FROM titles AS t1 INNER JOIN titles AS t2 ON t1.type = t2.type GROUP BY t1.type, t1.title, t1.price HAVING t1.price > AVG(t2.price)

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 USE northwind 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')! Zapytanie zwraca listę wszystkich pracowników którzy złożyli obsłużyli zamówienie '9/5/97'

EXISTS vs JOIN! podzapytanie USE northwind 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')! join USE northwind 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'