Sisäkkäiset Kyselyt
Koulun hallinto on tyytyväinen viimeaikaisiin saavutuksiimme ja haluaa edetä eteenpäin.
Kesäloman alkaessa meillä on mahdollisuus tutkia uusia menetelmiä ja kehittää SQL-taitojamme.
Keskitymme sisäkkäisiin kyselyihin, jotka ovat keskeinen käsite SQL:ssä.
Tarkastellaan esimerkkiä yrityksemme tietokannasta. Yrityksen kasvaessa olemme lisänneet uuden department
-taulun. Tämä muuttaa tietokantamme toimintaa.
Tarkastellaan uuden taulun rakennetta ja sen roolia tietokannassamme:
Uusi taulu sisältää osastot, niiden tyypit ja budjetit. Ja kuten ehkä muistat, employee
-taulussa on tietoa siitä, mihin osastoon 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 budjetti on enintään $500,000:
1234567SELECT * FROM employees WHERE department IN ( SELECT name FROM department WHERE budget <= 500000 )
Käytämme WHERE
-ehtoa määrittääksemme, että osaston nimi tulee löytyä sisäisen kyselyn palauttamasta taulusta.
Puretaan tämä kysely kahteen erilliseen osaan nähdäksemme, miten se toimii. Ensin haetaan osastojen nimet, joiden budjetti on enintään 500 000 dollaria (sisäinen kysely):
123SELECT name FROM department WHERE budget <= 500000
Nyt, kun tulos on saatu, kirjoitetaan toinen kysely hakeaksemme tietoja näiden osastojen työntekijöistä:
12345SELECT * 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ä vaiheittainen erittely:
-
Sisäkkäinen kysely hakee tarvitsemiemme osastojen
names
; -
WHERE
-ehto tarkistaa, ovatko nämä osastot taulussa sisäkkäisestä kyselystä; -
Saamme halutun tuloksen.
Tässä on sisäkkäisen kyselyn perussyntaksi:
SELECT columns
FROM table_1
WHERE column_name IN (
SELECT column
FROM table_2
other clauses
)
Kun käytät sisäkkäisiä kyselyitä, pidä mielessä seuraavat tärkeät seikat:
-
Yksi tulos sisäkkäisessä kyselyssä: 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 olennaista operaattoreille kuten
=
,>
,<
,>=
,<=
,<>
; -
Tietotyypit: palautetun sarakkeen tietotyypin tulee vastata saraketta, johon sitä verrataan, virheiden välttämiseksi;
-
Optimointi: sisäkkäiset kyselyt voivat olla hitaita, erityisesti jos ne suoritetaan jokaiselle pääkyselyn riville;
-
IN-operaattorin käyttö: sisäkkäisissä kyselyissä käytetään usein
IN
-operaattoria arvojen tarkistamiseen osajoukossa. Voit myös käyttää vertailuoperaattoreita monimutkaisempiin ehtoihin.
1. Mikä on sisäkkäinen kysely SQL:ssä?
2. Mitä SQL-operaattoria käytetään yleisesti sisäkkäisten kyselyjen kanssa arvojen tarkistamiseen osajoukosta?
3. Miksi on tärkeää, että sisäkkäisen kyselyn palauttaman sarakkeen tietotyyppi vastaa saraketta, johon sitä verrataan?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Can you explain more about how nested queries work in SQL?
What are some common mistakes to avoid when using nested queries?
Can you show an example of a nested query using a different operator, like EXISTS?
Awesome!
Completion rate improved to 4
Sisäkkäiset Kyselyt
Pyyhkäise näyttääksesi valikon
Koulun hallinto on tyytyväinen viimeaikaisiin saavutuksiimme ja haluaa edetä eteenpäin.
Kesäloman alkaessa meillä on mahdollisuus tutkia uusia menetelmiä ja kehittää SQL-taitojamme.
Keskitymme sisäkkäisiin kyselyihin, jotka ovat keskeinen käsite SQL:ssä.
Tarkastellaan esimerkkiä yrityksemme tietokannasta. Yrityksen kasvaessa olemme lisänneet uuden department
-taulun. Tämä muuttaa tietokantamme toimintaa.
Tarkastellaan uuden taulun rakennetta ja sen roolia tietokannassamme:
Uusi taulu sisältää osastot, niiden tyypit ja budjetit. Ja kuten ehkä muistat, employee
-taulussa on tietoa siitä, mihin osastoon 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 budjetti on enintään $500,000:
1234567SELECT * FROM employees WHERE department IN ( SELECT name FROM department WHERE budget <= 500000 )
Käytämme WHERE
-ehtoa määrittääksemme, että osaston nimi tulee löytyä sisäisen kyselyn palauttamasta taulusta.
Puretaan tämä kysely kahteen erilliseen osaan nähdäksemme, miten se toimii. Ensin haetaan osastojen nimet, joiden budjetti on enintään 500 000 dollaria (sisäinen kysely):
123SELECT name FROM department WHERE budget <= 500000
Nyt, kun tulos on saatu, kirjoitetaan toinen kysely hakeaksemme tietoja näiden osastojen työntekijöistä:
12345SELECT * 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ä vaiheittainen erittely:
-
Sisäkkäinen kysely hakee tarvitsemiemme osastojen
names
; -
WHERE
-ehto tarkistaa, ovatko nämä osastot taulussa sisäkkäisestä kyselystä; -
Saamme halutun tuloksen.
Tässä on sisäkkäisen kyselyn perussyntaksi:
SELECT columns
FROM table_1
WHERE column_name IN (
SELECT column
FROM table_2
other clauses
)
Kun käytät sisäkkäisiä kyselyitä, pidä mielessä seuraavat tärkeät seikat:
-
Yksi tulos sisäkkäisessä kyselyssä: 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 olennaista operaattoreille kuten
=
,>
,<
,>=
,<=
,<>
; -
Tietotyypit: palautetun sarakkeen tietotyypin tulee vastata saraketta, johon sitä verrataan, virheiden välttämiseksi;
-
Optimointi: sisäkkäiset kyselyt voivat olla hitaita, erityisesti jos ne suoritetaan jokaiselle pääkyselyn riville;
-
IN-operaattorin käyttö: sisäkkäisissä kyselyissä käytetään usein
IN
-operaattoria arvojen tarkistamiseen osajoukossa. Voit myös käyttää vertailuoperaattoreita monimutkaisempiin ehtoihin.
1. Mikä on sisäkkäinen kysely SQL:ssä?
2. Mitä SQL-operaattoria käytetään yleisesti sisäkkäisten kyselyjen kanssa arvojen tarkistamiseen osajoukosta?
3. Miksi on tärkeää, että sisäkkäisen kyselyn palauttaman sarakkeen tietotyyppi vastaa saraketta, johon sitä verrataan?
Kiitos palautteestasi!