X36DBS - Čtvrtek 7.30 - Zbyněk Lstibůrek - Výstup SQL příkazů> SQL>
SQL>
SQL> -- Seznam koncertů, na nichž bylo více než 100 diváků
SQL>
SQL> SELECT *
2 FROM Koncert
3 WHERE divaku > 100;

MISTO CAS VSTUPNE DIVAKU
Kostel sv. Antonína, Strossmayerovo nám. 02.02.2005 80 102

SQL>
SQL>
SQL> -- Seznam zpěváků, jejichž vedoucím je Alena Havlíková.
SQL>
SQL>
SQL> SELECT Zpevak.*
2 FROM Zpevak JOIN (
3 SELECT zkratka FROM Vedeni NATURAL JOIN Zpevak
4 WHERE jmeno='Alena' AND prijmeni='Havlíková'
5 ) ON hlas=zkratka;

RC JMENO PRIJMENI ADRESA TELEFON EMAIL HLAS
5953014321 Alena Havlíková       S
7263225148 Jana Rinkeová       S
7061135522 Pavla Kohlová       S
6457021234 Lenka Pašková       S

SQL>
SQL>
SQL> -- Stejné zadání jako předchozí, nyní s poddotazem v klauzuli WHERE.
SQL>
SQL> SELECT *
2 FROM Zpevak
3 WHERE hlas = (
4 SELECT zkratka FROM Vedeni NATURAL JOIN Zpevak
5 WHERE jmeno='Alena' AND prijmeni='Havlíková'
6 );

RC JMENO PRIJMENI ADRESA TELEFON EMAIL HLAS
5953014321 Alena Havlíková       S
7263225148 Jana Rinkeová       S
7061135522 Pavla Kohlová       S
6457021234 Lenka Pašková       S

SQL>
SQL>
SQL> -- Názvy všech skladeb A. Dvořáka v repertoiru.
SQL>
SQL> SELECT nazev
2 FROM Skladba NATURAL JOIN Autorstvi NATURAL JOIN Skladatel
3 WHERE jmeno='Antonín' AND prijmeni='Dvořák';

NAZEV
Mše D dur
Napadly písně
Hymnus

SQL>
SQL>
SQL> -- Seznam zpěváků, kteří nemají zapůjčeny šaty.
SQL>
SQL> SELECT * FROM Zpevak
2 MINUS
3 SELECT Zpevak.*
4 FROM Zpevak JOIN Zapujcka_satu
5 ON Zpevak.RC = Zapujcka_satu.RC;

RC JMENO PRIJMENI ADRESA TELEFON EMAIL HLAS
4951032446 Jiřina Zámostná       A
5901012681 Jan Havlík       B
7061135522 Pavla Kohlová       S

SQL>
SQL>
SQL> -- Stejné zadání jako předchozí, řešení pomocí poddotazu.
SQL>
SQL> SELECT *
2 FROM Zpevak
3 WHERE RC NOT IN (SELECT RC FROM Zapujcka_satu);

RC JMENO PRIJMENI ADRESA TELEFON EMAIL HLAS
7061135522 Pavla Kohlová       S
4951032446 Jiřina Zámostná       A
5901012681 Jan Havlík       B

SQL>
SQL>
SQL> -- Seznam dosud neprovedených skladeb (nebyly na programu žádného koncertu), včetně autorů.
SQL>
SQL> SELECT jmeno, prijmeni, nazev
2 FROM (
3 SELECT id, nazev FROM Skladba
4 MINUS
5 SELECT id, nazev FROM Skladba
6 NATURAL JOIN Cast_programu NATURAL JOIN Koncert
7 ) LEFT JOIN Autorstvi USING (id)
8 LEFT JOIN Skladatel USING(jmeno, prijmeni);

JMENO PRIJMENI NAZEV
Antonín Dvořák Napadly písně
Antonín Dvořák Hymnus
Johann Sebastian Bach Chorál
Wolfgang Amadeus Mozart Ave verum corpus
Franz Xaver Gruber Tichá noc
Martin Grobár Tichá noc
Jakub Jan Ryba Spi, spi, neviňátko
    Steel Away
    Nobody knows
    Ride the Chariot
    Soon Ah Will Be Done

11 rows selected.

SQL>
SQL>
SQL>
SQL> -- Seznam vícedílných skladeb.
SQL>
SQL> SELECT jmeno, prijmeni, nazev
2 FROM (SELECT * FROM Skladba WHERE id IN (SELECT id FROM Cast_skladby)
3 )LEFT JOIN Autorstvi USING (id)
4 LEFT JOIN Skladatel USING(jmeno, prijmeni);

JMENO PRIJMENI NAZEV
Antonín Dvořák Mše D dur
Bohuslav Martinů Čtyři písně o Marii
Jakub Jan Ryba Česká mše vánoční
Jan Hanuš Flos florum
Claude Debussy Trois chansons

SQL>
SQL>
SQL> -- Program koncertu 18. 1. 2005.
SQL>
SQL> ALTER Session SET NLS_DATE_FORMAT='DD.MM.YYYY';
Session altered.

SQL> SELECT jmeno, prijmeni, nazev
2 FROM Skladatel
3 JOIN Autorstvi using (jmeno, prijmeni)
4 JOIN Skladba using (id)
5 JOIN Cast_programu using (id)
6 JOIN Koncert using (misto, cas)
7 WHERE TRUNC(cas)=TRUNC(TO_DATE('18.01.2005'));

JMENO PRIJMENI NAZEV
Bohuslav Martinů Čtyři písně o Marii
Zdeněk Lukáš Už vedou Martina
Zdeněk Lukáš Na horách
Zdeněk Lukáš Pater noster
Bohuslav Martinů Čarování a pomluvy
Bohuslav Martinů Chceme my se chceme
Claude Debussy Trois chansons

7 rows selected.

SQL>
SQL>
SQL>
SQL> -- Seznam zpěváků se 100% docházkou.
SQL>
SQL> SELECT Zpevak.*
2 FROM Zpevak JOIN (
3 SELECT DISTINCT RC FROM Ucast
4 MINUS
5 SELECT DISTINCT RC FROM Ucast WHERE pritomen=0
6 ) Vzorni ON Zpevak.RC=Vzorni.RC;

RC JMENO PRIJMENI ADRESA TELEFON EMAIL HLAS
5561032947 Eva Janoušková       A
6508283452 Josef Prknař       B
6903034321 Oldřich Hrubý       B
7622263841 Michal Hospr       T

SQL>
SQL>
SQL> -- Stejný dotaz jako předchozí, tentokrát řešený poddotazem.
SQL>
SQL> SELECT *
2 FROM Zpevak
3 WHERE RC NOT IN (
4 SELECT RC FROM Ucast WHERE pritomen=0
5 );

RC JMENO PRIJMENI ADRESA TELEFON EMAIL HLAS
7622263841 Michal Hospr       T
6903034321 Oldřich Hrubý       B
5561032947 Eva Janoušková       A
6508283452 Josef Prknař       B

SQL>
SQL>
SQL> -- Opět stejný dotaz řešený vztaženým poddotazem.
SQL>
SQL> SELECT *
2 FROM Zpevak
3 WHERE NOT EXISTS (
4 SELECT * FROM Ucast WHERE pritomen=0 AND Ucast.RC=Zpevak.RC
5 );

RC JMENO PRIJMENI ADRESA TELEFON EMAIL HLAS
7622263841 Michal Hospr       T
6903034321 Oldřich Hrubý       B
5561032947 Eva Janoušková       A
6508283452 Josef Prknař       B

SQL>
SQL>
SQL> -- Seznam zpěváků, kteří nemají noty na Čtyři písně o Marii.
SQL>
SQL> SELECT jmeno, prijmeni FROM Zpevak
2 MINUS
3 SELECT jmeno, prijmeni FROM Zpevak
4 JOIN Zapujcka_not using (RC)
5 JOIN Publikace using (kat_cislo)
6 JOIN Zarazeni using (kat_cislo)
7 JOIN Skladba using (id)
8 WHERE nazev='Čtyři písně o Marii';

JMENO PRIJMENI
Jana Rinkeová
Karel Valtr
Stanislav Pulec

SQL>
SQL>
SQL> -- Skladatelé, kteří jsou autorem nějaké skladby a zároveň upravovatelem nějaké skladby.
SQL>
SQL> SELECT jmeno, prijmeni FROM Skladatel JOIN Autorstvi using (jmeno, prijmeni) WHERE je_uprava=0
2 INTERSECT
3 SELECT jmeno, prijmeni FROM Skladatel JOIN Autorstvi using (jmeno, prijmeni) WHERE je_uprava<>0;

JMENO PRIJMENI
Zdeněk Lukáš

SQL>
SQL>
SQL>
SQL> -- Seznam publikací, od kterých je v inventáři méně než pět exemplářů. První realizaci můžeme zjednodušit tak, vybereme ty publikace, kde existují jen exempláře s pořadovými čísly < 5.
SQL>
SQL> SELECT *
2 FROM Publikace A
3 WHERE NOT EXISTS (
4 SELECT * FROM Vytisk
5 WHERE A.kat_cislo=Vytisk.kat_cislo AND cislo_exemplare >= 5);

KAT_CISLO NAZEV_P VARIANTA POCET_STRAN
7 Napadly písně B  
6 Napadly písně T  

SQL>
SQL>
SQL> -- Stejný dotaz s použitím agregace, navíc bez výše použitého zjednodušeni.
SQL>
SQL> SELECT *
2 FROM Publikace
3 WHERE 5 > (SELECT COUNT(*) FROM Vytisk
4 WHERE Publikace.kat_cislo=Vytisk.kat_cislo);

KAT_CISLO NAZEV_P VARIANTA POCET_STRAN
6 Napadly písně T  
7 Napadly písně B  

SQL>
SQL>
SQL> -- Seznam publikací, které obsahují více než jednu skladbu.
SQL>
SQL> SELECT *
2 FROM Publikace NATURAL JOIN (
3 SELECT DISTINCT A.kat_cislo
4 FROM Zarazeni A JOIN Zarazeni B
5 ON A.kat_cislo=B.kat_cislo AND A.id < B.id
6 );

KAT_CISLO NAZEV_P VARIANTA POCET_STRAN
1 České lidové písně SATB  
2 Four Negro Spirituals SATB  
14 Sborová tvorba B. Martinů SATB  

SQL>
SQL>
SQL> -- Stejný dotaz přehledněji s agregací.
SQL>
SQL> SELECT *
2 FROM Publikace
3 WHERE 1 < (
4 SELECT COUNT(*) FROM Zarazeni
5 WHERE Zarazeni.kat_cislo=Publikace.kat_cislo
6 );

KAT_CISLO NAZEV_P VARIANTA POCET_STRAN
1 České lidové písně SATB  
2 Four Negro Spirituals SATB  
14 Sborová tvorba B. Martinů SATB  

SQL>
SQL>
SQL> -- Seznam zpěváků, kteří nikdy nezpívali žádnou skladbu Jana Hanuše.
SQL>
SQL> SELECT jmeno, prijmeni
2 FROM Zpevak
3 WHERE RC NOT IN (
4 SELECT RC FROM Ucast
5 WHERE (misto, cas) IN (
6 SELECT misto, cas
7 FROM Skladatel
8 JOIN Autorstvi using (jmeno, prijmeni)
9 JOIN Skladba using (id)
10 JOIN Cast_programu using (id)
11 JOIN Udalost using (misto, cas)
12 WHERE jmeno='Jan' AND prijmeni LIKE 'Hanuš'
13 )
14 AND pritomen <> 0
15 );

JMENO PRIJMENI
Stanislav Pulec

SQL>
SQL>
SQL> -- Seznam všech koncertů a generálek.
SQL>
SQL> SELECT cas, misto, 'Koncert' AS druh FROM Koncert
2 UNION
3 SELECT cas, misto, 'Generálka' AS druh FROM Zkouska WHERE je_generalka<>0
4 ORDER BY cas;

CAS MISTO DRUH
30.09.2004 Velká zkušebna Generálka
01.10.2004 Kostel sv. Antonína, Strossmayerovo nám. Koncert
02.10.2004 Sál Martinů, Malostranské nám. Koncert
21.10.2004 Velká zkušebna Generálka
22.10.2004 Kulturní dům Modřany Koncert
01.12.2004 Kostel sv. Mikuláše, Malostranské nám. Koncert
18.12.2004 Staroměstské náměstí Koncert
22.12.2004 Kostel sv. Martina ve zdi Koncert
17.01.2005 Velká zkušebna Generálka
18.01.2005 Městská knihovna, Mariánské náměstí Koncert
02.02.2005 Kostel sv. Antonína, Strossmayerovo nám. Koncert

11 rows selected.

SQL>
SQL>
SQL> -- Seznam koncertů, na nichž byly provedeny všechny skladby B. Martinů na repertoáru.
SQL>
SQL> SELECT misto, cas FROM Koncert
2 MINUS
3 SELECT misto, cas
4 FROM (SELECT id FROM Skladatel
5 JOIN Autorstvi using (jmeno, prijmeni)
6 JOIN Skladba using (id)
7 WHERE jmeno='Bohuslav' AND prijmeni='Martinů'
8 ) CROSS JOIN Koncert
9 WHERE (id, misto, cas) NOT IN (SELECT id, misto, cas
10 FROM Cast_programu);

MISTO CAS
Kostel sv. Antonína, Strossmayerovo nám. 02.02.2005
Městská knihovna, Mariánské náměstí 18.01.2005

SQL>
SQL>
SQL> -- Který zpěvák má největší z půjčených šatů?
SQL>
SQL> SELECT jmeno, prijmeni, velikost
2 FROM Zpevak
3 JOIN Zapujcka_satu using (RC)
4 JOIN Saty using (inv_cislo)
5 WHERE velikost=(SELECT MAX(velikost) FROM Saty NATURAL JOIN Zapujcka_satu);

JMENO PRIJMENI VELIKOST
Jindřich Hojer 57

SQL>
SQL>
SQL> -- Přehled účasti na zkouškách (v procentech).
SQL>
SQL> SELECT jmeno, prijmeni,
2 CAST((SELECT COUNT(*) FROM Ucast NATURAL JOIN Zkouska
3 WHERE Zpevak.RC=Ucast.RC AND pritomen<>0)
4 AS REAL)
5 /(SELECT COUNT(*) FROM Ucast NATURAL JOIN Zkouska
6 WHERE Zpevak.RC=Ucast.RC
7 )*100 || ' %' AS dochazka
8 FROM Zpevak ORDER BY prijmeni;

JMENO PRIJMENI DOCHAZKA
Jaroslav Doubek 90 %
Jan Havlík 95 %
Alena Havlíková 90 %
Jindřich Hojer 95 %
Irena Horová 95 %
Michal Hospr 100 %
Oldřich Hrubý 100 %
Eva Janoušková 100 %
Pavla Kohlová 95 %
Kateřina Orlová 90 %
Lenka Pašková 95 %
Josef Prknař 100 %
Stanislav Pulec 70 %
Jana Rinkeová 90 %
Karel Valtr 85 %
Jiřina Zámostná 95 %

16 rows selected.

SQL>
SQL>
SQL> -- Seznam hlasových skupin: název, počet členů, jméno vedoucího.
SQL>
SQL> SELECT nazev_h,
2 poc_clenu,
3 jmeno || ' ' || prijmeni AS vedouci
4 FROM (
5 SELECT zkratka, nazev_h, COUNT(RC) AS poc_clenu
6 FROM Hlas LEFT JOIN Zpevak ON Hlas.zkratka=Zpevak.hlas
7 GROUP BY zkratka, nazev_h
8 )
9 LEFT JOIN Vedeni USING(zkratka) LEFT JOIN Zpevak USING(RC);

NAZEV_H POC_CLENU VEDOUCI
Kontratenor 0  
Tenor 4 Jaroslav Doubek
Bas 4 Oldřich Hrubý
Soprán 4 Alena Havlíková
Alt 4 Kateřina Orlová

SQL>
SQL>
SQL> -- Seznam míst, na kterých se koncertovalo vícekrát a vždy bylo přítomno více než 50 diváků.
SQL>
SQL> SELECT misto, count(misto) AS pocet_koncertu, AVG(divaku) AS prum_divaku
2 FROM Koncert
3 WHERE divaku > 50
4 GROUP BY misto
5 HAVING count(misto) > 1;

MISTO POCET_KONCERTU PRUM_DIVAKU
Kostel sv. Antonína, Strossmayerovo nám. 2 83

SQL>
SQL>
SQL> -- Skladatel nejvíce zastoupený na koncertech co do počtu skladeb.
SQL>
SQL> --Využívám pohled rating_skladatelu:
SQL> SELECT jmeno, prijmeni, pocet
2 FROM Rating_skladatelu
3 WHERE pocet = (SELECT MAX(pocet) FROM Rating_skladatelu);

JMENO PRIJMENI POCET
Bohuslav Martinů 6

SQL>
SQL>
SQL> -- Pro divácky nejúspěšnější koncert určit rozdíl ceny vstupného od průměru.
SQL>
SQL> SELECT (
2 SELECT vstupne FROM Koncert
3 WHERE divaku = (
4 SELECT max(divaku) FROM Koncert
5 )
6 ) - (
7 SELECT AVG(vstupne) FROM Koncert
8 )
9 AS odchylka FROM Dual;

ODCHYLKA
10

SQL>
SQL>
SQL>
SQL> -- Skladatelé, kteří se mohli během života setkat s Bohuslavem Martinů.
SQL>
SQL> SELECT * FROM skladatel
2 WHERE rok_narozeni < (SELECT rok_umrti FROM skladatel
3 WHERE jmeno='Bohuslav' AND prijmeni='Martinů')
4 AND rok_umrti > (SELECT rok_narozeni FROM skladatel
5 WHERE jmeno='Bohuslav' AND prijmeni='Martinů');

JMENO PRIJMENI ROK_NAROZENI ROK_UMRTI
Antonín Dvořák 1841 1904
Bohuslav Martinů 1890 1959
Jan Hanuš 1905 2004
Claude Debussy 1862 1918

SQL>
SQL>
SQL> -- Seznam skladatelů, jejichž skladby byly na programu koncertů s nadprůměrnou návštěvou.
SQL>
SQL> SELECT DISTINCT jmeno, prijmeni
2 FROM skladatel
3 JOIN autorstvi using (jmeno, prijmeni)
4 JOIN skladba using (id)
5 JOIN cast_programu using (id)
6 JOIN koncert using (misto, cas)
7 WHERE divaku > (SELECT AVG(divaku) FROM koncert);

JMENO PRIJMENI
Jan Hanuš
Antonín Dvořák
Bohuslav Martinů

SQL>
SQL>
SQL> -- Koncert, na němž bylo uvedeno nejvíce různých skladeb.
SQL>
SQL> SELECT *
2 FROM (
3 SELECT misto, cas, COUNT(*) AS pocet
4 FROM cast_programu NATURAL JOIN koncert
5 GROUP BY misto, cas
6 ) WHERE pocet = (
7 SELECT MAX(pocet) FROM (
8 SELECT COUNT(*) AS pocet
9 FROM cast_programu NATURAL JOIN koncert
10 GROUP BY misto, cas
11 )
12 );

MISTO CAS POCET
Městská knihovna, Mariánské náměstí 18.01.2005 7

SQL>
SQL>
SQL> -- Přehled ošacení - všichni zpěváci a jejich šaty, zároveň všechny šaty a jejich držitelé.
SQL>
SQL> SELECT
2 COALESCE(prijmeni, 'VOLNÉ') AS drzitel,
3 inv_cislo, velikost
4 FROM Zpevak LEFT JOIN Zapujcka_satu USING(RC)
5 FULL JOIN Saty USING(inv_cislo);

DRZITEL INV_CISLO VELIKOST
Doubek 1 55
Hospr 2 55
Hojer 5 57
Havlíková 6 42
Rinkeová 7 43
Pašková 8 46
Orlová 9 46
Horová 10 48
Valtr 11 52
Hrubý 12 52
Prknař 14 56
Janoušková 15 44
Pulec 17 56
Kohlová    
Zámostná    
Havlík    
VOLNÉ 3 55
VOLNÉ 18 50
VOLNÉ 4 57
VOLNÉ 16 49
VOLNÉ 13 50

21 rows selected.

SQL>
SQL>
SQL> -- Skladatelé a počet uvedení jejich skladeb
SQL>
SQL> CREATE OR REPLACE VIEW rating_skladatelu AS
2 SELECT jmeno, prijmeni, count(*) AS pocet
3 FROM Skladatel
4 JOIN Autorstvi using (jmeno, prijmeni)
5 JOIN Skladba using (id)
6 JOIN Cast_programu using (id)
7 JOIN Koncert using (misto, cas)
8 GROUP BY jmeno, prijmeni;
View created.

SQL>
SQL> select * from rating_skladatelu;

JMENO PRIJMENI POCET
Jan Hanuš 2
Claude Debussy 1
Zdeněk Lukáš 3
Antonín Dvořák 2
Bohuslav Martinů 6
Jakub Jan Ryba 2

6 rows selected.

SQL>
SQL>
SQL> -- Vytvoříme redundantní tabulku ucasti_zpeváků, kde budou předpočítané hodnoty). Tuto tabulku naplníme daty. Atribut koef vyjadruje koeficient (ponechme stranou, co to znamená).
SQL>
SQL> drop table ucasti_zpevaku;
Table dropped.

SQL>
SQL> create table ucasti_zpevaku (
2 rc number(10),
3 jmeno varchar2(30),
4 prijmeni varchar2(30),
5 zkousek number(4),
6 koncertu number(4),
7 koef number(1));
Table created.

SQL>
SQL>
SQL> insert into ucasti_zpevaku
2 SELECT rc, jmeno, prijmeni,
3 (SELECT COUNT(*) FROM Ucast NATURAL JOIN Zkouska
4 WHERE Zpevak.RC=Ucast.RC AND pritomen<>0)
5 as zkousek,
6 (SELECT COUNT(*) FROM Ucast NATURAL JOIN Koncert
7 WHERE Zpevak.RC=Ucast.RC AND pritomen<>0)
8 as koncertu,
9 0 as koef
10 FROM Zpevak ORDER BY prijmeni;
16 rows created.

SQL>
SQL> commit;
Commit complete.

SQL>
SQL> select * from ucasti_zpevaku;

RC JMENO PRIJMENI ZKOUSEK KONCERTU KOEF
6706062648 Jaroslav Doubek 18 8 0
5901012681 Jan Havlík 19 8 0
5953014321 Alena Havlíková 18 7 0
5402022234 Jindřich Hojer 19 8 0
6958216542 Irena Horová 19 8 0
7622263841 Michal Hospr 20 8 0
6903034321 Oldřich Hrubý 20 8 0
5561032947 Eva Janoušková 17 8 0
7061135522 Pavla Kohlová 19 8 0
6555151278 Kateřina Orlová 18 8 0
6457021234 Lenka Pašková 19 7 0
6508283452 Josef Prknař 8 4 0
7711124554 Stanislav Pulec 14 6 0
7263225148 Jana Rinkeová 18 8 0
7007073737 Karel Valtr 17 8 0
4951032446 Jiřina Zámostná 19 8 0

16 rows selected.

SQL>
SQL>
SQL> drop table ucasti_zpevaku;
Table dropped.

SQL>
SQL> create table UCASTI_ZPEVAKU as
2 SELECT rc, jmeno, prijmeni,
3 (SELECT COUNT(*) FROM Ucast NATURAL JOIN Zkouska
4 WHERE Zpevak.RC=Ucast.RC AND pritomen<>0)
5 as zkousek,
6 (SELECT COUNT(*) FROM Ucast NATURAL JOIN Koncert
7 WHERE Zpevak.RC=Ucast.RC AND pritomen<>0)
8 as koncertu,
9 0 as koef
10 FROM Zpevak ORDER BY prijmeni;
Table created.

SQL>
SQL> select * from ucasti_zpevaku;

RC JMENO PRIJMENI ZKOUSEK KONCERTU KOEF
6706062648 Jaroslav Doubek 18 8 0
5901012681 Jan Havlík 19 8 0
5953014321 Alena Havlíková 18 7 0
5402022234 Jindřich Hojer 19 8 0
6958216542 Irena Horová 19 8 0
7622263841 Michal Hospr 20 8 0
6903034321 Oldřich Hrubý 20 8 0
5561032947 Eva Janoušková 17 8 0
7061135522 Pavla Kohlová 19 8 0
6555151278 Kateřina Orlová 18 8 0
6457021234 Lenka Pašková 19 7 0
6508283452 Josef Prknař 8 4 0
7711124554 Stanislav Pulec 14 6 0
7263225148 Jana Rinkeová 18 8 0
7007073737 Karel Valtr 17 8 0
4951032446 Jiřina Zámostná 19 8 0

16 rows selected.

SQL>
SQL>
SQL> -- Zpěvákům, kteří zpívají alt nastavíme v relaci ucasti_zpevaku hodnotu atributu koef tak, že vyjadřuje počet jimi zapůjčených výtisků not.
SQL>
SQL> update ucasti_zpevaku u
2 set koef =
3 (select count(*)
4 from zapujcka_not z
5 where u.rc = z.rc)
6 where u.rc in (select rc from zpevak where hlas = 'A');
4 rows updated.

SQL>
SQL> commit;
Commit complete.

SQL>
SQL>
SQL> -- Z tabulky ucasti_zpevaku vymažeme ty zpěváky, kteří zpívají basy.
SQL>
SQL> delete from ucasti_zpevaku
2 where rc in (select rc from zpevak where hlas = 'B');
4 rows deleted.

SQL>
SQL> commit;
Commit complete.

SQL>
SQL>
SQL> set markup html off
SQL> spool off