SQL upiti su meso i krumpir RDBMS CRUD (kreiranje, čitanje, ažuriranje, brisanje). Ali kada vaša aplikacija ili baza podataka poduzeća raste, potreba za inteligentnim upitima za dohvaćanje uvjetnih podataka specifičnih za zahtjeve postaje nezaobilazna.

SQL je relativno sveobuhvatan, obuhvaća mnoge funkcionalnosti - od kojih je svaka dobro prikladna za različite poslovne namjene. Jedna takva funkcionalnost uključuje korištenje podupita.

Kako bi vaši kodovi bili učinkoviti i učinkoviti, možete koristiti pod-upite unutar svojih SQL kodova za dohvaćanje podataka, manipulaciju postojećim varijablama i postizanje više ciljeva u jednom potezu.

Što su SQL podupiti?

Podupit je ugniježđeni upit koji radi kao parametar unutar drugog glavnog upita. Podupit je an unutarnji upit, dok je glavni upit vanjski upit.

Podupit navodno vraća podatke kao argument u zagradi za glavni upit, dok glavni upit dalje dohvaća konačni rezultat.

Podupiti su ugrađeni unutar Izaberi izjavi ili u Gdje klauzula. Takva struktura omogućuje da se podupit ponaša kao dobro opisani uvjet filtracije podataka. Nažalost, potupiti mogu koristiti samo

instagram viewer
Grupiraj po naredbe a ne Naručite po naredbe, jer su one dopuštene samo u glavnom upitu.

Povezano: Sve što trebate znati o SQL izjavi GROUP BY

Obično se svaki podupit sastoji od jednog stupca s Izaberi klauzula. Međutim, postoje scenariji u kojima glavni upit ima više stupaca. Podupit se može ugniježditi unutar drugog podupita, čineći ga ugniježđenim podupitom.

Striktura podupita je sljedeća:

Odaberite naziv_stupca iz tablice gdje je uvjet= 
(ODABIR uvjetni_stupac IZ tablice) kao pseudonim;

Na primjer, pretpostavimo da imate sljedeću tablicu:

iskaznica Ime Drugi naziv Naknada za agencijske usluge
1 Ivan Fitilj 5000
2 Robert Graham 4000
3 Stjepan Hicks 8000
4 Bob Marley 1000
5 Marija Ellen 9000

U ovoj tablici, da biste izvukli imena ljudi koji zarađuju iznad prosječne agencijske naknade, možete napisati podupit umjesto pisanja više redaka koda.

Povezano: Kako napraviti tablicu u SQL-u

Evo kako izgleda upit:

Odaberite * iz pojedinosti o agentu
gdje je Agencija_naknada > (odaberite prosj. (Agencija_naknada) iz pojedinosti o agentu);

Naredba prije > znak je vanjski upit, dok je sve nakon > znak je unutarnji upit.

Unutarnji upit izračunat će prosječnu agencijsku naknadu unutar podupita, a vanjski upit će prikazati sve vrijednosti koje su veće od izračunate prosječne vrijednosti.

Kako koristiti pod-upite u SQL-u?

Postoji nekoliko različitih načina na koje možete koristiti pod-upite u SQL-u.

Potupiti s klauzulom Gdje

Jedna od najosnovnijih struktura podupita u SQL-u je unutar klauzule Where. To je najjednostavniji način da definirate što tražite. Naredba select vraća vrijednosti prema uvjetu(ima) podupita i koristi ga kao parametar za glavni upit.

Struktura upita:

odaberite * iz ime_tablice
gdje je ime_stupca = (odaberite naziv_stupca iz ime_tablice);

Objasnimo to na primjeru.

Pretpostavimo da želite pronaći drugu najvišu agencijsku naknadu u tablici agency_details. Da biste to učinili, postoje alternativne funkcije unutar SQL-a; ipak, najbolja metoda je korištenje podupita.

Evo kako možete definirati podupit:

odaberite *, max (agencijska_provizija)
od pojedinosti o agentu
gdje je Agencija_naknada < (odaberite max (Agencija_naknada) iz pojedinosti o agentu);

Rezultirajuća izjava će vam pokazati 8000, što je druga najveća naknada u danoj tablici. Kada se upit pokrene, podupit izračunava maksimalnu vrijednost s popisa naknada. Najviši iznos naknade (9000) pohranjuje se u memoriju.

Nakon što se ovaj dio izračuna, izračunava se drugi dio upita koji pronalazi drugu najvišu naknadu iz tablice (od < koristi se znak). Krajnji rezultat je 8000, što je druga najveća naknada u tablici.

Potupiti unutar klauzule From

Druga varijacija unutar potupita je prosljeđivanje uvjeta u iz klauzula. Kao sličan koncept, prvo se obrađuje unutarnji upit, a naknadno se obrađuje vanjski upit. Unutarnji upit će filtrirati podatke i prikazati rezultate gdje je ID = 3.

Evo upita za referencu:

odaberite a.* iz (
odaberite agency_fee iz agent_details
gdje je ID= 3) kao a;

Ovo je vrlo osnovna struktura; međutim, što su vaše tablice podataka složenije, dobit ćete više redaka podataka koji odgovaraju vašim uvjetima.

Korištenje podupita s naredbom Insert Into

Ako želite ažurirati postojeću tablicu s nekim novim recima podataka, možete koristiti Umetnuti u izjava. Podupit se može pokazati vrlo korisnim ako želite dodati vrijednosti na temelju određenog(ih) uvjeta(a).

Struktura upita:

umetnuti u ime_tablice 
odaberite * iz ime_tablice
gdje je naziv_stupca = uvjeti;
odaberite * iz table_name;

Evo primjera kako možete koristiti umetanje u izraz s podupitom:

umetnuti u agent_details
odaberite * iz pojedinosti o agentu
gdje je agencijska_provizija u (1000, 5000);
odaberite * iz pojedinosti o agentu;

Nakon što se upit pokrene, vrijednosti koje odgovaraju uvjetu ponovno će se umetnuti u postojeću tablicu. The Izaberi * referenca pokupi sve stupce zajedno i umeće ga u tablicu agent_details kakav jest. The u izraz se koristi za definiranje više uvjeta filtera odjednom.

Korištenje podupita s izjavom ažuriranja

Postoje situacije u kojima želite ažurirati temeljne tablice tijekom izvođenja upita. Da biste to učinili, možete koristiti ažuriranje izraz zajedno s naredbama za postavljanje upita.

Ovako ćete napisati podupit za ažuriranje informacija u tablici u jednom slučaju:

ažuriranje table_name 
postavi ime_stupca = nova_vrijednost
gdje je naziv_stupca =
(odaberite column_name iz table_name gdje je = );

Evo primjera koji pokazuje upotrebu izjave za ažuriranje:

UPDATE agent_details 
SET agencijska_provizija = 35000
GDJE agencijska_provizija =
(ODABERITE agencijsku_proviziju FROM agent_details WHERE First_name='John');
odaberite * iz pojedinosti o agentu;

Podupit će filtrirati stupac agency_fee i izdvojiti redak (retke) u kojima se podudara ime Ivan. Sljedeći se izvršava vanjski upit, pri čemu se agencijska naknada ažurira na 35000 za Johna Wicka.

Možete proći a Izaberi * izjava za provjeru konačnih rezultata; primijetit ćete da je agencijska naknada za John Wicka ažurirana na 35000, jer postoji samo primjerak koji odgovara uvjetima definiranim u upitu.

Korištenje podupita s naredbom za brisanje

Baš kao i izjava ažuriranja, u kojoj ažurirate retke podataka unutar postojeće tablice, the izbrisati izjava briše red(ove) podataka na temelju uvjeta.

Struktura izjave za brisanje je:

izbrisati iz table_name gdje je naziv varijable/stupca = 
(odaberite column_name iz table_name gdje je = uvjet);

Evo primjera:

Izbriši iz agent_details 
gdje Ime_IN
(odaberite First_name iz agent_details gdje je agencijska_provizija = 9000);
odaberite * iz pojedinosti o agentu;

Korištenje pod-upita unutar SQL-a

Podupiti su izvrsna značajka unutar SQL-a, koja vas može spasiti od pisanja beskrajnih redaka nepotrebnog koda. Kada ste u mogućnosti koristiti osnovne funkcije podupita za licitiranje, nikada se ne biste htjeli brinuti o složenosti SQL kodiranja.

Uvijek je najbolje unaprijediti svoje postojeće znanje o SQL-u kako biste bili sigurni da ste uvijek na vrhu svoje igre. Budite uvjereni, SQL cheat sheets može vam dati dobru ideju o tome kako nadopuniti svoje osnove jednim pogledom.

Essential SQL Commands Cheat Sheet za početnike

Želite li saznati više o SQL-u? Rukovanje raznim naredbama SQL upita izvrstan je način da napredujete.

Pročitajte dalje

UdioCvrkutE-mail
Povezane teme
  • Programiranje
  • Programiranje
  • SQL
  • Alati za programiranje
O autoru
Gaurav Siyal (Objavljeno 35 članaka)

Gaurav Siyal ima dvije godine iskustva pisanja, pisanja za niz tvrtki za digitalni marketing i dokumenata o životnom ciklusu softvera.

Više od Gaurava Siyala

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu