Kurssisisältö
Keskitaso SQL
Keskitaso SQL
Sisäkkäiset Kyselyt
Koulun hallinto on tyytyväinen viimeaikaisiin saavutuksiimme ja on innokas etenemään eteenpäin.
Kun he aloittavat kesälomansa, meillä on mahdollisuus tutkia uusia menetelmiä ja parantaa SQL-taitojamme.
Keskitymme sisäkkäisiin kyselyihin, joka on keskeinen käsite SQL:ssä.
Katsotaanpa esimerkkiä yrityksemme tietokannasta. Kun yritys kasvaa, olemme lisänneet uuden department
-taulun. Tämä muuttaa tietokantamme toimintaa.
Tarkastellaan uuden taulun rakennetta nähdäksemme sen roolin tietokannassamme:
Uusi taulukko sisältää osastot, niiden tyypit ja budjetit. Ja employee
-taulukossa, kuten saatat muistaa, on tietoa osastosta, johon kukin työntekijä kuuluu.
Tarkastellaan esimerkkiä, jossa käytämme sisäkkäisiä kyselyitä hakeaksemme ne työntekijät, jotka työskentelevät osastoilla, joiden budjetit ovat 500 000 dollaria tai vähemmän:
SELECT * FROM employees WHERE department IN ( SELECT name FROM department WHERE budget <= 500000 )
Käytämme WHERE
-lausetta määrittääksemme, että osaston nimi tulee olla läsnä taulukossa, jonka haemme sisäisellä kyselyllä.
Puretaan tämä kysely kahdeksi erilliseksi nähdäksemme, miten se toimii. Ensin haetaan osastojen nimet, joiden budjetti on 500 000 dollaria tai vähemmän (meidän sisäinen kysely):
SELECT name FROM department WHERE budget <= 500000
Nyt, ottaen huomioon saatu tulos, kirjoitetaan toinen kysely hakeaksemme tietoa työntekijöistä näistä osastoista:
SELECT * FROM employees WHERE department IN ( 'Marketing', 'Human Resources', 'Finance', 'Customer Service', 'Legal' )
Tämän kyselyn tulos on sama kuin ensimmäisen kyselyn.
Tässä on vaiheittainen erittely:
Sisäinen kysely hakee tarvitsemiemme osastojen
names
;WHERE
-lause tarkistaa, ovatko nämä osastot taulukossa sisäisestä kyselystä;Saamme haluamamme tuloksen.
Tässä on sisäisen kyselyn perussyntaksi:
sql
Kun käytät sisäkkäisiä kyselyitä, pidä mielessä nämä tärkeät kohdat:
Yksi tulos alikyselyssä: varmista, että sisäkkäinen kysely palauttaa vain yhden sarakkeen. Jos sitä käytetään vertailussa, sen tulisi ihanteellisesti palauttaa yksi arvo. Tämä on tärkeää operaattoreille kuten
=
,>
,<
,>=
,<=
,<>
;Tietotyypit: palautetun sarakkeen tietotyypin tulisi vastata saraketta, johon sitä verrataan, virheiden välttämiseksi;
Optimointi: sisäkkäiset kyselyt voivat olla hitaita, erityisesti jos ne suoritetaan jokaiselle riville pääkyselyssä;
IN-operaattorin käyttö: sisäkkäiset kyselyt käyttävät usein
IN
-operaattoria tarkistaakseen arvoja osajoukossa. Voit myös käyttää vertailuoperaattoreita monimutkaisempien ehtojen luomiseen.
1. Mikä on sisäkkäinen kysely SQL:ssä?
2. Mikä SQL-operaattori on yleisesti käytetty sisäkkäisten kyselyiden kanssa tarkistamaan arvoja osajoukossa?
3. Miksi on tärkeää, että sisäkkäisen kyselyn palauttaman sarakkeen tietotyyppi vastaa saraketta, johon sitä verrataan?
Kiitos palautteestasi!