602SQL-┌plnß dokumentace Index   Tisk  

Sbφrka dotaz∙ û str. 9

P°φklad 17

Zadßnφ: Vyberte faktury firem z Prahy

Popis °eÜenφ: Zvolφme °eÜenφ se subdotazem. Subdotaz vybere firmy z Prahy:

    SELECT cislo
    FROM Firmy
    WHERE mesto LIKE "Praha%"

Dotaz na tabulku Faktury pou₧ije subdotaz k vybrßnφ t∞ch faktur, jejich₧ Φφslo firmy se nachßzφ v subdotazu. Doslovn² p°epis pak vypadß takto:

SQL:

    SELECT cislo, firma
    FROM Faktury
    WHERE firma IN (SELECT cislo
                    FROM Firmy
                    WHERE mesto LIKE "Praha%")

Poznßmky:

a) Predikßt IN je zde (na rozdφl od p°φkladu 15) pou₧it ve v²znamu zjiÜt∞nφ v²skytu v odpov∞di na subdotaz. Subdotaz musφ obsahovat pouze jeden sloupec.

b) StejnΘho efektu by se dosßhlo zßpisem firma=ANY (subdotaz)mφsto firma IN (subdotaz) .

c) Predikßt LIKE slou₧φ k porovnßvßnφ hodnoty sloupce MESTO se vzorem zadan²m v²razem "Praha%", co₧ je SQL zßpis ve 602SQL pou₧φvanΘho operßtoru .= (°et∞zec zaΦφnß ...). Predikßt LIKE je mnohem obecn∞jÜφ

d) Ji₧ z d°φv∞jÜφch p°φklad∙ byste m∞li um∞t vytvo°it tento dotaz i bez subdotazu:

    SELECT  Faktury.cislo, Faktury.firma
    FROM Faktury, Firmy
    WHERE Firmy.cislo=Faktury.firma
      AND (Firmy.mesto.="Praha")