PODZAPYTANIE (SUBSELECT)

Podobne dokumenty
3. Podzapytania, łączenie tabel i zapytań

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

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

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

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ę

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

Wprowadzenie do języka SQL

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

Grupowanie i funkcje agregacji

Relacyjne bazy danych. Podstawy SQL

Podstawy języka SQL cz. 2

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

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

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

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

Relacyjne bazy danych. Podstawy SQL

SQL (ang. Structured Query Language)

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

Podstawowe zapytania SELECT (na jednej tabeli)

Wymagania: Konstrukcja prostych zapytań w języku SQL, umiejętność wykorzystania funkcji wierszowych i agregujących.

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

Paweł Rajba

Grupowanie i funkcje agregujące

Laboratorium Bazy danych SQL 3 1

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

Technologie baz danych

Systemy GIS Tworzenie zapytań w bazach danych

Język SQL. Rozdział 2. Proste zapytania

Autor: Joanna Karwowska

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

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

Podzapytania. Podzapytania nieskorelowane i skorelowane

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

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

ACESS- zadania z wykorzystaniem poleceń SQL

Wykład 5. SQL praca z tabelami 2

Microsoft SQL Server Podstawy T-SQL

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

Zadania z SQLa (MS SQL Server)

Przestrzenne bazy danych Podstawy języka SQL

SQL Structured Query Language

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

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

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

Technologie baz danych

Ćwiczenie zapytań języka bazy danych PostgreSQL

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

Oracle11g: Wprowadzenie do SQL

Podyplomowe Studia Systemy informatyczne w logistyce

Autor: Joanna Karwowska

SQL praca z tabelami 4. Wykład 7

BAZY DANYCH. Anomalie. Rozkład relacji i normalizacja. Wady redundancji

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

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

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

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

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

Autor: Joanna Karwowska

Wykład 8. SQL praca z tabelami 5

Lista zadań nr Wyświetlić imię i nazwisko dla każdego pracownika z departamentu DEP T NO o numerze 000.

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

Bazy danych. dr inż. Arkadiusz Mirakowski

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

SQL do zaawansowanych analiz danych część 1.

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

Podstawy języka SQL -

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

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

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

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

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

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

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

E.14 Bazy Danych cz. 14 SQL Podzapytania

Bazy danych. Plan wykładu. Zalenoci funkcyjne. Wykład 4: Relacyjny model danych - zalenoci funkcyjne. SQL - podzapytania A B

Materiały szkoleniowe. Podstawy języka SQL

Dominik Szydłowski. v

Widok Connections po utworzeniu połączenia. Obszar roboczy

Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach

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

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

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

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

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

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

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

Wprowadzenie do baz danych

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

Bazy danych wykład trzeci. Konrad Zdanowski

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

Bazy Danych i Usługi Sieciowe

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

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

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

Plan wykładu. Elementy ERD BAZY DANYCH. Proces modelowania i implementacji bazy danych. Diagramy związków encji. SQL podzapytania

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

Klasyczna Analiza Danych

Obliczenia arytmetyczne. Konkatenacja pól. Aliasy kolumn. Aliasy tabel. Co dalej? Rozdział 4. Korzystanie z funkcji. Zastosowanie funkcji

Zarzadzanie transakcjami. Transakcje

Transkrypt:

2. Podzapytania PODZAPYTANIE (SUBSELECT) oddzielna, ujęta w nawiasy instrukcja SELECT, zagnieżdżona w innej instrukcji SQL, zazwyczaj w instrukcji SELECT W instrukcji SELECT, podzapytanie może być umieszczone w klauzuli: o WHERE, HAVING (jako część warunku logicznego) o SELECT (podzapytanie musi wówczas zwracać dokładnie jedną wartość) o FROM (pełni rolę źródła danych) o ORDER BY (musi zwracać dokładnie jedną wartość) o Niektóre serwery (MySQL, Firebird) pozwalają umieścić podzapytanie w klauzuli GROUP BY (takie podzapytanie musi zwracać dokładnie jedną wartość) a. PODZAPYTANIA PROSTE podzapytanie proste jest wykonywane jako pierwsze, jego wynik jest zapamiętany i przekazany do zewnętrznego zapytania (podzapytania można zagnieżdżać wielokrotnie) jako wynik zazwyczaj zwraca tabelę jednokolumnową (wyjątkiem jest wykorzystanie operatora EXISTS lub umieszczenie podzapytania w klauzuli FROM) podzapytanie proste w klauzuli WHERE lub HAVING SELECT lista wyrażeń FROM lista tabel WHERE wyrażenie operator (SELECT wyrażenie FROM...)

SELECT lista wyrażeń FROM lista tabel GROUP BY lista wyrażeń HAVING wyrażenie operator (SELECT wyrażenie FROM...) SELECT full_name, salary, dept_no WHERE salary=(select MAX(salary) ) SELECT * WHERE job_country IN(SELECT country FROM country WHERE LOWER(currency) LIKE %dollar% ) SELECT * WHERE job_country = USA AND salary<=all(select salary WHERE job_country = USA ) SELECT COUNT(*), dept_no GROUP BY dept_no HAVING COUNT(*)>=ALL(SELECT COUNT(*) GROUP BY dept_no)

operatory: operator relacji (<, >, =,!=, <>,<=,>=), jeżeli podzapytanie zwraca dokładnie jedną wartość operator relacji (<, >, =,!=, <>,<=,>=), w połączeniu z jednym z poniższych słów kluczowych, jeżeli podzapytanie zwraca wiele wartości (lub może zwrócić wiele wartości): ANY warunek jest spełniony, gdy wartość zwrócona przez podzapytanie jest w relacji z przynajmniej jedną z wartości podzapytania ALL gdy wartość jest w relacji ze wszystkimi wartościami zwróconymi przez podzapytanie IN / NOT IN BETWEEN / NOT BETWEEN b. PODZAPYTANIA SKORELOWANE wartość z zapytania zewnętrznego jest przekazywana jako parametr do podzapytania, które posiada (najczęściej) w klauzuli WHERE warunek skorelowania określający, jak mają być połączone podzapytanie z zapytaniem zewnętrznym; często wymaga użycia aliasów nazw tabel, aby odróżnić kolumny z podzapytania i zapytania głównego; podzapytanie jest wykonywane dla każdego wiersza zapytania głównego wartość podzapytania jest wyznaczana na podstawie wartości parametru pobranego z zapytania zewnętrznego;

podzapytanie skorelowane w klauzulach WHERE lub HAVING: wynik zwrócony przez podzapytanie pozwala określić, jaki ostatecznie zbiór rekordów zwróci zapytanie zewnętrzne; w podzapytaniu skorelowanym często wykorzystuje się predykat EXISTS (przyjmuje wartość prawdy, gdy podzapytanie zwróci przynajmniej jeden wiersz) jeżeli używamy EXISTS, to podzapytanie może zwracać cały wiersz danych SELECT full_name, salary, dept_no e1 WHERE salary= (SELECT MAX(salary) e2 WHERE e1.dept_no=e2.dept_no) SELECT COUNT(*) e WHERE EXISTS(SELECT * FROM department d WHERE mngr_no IS NULL AND d.dept_no=e.dept_no)

c) PODZAPYTANIA w klauzuli SELECT Podzapytanie w klauzuli SELECT musi zwracać dokładnie jedną wartość. Często podzapytanie skorelowane. SELECT full_name, salary, (SELECT AVG(salary) SELECT full_name as pracownik, ) (SELECT full_name WHERE emp_no=(select mngr_no WHERE dept_no= 600 FROM department d WHERE d.dept_no=e.dept_no) ) as szef e WHERE e.full_name= Nelson, Robert d) PODZAPYTANIA w klauzuli FROM Podzapytanie zwraca zestaw rekordów, który jest źródłem danych dla zapytania zewnętrznego. Aby odwołać się do kolumn z podzapytania, należy nadać alias całej tabeli zwróconej przez podzapytanie. Jeżeli podzapytanie zwraca np. funkcje agregacji, wyrażenia, to należy nadać im aliasy.

SELECT ile, dept_no FROM (SELECT count(*) as ile, dept_no GROUP BY dept_no) as tab1 WHERE ile <=3 SELECT MAX(ile) FROM (SELECT count(*) as ile GROUP BY dept_no) as tab1 d) PODZAPYTANIA w klauzuli ORDER BY umożliwiają sortowanie zgodnie z wartościami zwróconymi przez podzapytanie (dla jednego wiersza zapytania głównego powinna być tylko jedna wartość zwrócona przez podzapytanie) SELECT dept_no, full_name, (SELECT count(*) e2 WHERE e1.dept_no=e2.dept_no) e1 ORDER BY (SELECT count(*) e2 WHERE e1.dept_no=e2.dept_no) lub SELECT dept_no, full_name, (SELECT count(*) e2 WHERE e1.dept_no=e2.dept_no) e1 ORDER BY 3