Содержание

Слайд 2

Příklad

Jak zjistit, kdo má plat nižší než Aleš Charvát

?

?

?

?

?

Jaký má Aleš Charvát

Příklad Jak zjistit, kdo má plat nižší než Aleš Charvát ? ?
plat?

STRANA

Слайд 3

Příklad

Ukázka vnořeného nezávislého poddotazu:

Vyber zaměstnance, kteří mají plat <

Jaký plat má Aleš

Příklad Ukázka vnořeného nezávislého poddotazu: Vyber zaměstnance, kteří mají plat Jaký plat
Charvát?

SELECT jmeno, prijmeni, pozice FROM zamestnanci WHERE zakladni_plat <

(SELECT zakladni_plat FROM zamestnanci WHERE jmeno='Ales' AND prijmeni='Charvat');

STRANA

Слайд 4

Jednořádkové operátory

Poddotaz musí vrátit přesně jednu hodnotu

STRANA

Jednořádkové operátory Poddotaz musí vrátit přesně jednu hodnotu STRANA

Слайд 5

Cvičení

Kolik zaměstnanců pracuje v účtárně?

STRANA

SELECT COUNT(*)
FROM zamestnanci
WHERE oddeleni =
(SELECT oddeleni_id

Cvičení Kolik zaměstnanců pracuje v účtárně? STRANA SELECT COUNT(*) FROM zamestnanci WHERE
FROM oddeleni
WHERE jmeno_odd = 'UCTARNA');

Слайд 6

Cvičení

STRANA

Vypište seznam zaměstnanců, kteří pracují v oddělení ‘VYROBNA 1’. Výsledek setřiďte

Cvičení STRANA Vypište seznam zaměstnanců, kteří pracují v oddělení ‘VYROBNA 1’. Výsledek
podle příjmení a jména.

SELECT prijmeni, jmeno
FROM zamestnanci
WHERE oddeleni =
(SELECT oddeleni_id
FROM oddeleni
WHERE jmeno_odd = 'VYROBNA 1')
ORDER BY prijmeni, jmeno;

Слайд 7

Cvičení

Kteří zaměstnanci mají plat nižší než je průměrný plat ve firmě?

STRANA

SELECT

Cvičení Kteří zaměstnanci mají plat nižší než je průměrný plat ve firmě?
prijmeni, jmeno, pozice
FROM zamestnanci
WHERE zakladni_plat <
(SELECT AVG (zakladni_plat)
FROM zamestnanci);

Слайд 8

Cvičení

Kteří zaměstnanci pracují ve firmě déle než Aleš Charvát?

STRANA

SELECT prijmeni, jmeno,

Cvičení Kteří zaměstnanci pracují ve firmě déle než Aleš Charvát? STRANA SELECT
pozice
FROM zamestnanci
WHERE datum_nastupu <
(SELECT datum_nastupu
FROM zamestnanci
WHERE jmeno = 'Ales' AND prijmeni = 'Charvat');

Слайд 9

Typy poddotazů

Jednořádkové poddotazy

Víceřádkové poddotazy

20000

Manager
Senior Developer
Junior Developer

Vícesloupcové poddotazy

Manager 45000
Tester 24000

Typy poddotazů Jednořádkové poddotazy Víceřádkové poddotazy 20000 Manager Senior Developer Junior Developer

Слайд 10

Víceřádkové operátory

Pro poddotazy, které vrací více seznam hodnot je třeba použít víceřádkové

Víceřádkové operátory Pro poddotazy, které vrací více seznam hodnot je třeba použít víceřádkové operátory STRANA
operátory

STRANA

Слайд 11

IN

Příklad:
Vypište zaměstnance, kteří pracují v Praze

Kteří zaměstnanci pracují v těchto odděleních:

SELECT jmeno,

IN Příklad: Vypište zaměstnance, kteří pracují v Praze Kteří zaměstnanci pracují v
prijmeni, pozice FROM zamestnanci WHERE oddeleni IN

(SELECT oddeleni_id FROM oddeleni WHERE lokalita=‘Praha’);

Která oddělení jsou v Praze?

STRANA

Слайд 12

ANY

Příklad
Kteří zaměstnanci nastoupili ve stejný den spolu s některou z cukrářek

SELECT

ANY Příklad Kteří zaměstnanci nastoupili ve stejný den spolu s některou z
zamestnanec_id, prijmeni, pozice
FROM zamestnanci
WHERE datum_nastupu = ANY
(SELECT datum_nastupu
FROM zamestnanci
WHERE pozice = 'Cukrarka')
AND pozice <> 'Cukrarka';

STRANA

Слайд 13

ALL

Příklad
Vypište zaměstnance, kteří mají plat vyšší než je průměrný plat na všech

ALL Příklad Vypište zaměstnance, kteří mají plat vyšší než je průměrný plat
odděleních

SELECT zamestnanec_id, prijmeni, pozice
FROM zamestnanci
WHERE zakladni_plat > ALL
(SELECT AVG(zakladni_plat)
FROM zamestnanci
GROUP BY oddeleni);

STRANA

Слайд 14

Cvičení

Vypište jména manažerů oddělení, které sídlí v Praze.
Kteří zaměstnanci nedostali v roce

Cvičení Vypište jména manažerů oddělení, které sídlí v Praze. Kteří zaměstnanci nedostali
2003 žádné prémie?
7. Vyberte zaměstnance, kteří po dobu svého pracovního poměru byli odměněni alespoň dvakrát.

STRANA

Слайд 15

Vypište jména manažerů oddělení, které sídlí v Praze.

STRANA

SELECT jmeno, prijmeni
FROM zamestnanci
WHERE

Vypište jména manažerů oddělení, které sídlí v Praze. STRANA SELECT jmeno, prijmeni
zamestnanec_id IN
(SELECT manager_id
FROM oddeleni
WHERE lokalita = 'PRAHA');

Слайд 16

Kteří zaměstnanci nedostali v roce 2003 žádné prémie?

STRANA

SELECT jmeno, prijmeni
FROM zamestnanci
WHERE

Kteří zaměstnanci nedostali v roce 2003 žádné prémie? STRANA SELECT jmeno, prijmeni
zamestnanec_id NOT IN
(SELECT id_zamestnance
FROM platy
WHERE rok = 2003
GROUP BY id_zamestnance
HAVING SUM(premie) > 0);