Duomenų bazės užklausos nuskaito konkrečią informaciją iš duomenų bazės.
Antrinė užklausa yra užklausa kitoje užklausoje. Papildomoje užklausoje taip pat gali būti kita antrinė užklausa. Sakoma, kad tai „įdėtos“ antrinės užklausos. Sujungimas yra tada, kai užklausos sąlygoje „Nuo“ pateikiamos nuorodos į dvi ar daugiau lentelių. Skirtingi duomenų bazių varikliai gali skirtingai optimizuoti antrines užklausas ir sujungimus. Pavyzdžiui, DB2 optimizavimo priemonė pavers antrinę užklausą sujungimu, jei tenkinami tam tikri kriterijai. Kai kuriais atvejais sujungimas užtikrina didesnį našumą nei antrinė užklausa.
Kas daro papildomą užklausą
Antrinė užklausa yra teiginys „SELECT“, esantis išorinio teiginio „INSERT“, „UPDATE“, „MERGE“ arba „DELETE“ sąlygoje „WHERE“ arba „HAVING“. Antrinė užklausa taip pat vadinama „vidine užklausa“ arba „vidiniu pasirinkimu“. Papildomoje užklausoje gali būti sąlyga „FROM“ su viena ar daugiau lentelių ir pasirinktinai sąlyga „WHERE“, „GROUP BY“ arba „HAVING“. Jis visada pateikiamas skliausteliuose.
Dienos vaizdo įrašas
Papildomų užklausų privalumai ir trūkumai
Papildomos užklausos yra naudingos, nes jos sudaro užklausą taip, kad atskirtų kiekvieną teiginio dalį, atlikti tą pačią operaciją, kuriai paprastai prireiktų sudėtingų sujungimų ir jungčių, kurias lengviau atlikti skaityti. Antrinės užklausos netgi buvo pavadinimo „Struktūrinės užklausos kalba“ (SQL) pagrindas dėl jų lengvai skaitomos struktūros. Trūkumas yra tas, kad negalite keisti lentelės ir pasirinkti iš tos pačios lentelės papildomoje užklausoje tame pačiame SQL sakinyje. Papildomos užklausos taip pat gali užtrukti ilgiau nei sujungimas, nes duomenų bazės optimizavimo priemonė jas apdoroja.
Kas verčia prisijungti
Daugumą antrinių užklausų galima perrašyti kaip sujungimus, o daugumą sujungimų galima perrašyti kaip antrines užklausas. Sujungimas apibrėžia dvi ar daugiau lentelių pagal susijusį stulpelį. Lentelės paprastai sujungiamos pirminiais ir išoriniais raktais. Pavyzdžiui, darbuotojo lentelėje gali būti pirminis darbuotojo ID stulpelio raktas, o darbo laiko apskaitos žiniaraščio lentelėje taip pat yra darbuotojo ID stulpelis, kuris yra darbuotojo lentelės išorinis raktas. SQL sujungimas gali būti parašytas kaip "WHERE darbuotojas.empid = darbo laiko apskaitos žiniaraštis.empid" arba "NUO darbuotojo JOIN darbo laiko apskaitos žiniaraštis ĮJUNGTAS (darbuotojas.empid = timeheet.empid)."
Sujungimų privalumai ir trūkumai
Pagrindinis sujungimo pranašumas yra tai, kad jis vykdomas greičiau. Našumo padidėjimo galutinis vartotojas gali nepastebėti. Tačiau kadangi stulpelius konkrečiai pavadina, indeksuoja ir optimizuoja duomenų bazės variklis, paieškos laikas beveik visada bus greitesnis nei antrinės užklausos. Taip pat yra vidinių ir išorinių sujungimų, kairiųjų ir dešiniųjų sujungimų, pilnų sujungimų ir kryžminių sujungimų. Sujungimų naudojimo trūkumas yra tas, kad juos nėra taip lengva perskaityti kaip antrines užklausas. Kitas trūkumas yra tai, kad gali kilti painiavos dėl to, kuris sujungimas yra tinkamas sujungimo tipas, kurį reikia naudoti norint gauti teisingą norimų rezultatų rinkinį.