Kakšne so prednosti in slabosti pridružitve ali podpoizvedbe?

...

Poizvedbe baze podatkov pridobijo določene informacije iz baze podatkov.

Podpoizvedba je poizvedba znotraj druge poizvedbe. Podpoizvedba lahko vsebuje tudi drugo podpoizvedbo. Te naj bi bile "ugnezdene" podpoizvedbe. Združitev je, ko se v členu »Od« poizvedbe sklicuje na dve ali več tabel. Različni motorji baz podatkov lahko različno optimizirajo podpoizvedbe in združitve. Optimizator DB2 bo na primer preoblikoval podpoizvedbo v združitev, če so izpolnjeni določeni kriteriji. V nekaterih primerih združitev zagotavlja boljšo zmogljivost kot podpoizvedba.

Kaj naredi podpoizvedbo

Podpoizvedba je stavek "SELECT" znotraj stavka "WHERE" ali "HAVING" zunanjega stavka "INSERT", "UPDATE", "MERGE" ali "DELETE". Podpoizvedba se imenuje tudi "notranja poizvedba" ali "notranja izbira". Podpoizvedba ima lahko člen "FROM" z eno ali več tabelami in lahko po želji vsebuje člen "WHERE", "GROUP BY" ali "HAVING". Vedno je v oklepaju.

Video dneva

Prednosti in slabosti podpoizvedb

Podpoizvedbe so ugodne, ker strukturirajo poizvedbo tako, da izolirajo vsak del stavka, opraviti isto operacijo, ki bi običajno zahtevala zapletene spoje in spoje in je enostavnejša preberite. Podpoizvedbe so bile celo osnova za ime "Structured Query Language" (SQL) zaradi svoje lahko berljive strukture. Pomanjkljivost je, da ne morete spreminjati tabele in izbrati iz iste tabele znotraj podpoizvedbe v istem stavku SQL. Podpoizvedbe se lahko izvajajo tudi dlje kot združevanje zaradi tega, kako jih optimizator baze podatkov obdela.

Kaj naredi pridružitev

Večino podpoizvedb je mogoče prepisati kot združitve, večino združitev pa je mogoče prepisati kot podpoizvedbe. Združitev definira dve ali več tabel s povezanim stolpcem. Tabele so običajno združene na primarnih in tujih ključih. Na primer, tabela zaposlenih ima lahko primarni ključ stolpca ID zaposlenega, medtem ko ima tabela časovnega lista tudi stolpec ID zaposlenega, ki je tuji ključ za tabelo zaposlenih. Združitev SQL lahko zapišete kot "WHERE employee.empid = timesheet.empid" ali "FROM Employee JOIN timesheet ON (employee.empid = timesheet.empid)."

Prednosti in slabosti spojin

Glavna prednost združevanja je, da se izvede hitreje. Končni uporabnik morda ne bo opazil povečanja zmogljivosti. Ker pa so stolpci posebej poimenovani in indeksirani ter optimizirani s strani mehanizma baze podatkov, bo čas iskanja skoraj vedno hitrejši kot pri podpoizvedbi. Obstajajo tudi notranji in zunanji spoji, levi in ​​desni spoji, polni spoji in križni spoji. Pomanjkljivost uporabe spojin je, da jih ni tako enostavno brati kot podpoizvedbe. Druga pomanjkljivost je, da je lahko zmedeno, katera povezava je ustrezna vrsta združitve, ki jo je treba uporabiti za pridobitev pravilnega želenega niza rezultatov.