Řešení všech příkladů
SELECT JMENOL
FROM LOD
WHERE BARVA = 'zelena';
SELECT LTYP
FROM LOD
WHERE BARVA = 'modra';
SELECT UNIQUE LTYP
FROM LOD
WHERE BARVA = 'modra';
SELECT ZAKAZNIK.JMENOZ
FROM ZAKAZNIK JOIN REZERVACE USING(ZID)
JOIN LOD USING(LODID)
WHERE LOD.LTYP = 'parnik' AND
LOD.barva= 'ruzova';
SELECT UNIQUE Z.JMENOZ
FROM ZAKAZNIK Z JOIN REZERVACE R USING(ZID)
JOIN LOD L USING(LODID)
WHERE L.LTYP = 'parnik'AND
LOD.barva= 'ruzova';SELECT UNIQUE LTYP
FROM LOD L JOIN PLAVBA_S_PRUVODCEM PSP ON(L.LODID= PSP.LODID);
SELECT UNIQUE LTYP
FROM LOD L
WHERE EXISTS (SELECT 1
FROM PLAVBA_S_PRUVODCEM P
WHERE P.LODID = L.LODID);
SELECT UNIQUE LTYP
FROM LOD L
WHERE LODID IN (SELECT LODID
FROM PLAVBA_S_PRUVODCEM P);
SELECT L.*
FROM LOD L JOIN POKRYTI P ON (L.LODID = P.LODID)
INTERSECT
SELECT L.*
FROM LOD L JOIN PLAVBA_S_PRUVODCEM P
ON (L.LODID = P.LODID);
SELECT L.*
FROM LOD L
WHERE L.LODID IN (SELECT LODID
FROM POKRYTI P)
INTERSECT
SELECT L.*
FROM LOD L
WHERE EXISTS (SELECT 1 FROM PLAVBA_S_PRUVODCEM
WHERE PLAVBA_S_PRUVODCEM.LODID = L.LODID);
SELECT L.*
FROM LOD L JOIN POKRYTI P ON (L.LODID = P.LODID)
UNION
SELECT L.*
FROM LOD L JOIN PLAVBA_S_PRUVODCEM P ON (L.LODID = P.LODID);
SELECT L.*
FROM LOD L
WHERE L.LODID IN (SELECT LODID
FROM POKRYTI P)
UNION
SELECT L.*
FROM LOD L
WHERE EXISTS (SELECT 1 FROM PLAVBA_S_PRUVODCEM PSP
WHERE PSP.LODID = L.LODID);
SELECT *
FROM LOD L
WHERE L.LODID NOT IN (SELECT LODID
FROM REZERVACE);
SELECT *
FROM LOD L
WHERE NOT EXISTS (SELECT LODID
FROM REZERVACE R
WHERE R.LODID = L.LODID);
Select * from LOD
MINUS
SELECT *
FROM LOD L
WHERE L.LODID IN (SELECT LODID
FROM REZERVACE);
Select LTYP
FROM LOD L JOIN POKRYTI USING (LODID)
MINUS
Select LTYP
FROM LOD L JOIN PLAVBA_S_PRUVODCEM USING (LODID)
MINUS
Select LTYP
FROM LOD L JOIN REZERVACE USING(LODID);
select distinct ltyp
from pokryti p join lod l on (p.lid = l.lodid)
where ltyp not in
(select distinct ltyp
from plavba_s_pruvodcem p join lod l on (p.lodid = l.lodid)
where ltyp is not null);
select distinct l1.ltyp
from pokryti p1 join lod l1 on (p1.lid = l1.lodid)
where not exists
(select 'X'
from plavba_s_pruvodcem p2 join lod l2 on (p2.lodid = l2.lodid)
where l1.ltyp=l2.ltyp);
WITH
T1 AS (SELECT LODID,ZID
FROM LOD CROSS JOIN ZAKAZNIK
WHERE BARVA = 'zelena' ),
T2 AS (SELECT UNIQUE LODID,ZID FROM REZERVACE),
T31 AS (SELECT * FROM T1 MINUS SELECT * FROM T2),
T32 AS (SELECT UNIQUE ZID FROM T31),
T4 AS (SELECT UNIQUE ZID FROM REZERVACE),
T5 AS (SELECT * From T4 Where T4.ZID Not In (Select ZID From T32))
Select *
From T5 Join zakaznik Using(ZID);
select *
from zakaznik Z
where (Select count(DISTINCT LODID)
From REZERVACE R Join lod using(lodid)
Where R.ZID = Z.ZID and barva='zelena')
=
(Select count(*)
From LOD
where barva='zelena');
Select Z1.zid,Z1.jmenoz,Z2.zid,Z2.jmenoz
From zakaznik Z1 Join zakaznik Z2 On (Z1.adresa=Z2.adresa and
Z1.zid < Z2.zid);
Select AVG(vek)
From namornik;
Select ROUND(AVG(vek),2)
From namornik;
Select nid, count(*) pocet_rezervaci
From rezervace
Group By nid;
set echo on
Select *
From namornik N
Where (Select count(*)
From PLAVBA_S_PRUVODCEM PSP
Where N.nid = PSP.nid) < 4;
Select nid,N.JMENON,N.VEK,N.HODNOST,N.PLAT
From namornik N Left Outer join PLAVBA_S_PRUVODCEM P
Using(nid)
GROUP BY nid, N.JMENON, N.VEK, N.HODNOST, N.PLAT
Having count(LODID) < 4;
Select N.*,
(Select count(DISTINCT LID)
From pokryti P
Where P.nid = N.nid) pocet_ruznych_linek
From namornik N
Where (Select count(DISTINCT LID)
From pokryti P
Where P.nid = N.nid) < 3;
SELECT NID,N.JMENON,N.VEK,N.HODNOST,N.PLAT,COUNT(LODID)
FROM NAMORNIK N Left Outer Join POKRYTI P Using (Nid)
GROUP BY NID,N.JMENON,N.VEK,N.HODNOST,N.PLAT
SET AUTOTRACE on
Select N.*,
(Select count(*)
From PLAVBA_S_PRUVODCEM PSP
Where N.nid = PSP.nid) pocet_PSP
From namornik N;
Select nid,N.JMENON,N.VEK,N.HODNOST,N.PLAT,
count(LODID) pocet_PSP
From namornik N Left Outer join PLAVBA_S_PRUVODCEM P
Using(nid)
GROUP BY nid, N.JMENON, N.VEK, N.HODNOST, N.PLAT;
Select N.nid,N.JMENON
From Namornik N
Where (Select count(*)
From PLAVBA_S_PRUVODCEM PSP Join LOD L Using(LODID)
Where PSP.nid = N.nid and L.Ltyp ='klipr') >=3 and
N.vek <40;
Select nid,N.JMENON
From Namornik N Join PLAVBA_S_PRUVODCEM PSP Using (nid)
Join lod L Using (lodid)
Where L.Ltyp ='klipr' and N.vek <40
Group By nid,N.JMENON
having count(*) >= 3;
Update namornik N
Set plat = plat*1.15
where (Select count (*)
From pokryti P
Where P.nid = N.nid) > 4;
Commit;
Alter Table NAMORNIK
Add (pocet_plaveb integer Default 0);
Update namornik N
Set pocet_plaveb = (Select count(*)
From PLAVBA_S_PRUVODCEM PSP
Where PSP.nid=N.nid);
Commit;