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äytetään WHERE-ehtoa määrittämään, että osaston nimi tulee löytyä sisäisen kyselyn palauttamasta taulusta.
Jaetaan tämä kysely kahteen erilliseen osaan havainnollistamaan sen toimintaa. Ensin haetaan osastojen nimet, joiden budjetti on korkeintaan 500 000 dollaria (sisäinen kysely):
123SELECT name FROM department WHERE budget <= 500000
Nyt, ottaen huomioon saadun tuloksen, kirjoitetaan toinen kysely tietojen hakemiseksi 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äinen kysely hakee tarvitsemiemme osastojen
names; -
WHERE-ehto tarkistaa, ovatko nämä osastot taulukossa, jonka sisäinen kysely palauttaa; -
Saat 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ä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äiset kyselyt käyttävät usein
IN-operaattoria arvojen tarkistamiseen osajoukosta. Voit käyttää myös 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 how the nested query works in the first SQL example?
What are some common mistakes to avoid when using nested queries?
Can you show more examples of nested queries with different operators?
Mahtavaa!
Completion arvosana parantunut arvoon 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äytetään WHERE-ehtoa määrittämään, että osaston nimi tulee löytyä sisäisen kyselyn palauttamasta taulusta.
Jaetaan tämä kysely kahteen erilliseen osaan havainnollistamaan sen toimintaa. Ensin haetaan osastojen nimet, joiden budjetti on korkeintaan 500 000 dollaria (sisäinen kysely):
123SELECT name FROM department WHERE budget <= 500000
Nyt, ottaen huomioon saadun tuloksen, kirjoitetaan toinen kysely tietojen hakemiseksi 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äinen kysely hakee tarvitsemiemme osastojen
names; -
WHERE-ehto tarkistaa, ovatko nämä osastot taulukossa, jonka sisäinen kysely palauttaa; -
Saat 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ä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äiset kyselyt käyttävät usein
IN-operaattoria arvojen tarkistamiseen osajoukosta. Voit käyttää myös 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!