Andmebaasipäringud toovad andmebaasist konkreetse teabe.
Alampäring on päring teises päringus. Alampäring võib sisaldada ka teist alampäringut. Väidetavalt on need "pesastatud" alampäringud. Ühendus on siis, kui päringu klauslis "From" viidatakse kahele või enamale tabelile. Erinevad andmebaasimootorid võivad alampäringuid ja liitumisi optimeerida erinevalt. Näiteks muudab DB2 optimeerija alampäringu liitumiseks, kui teatud kriteeriumid on täidetud. Mõnel juhul annab liitmine parema jõudluse kui alampäring.
Mis teeb alampäringu
Alampäring on lause "SELECT" välimise lause "INSERT", "UPDATE", "MERGE" või "DELETE" klauslis "WHERE" või "HAVING". Alampäringut nimetatakse ka "sisemiseks päringuks" või "sisemiseks valikuks". Alampäringul võib olla ühe või mitme tabeliga klausel "FROM" ja valikuliselt klausel "WHERE", "GROUP BY" või "HAVING". See on alati sulgudes.
Päeva video
Alampäringute eelised ja puudused
Alampäringud on kasulikud, kuna need struktureerivad päringu nii, et isoleerida avalduse iga osa, teha sama toimingut, mis tavaliselt nõuab keerulisi liiteid ja liite ning mida on lihtsam teha lugeda. Alampäringud olid isegi nime "Structured Query Language" (SQL) aluseks nende hõlpsasti loetava struktuuri tõttu. Puuduseks on see, et te ei saa sama SQL-lause alampäringus tabelit muuta ja samast tabelist valida. Samuti võib alampäringute täitmine võtta kauem aega kui liitumine, kuna andmebaasi optimeerija neid töötleb.
Mis paneb liituma
Enamikku alampäringuid saab ümber kirjutada liitumistena ja enamikku liitumisi saab ümber kirjutada alampäringuteks. Ühendus määratleb kaks või enam tabelit seotud veeruga. Tabelid ühendatakse tavaliselt esmase ja võõrvõtmega. Näiteks võib töötaja tabelis olla töötaja ID veeru primaarvõti, samas kui ajatabeli tabelis on ka töötaja ID veerg, mis on töötaja tabeli võõrvõti. SQL-i liitumise saab kirjutada kujul "KUS töötaja.empid = ajatabel.empid" või "FROM töötaja JOIN ajatabel ON (töötaja.empid = ajatabel.empid)."
Ühenduste eelised ja puudused
Ühenduse peamine eelis on selle kiirem täitmine. Lõppkasutaja ei pruugi jõudluse suurenemist märgata. Kuna aga andmebaasimootor on veerud konkreetselt nimetanud, indekseerinud ja optimeerinud, on otsinguaeg peaaegu alati kiirem kui alampäringu oma. Samuti on sise- ja välisliited, vasak- ja paremliited, täisliited ja ristliited. Ühenduste kasutamise puuduseks on see, et neid pole nii lihtne lugeda kui alampäringuid. Veel üks puudus on see, et võib tekitada segadust selle üle, milline ühendus on õige soovitud tulemuste komplekti saamiseks sobiv ühendustüüp.