MySQL Vodič za podupit s primjerima

Što su podupiti?

Podupit je upit odabira koji se nalazi unutar drugog upita. Unutarnji upit za odabir obično se koristi za određivanje rezultata vanjskog upita za odabir.

Pogledajmo sintaksu podupita –

MySQL Podupit

Uobičajena pritužba kupaca u MyFlix Video Library je mali broj filmskih naslova. Uprava želi kupiti filmove za kategoriju koja ima najmanje naslova.

Možete koristiti upit poput

SELECT category_name FROM categories WHERE category_id =( SELECT MIN(category_id) from movies);

To daje rezultat

MySQL Podupit

Pogledajmo kako ovaj upit radi

MySQL Podupit

Gore navedeno je oblik Podupit retka. U takvim pod-upitima, unutarnji upit može dati samo JEDAN rezultat. Dopušteni operatori pri radu s podupitima reda su [=, >, =, <=, ,!=, ]

Pogledajmo drugi primjer,

Pretpostavimo da želite imena i telefonske brojeve članova osoba koje su iznajmile film i tek ih trebaju vratiti. Nakon što dobijete imena i telefonski broj, nazovite ih kako biste ih podsjetili. Možete koristiti upit poput

SELECT full_names,contact_number FROM   members  WHERE  membership_number IN (SELECT membership_number FROM movierentals WHERE return_date IS NULL );


MySQL Podupit

Pogledajmo kako ovaj upit radi

MySQL Podupit

U ovom slučaju, unutarnji upit vraća više od jednog rezultata. Gore navedeno je tip Tsposoban sub-query.

Do sada smo vidjeli dva upita, pogledajmo sada primjer trostruki upit!!!

Pretpostavimo da uprava želi nagraditi člana koji najviše plaća.

Možemo pokrenuti upit poput

Select full_names From members WHERE membership_number = (SELECT membership_number FROM payments WHERE amount_paid = (SELECT MAX(amount_paid) FROM payments));

Gornji upit daje sljedeći rezultat –

MySQL Podupit

Podupiti protiv spajanja!

U usporedbi sa spojevima, podupiti su jednostavni za korištenje i lako se čitaju. Nisu tako komplicirani kao Pridružuje

Stoga ih često koristi SQL početnici.

Ali pod-upiti imaju problema s izvedbom. Korištenje spajanja umjesto pod-upita može vam dati do 500 puta povećanje performansi.

Ako imate izbor, preporuča se koristiti JOIN preko pod upita.


Podupiti bi se trebali koristiti samo kao rezervno rješenje kada ne možete koristiti operaciju JOIN da postignete gore navedeno

Podupiti protiv spajanja

Rezime

  • Podupiti su ugrađeni upiti unutar drugog upita. Ugrađeni upit poznat je kao unutarnji upit, a upit spremnika poznat je kao vanjski upit.
  • Podupiti su jednostavni za korištenje, nude veliku fleksibilnost i mogu se lako rastaviti na pojedinačne logičke komponente čineći upit, što je vrlo korisno kada Ispitivanje i otklanjanje pogrešaka u upitima.
  • MySQL podržava tri vrste podupita, skalarne, retke i tablice.
  • Skalarni podupiti vraćaju samo jedan redak i jedan stupac.
  • Podupiti retka vraćaju samo jedan redak, ali mogu imati više od jednog stupca.
  • Podupiti tablice mogu vratiti više redaka kao i stupaca.
  • Podupiti se također mogu koristiti u upitima INSERT, UPDATE i DELETE.
  • Za probleme s izvedbom, kada se radi o dobivanju podataka iz više tablica, toplo se preporučuje korištenje JOIN-ova umjesto podupita. Podupiti se trebaju koristiti samo s dobrim razlogom.

Sažmite ovu objavu uz: