Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Cvičení 04 SQL Exists, Any, All Ing. Pavel Bednář

Podobné prezentace


Prezentace na téma: "Cvičení 04 SQL Exists, Any, All Ing. Pavel Bednář"— Transkript prezentace:

1 Cvičení 04 SQL Exists, Any, All Ing. Pavel Bednář pavel.bednar@vsb.cz http://pavelbednar.aspone.cz

2  Podmínka EXIST je považována za splněnou v případě, že poddotaz vrací alespoň jeden záznam. (je jedno jaký)  Typickým použítím může být například konstukce vrať mi záznamy z tabulky 1, které mají/nemají nějaký záznam v tabulce 2

3  Vrať studenty, kteří neměli letos (v roce 2013) žádné vyznamenání.  Select * from Student s WHERE NOT EXISTS (SELECT * from Vyznameni v WHERE v.login = s.login and rok=2013) Student LoginPříjmeníJménoVěkId_Fakulta Dra025DrábekTomáš251 Zub011ZubatáEva232 Nov098NovákBohumil281 Sip001ŠípkováRůžena182 Vid021VidlákováKateřina283 Vyznamenani LoginRok Zub0112011 Sip0012013 Vid0212013 LoginPříjmeníJménoVěkId_Fakulta Dra025DrábekTomáš251 Zub011ZubatáEva232 Nov098NovákBohumil283

4  Vypište všechny předměty, pro něž existuje nějaký další předmět vyučovaný ve stejném ročníku.  SELECT * FROM Predmet P1 WHERE exists (SELECT * FROM Predmet P2 WHERE P1.rocnik = P2.rocnik and P1.pID <> P2.pID) Predmet Id_pZkratkaNázevRočník 1LOLogické obvody2012/2013 2VIAVývoj internetových aplikací2011/2012 3VIAVývoj internetových aplikací2012/2013 4TSTelekomunikační sítě2010/2011 5LOLogické obvody2013/2014 Id_pZkratkaNázevRočník 1LOLogické obvody2012/2013 3VIAVývoj internetových aplikací2012/2013

5  Umožnuje specifikovat více hodnot v klauzole where.  Poddotaz vrací množinu možných hodnot, které atribut může nabývat.

6  Vypiš příjmení a jméno studentů, kteří měli někdy vyznamenání.  SELECT prijmeni, jmeno FROM Student WHERE login IN (SELECT login from Vyznamenani) Student LoginPříjmeníJménoVěkId_Fakulta Dra025DrábekTomáš251 Zub011ZubatáEva232 Nov098NovákBohumil281 Sip001ŠípkováRůžena182 Vid021VidlákováKateřina283 Vyznamenani LoginRok Zub0112011 Sip0012012 Vid0212012 PříjmeníJméno ZubatáEva ŠípkováRůžena VidlákováKateřina

7  Podmínka ALL je považována za splněnou v případě, že VŠECHNY záznamy v poddotaze splňují podmínku vnitřního dotazu.  Podmínka ANY je považována za splněnou v případě, že ALESPOŇ JEDEN záznam splňuje podmínku vnitřního dotazu.  Obecně platí, že většina dotazů využívající exists a not exists se dají přepsat s pomocí any a all

8  Vypište nejstaršího studenta.  SELECT Prijmeni, jmeno FROM Student S1 WHERE S1.rok_narozeni >= all(SELECT S2.rok_narozeni FROM Student S2 WHERE S2.rok_narozeni is not null) Student LoginPříjmeníJménoVěkId_Fakulta Dra025DrábekTomáš251 Zub011ZubatáEva232 Nov098NovákBohumil281 Sip001ŠípkováRůžena182 Vid021VidlákováKateřina283 PříjmeníJméno NovákBohumil VidlákováKateřina


Stáhnout ppt "Cvičení 04 SQL Exists, Any, All Ing. Pavel Bednář"

Podobné prezentace


Reklamy Google