MySQL MariaDB

MySQL podupiti

MySQL podupiti
Podupit je SQL upit unutar većeg upita koji je rekurzivan ili se podupit smatra internim upitom. Suprotno tome, vanjski upit naziva se upitom koji uključuje podupit. MySQL podupit se može ugraditi u upite, uključujući SELECT, INSERT, UPDATE ili DELETE. Nadalje, unutar drugog podupita može se ugnijezditi podupit. Fraza podupit treba zatvoriti u zagrade gdje god se koristi. Naučit ćemo vas kako i kada koristiti MySQL potupit za sastavljanje složenih upita i opisati ideju pridruženog podupita. Otvorite ljusku naredbenog retka sa radne površine i napišite lozinku da biste je počeli koristiti. Pritisnite Enter i nastavite.

Potupit unutar zapisa jedne tablice:

Stvorite tablicu pod nazivom 'životinje' u podacima baze podataka.'Dodajte sljedeći zapis različitih životinja različitih svojstava kako je prikazano. Dohvatite ovaj zapis pomoću upita SELECT na sljedeći način:

>> ODABERI * IZ podataka.životinje;

Primjer 01:

Dohvatimo ograničene zapise ove tablice pomoću potupita. Koristeći upit u nastavku, znamo da će se prvo izvršiti podupit, a njegov izlaz će se koristiti u glavnom upitu kao ulaz. Podupit jednostavno uzima dob u kojem je cijena životinje 2500. Starost životinje čija je cijena 2500 je 4 u tablici. Glavni upit odabrat će sve zapise tablice u kojima je dob veća od 4 godine, a izlaz je dan u nastavku.

>> ODABERI * IZ podataka.životinje GDJE Dob> (ODABERI Dob IZ podataka.životinje GDJE Cijena = '2500');

Primjer 02:

Koristimo istu tablicu u različitim situacijama. U ovom ćemo primjeru u podupitu koristiti neku funkciju umjesto klauzule WHERE. Uzeli smo prosjek svih cijena za životinje. Prosječna cijena bit će 3189. Glavni upit odabrat će sve zapise o životinjama čija je cijena veća od 3189. Dobit ćete donji izlaz.

>> ODABERI * IZ podataka.životinje GDJE Cijena> (ODABERI PROSJEČNO (Cijena) IZ podataka.životinje);

Primjer 03:

Upotrijebimo klauzulu IN u glavnom SELECT upitu. Prije svega, podupit će postići cijene veće od 2500. Nakon toga, glavni upit odabrat će sve zapise tablice 'životinje' gdje cijena leži u rezultatu podupita.

>> ODABERI * IZ podataka.životinje GDJE Cijena IN (ODABERI CIJENU IZ podataka.životinje GDJE Cijena> 2500);

Primjer 04:

Podupit smo koristili za pronalaženje imena životinje čija je cijena 7000. Kako je ta životinja krava, zato će se naziv "krava" vratiti u glavni upit. U glavnom upitu svi zapisi će se preuzeti iz tablice u kojoj je ime životinje 'krava'.'Kako imamo samo dva zapisa za životinjsku' kravu ', zato imamo donji rezultat.

>> ODABERI * IZ podataka.životinje WHERE Ime = (ODABIRI IME IZ podataka.životinje GDJE Cijena = '7000');

Potupit u višestrukim zapisima tablice:

Pretpostavite donje dvije tablice, „učenik“ i „nastavnik“, u vašoj bazi podataka. Isprobajmo nekoliko primjera podupita pomoću ove dvije tablice.

>> ODABERI * IZ podataka.student;
>> ODABERI * IZ podataka.učitelj, nastavnik, profesor;

Primjer 01:

Podatke ćemo dohvatiti iz jedne tablice pomoću potupita i upotrijebiti ih kao ulaz za glavni upit. To znači da se ove dvije tablice mogu na neki način povezati. U donjem primjeru koristili smo podupit za dohvaćanje imena učenika iz tablice 'učenik' gdje je ime nastavnika 'Samina.'Ovaj upit vratit će' Saminu 'u nastavnicu glavne tablice upita.'Glavni upit tada će odabrati sve zapise koji se odnose na ime učitelja' Samina.'Kako imamo dva zapisa za ovo ime, tako smo i dobili ovaj rezultat.

>> ODABERI * IZ podataka.učitelj WHERE TeachName = (SELECT TeachName IZ podataka.student WHERE TeachName = 'Samina');

Primjer 02:

Da biste razradili podupit u slučaju različitih tablica, isprobajte ovaj primjer. Imamo podupit koji dohvaća ime učitelja od učenika stola. Ime bi trebalo imati "i" na bilo kojem mjestu u svojoj vrijednosti. To znači da će sva imena u stupcu TeachName koja imaju vrijednost 'i' biti izabrana i vraćena u glavni upit. Glavni upit odabrat će sve zapise iz tablice 'učitelja' gdje je ime učitelja u izlazu koji vraća podupit. Kako je potupit vratio 4 imena učitelja, zato ćemo imati evidenciju svih tih imena koja borave u tablici 'učitelj'.'

>> ODABERI * IZ podataka.učitelj WHERE TeachName IN (ODABIRI ime nastavnika IZ podataka.student GDJE TeachName KAO '% i%');

Primjer 03:

Razmotrite donje dvije tablice, 'order' i 'order1'.

>> ODABERI * IZ podataka.narudžba;
>> ODABERI * IZ podataka.red1;

Pokušajmo s bilo kojom klauzulom u ovom primjeru za razradu podupita. Podupit će odabrati 'id' iz tablice 'order1', gdje stupac 'Status' ima vrijednost 'Neplaćeno.'ID' može biti više od 1. To znači da bi se u glavni upit vratilo više od 1 vrijednosti kako bi se dobili rezultati tablice 'narudžbe'. U ovom bi se slučaju mogao upotrijebiti bilo koji 'id'. Dobili smo donji izlaz za ovaj upit.

>> ODABERITE stavku, prodaju, id IZ podataka.narudžba WHERE id = BILO KOJE (ODABERI ID IZ podataka.order1 WHERE Status = 'Neplaćeno');

Primjer 04:

Pretpostavimo da imate podatke u nastavku u tablici 'order1' prije primjene bilo kojeg upita.

>> ODABERI * IZ podataka.red1;

Primijenimo upit unutar upita kako bismo izbrisali neke zapise iz tablice 'order1'. Prvo, podupit će odabrati vrijednost 'Status' iz tablice 'redoslijed' gdje je Stavka 'Book.'Podupit vraća vrijednost "Plaćeno" kao vrijednost. Sada će glavni upit izbrisati retke iz tablice 'order1' gdje je vrijednost stupca 'Status' plaćena.'

>> IZBRIŠI IZ podataka.order1 WHERE Status = (ODABERI status iz podataka.narudžba WHERE Stavka = 'Knjiga');

Nakon provjere, sada imamo dolje navedene zapise koji su ostali u tablici 'order1' nakon izvršenja upita.

>> ODABERI * IZ podataka.red1;

Zaključak:

U svim gornjim primjerima učinkovito ste radili s puno podupita. Nadamo se da je sada sve jasno i čisto.

Kako snimiti i struji svoju igraću sesiju na Linuxu
U prošlosti se igranje igara smatralo samo hobijem, ali s vremenom je igračka industrija zabilježila ogroman rast u pogledu tehnologije i broja igrača...
Najbolje igre za ručno praćenje
Oculus Quest nedavno je predstavio sjajnu ideju ručnog praćenja bez kontrolera. Sa sve većim brojem igara i aktivnosti koje izvršavaju podršku bilo fo...
Kako prikazati OSD prekrivač u aplikacijama i igrama na cijelom zaslonu za Linux
Igranje igara preko cijelog zaslona ili upotreba aplikacija u režimu preko cijelog zaslona bez ometanja može vas odsjeći od relevantnih informacija o ...