logo

SQL | Alakysely

SQL:ssä alikysely voidaan yksinkertaisesti määritellä kyselyksi toisen kyselyn sisällä. Toisin sanoen voimme sanoa, että alikysely on kysely, joka on upotettu toisen SQL-kyselyn WHERE-lauseeseen. Tärkeitä alakyselyitä koskevia sääntöjä:

  • Voit sijoittaa alikyselyn useisiin SQL-lauseisiin: MISSÄ lauseke, HAVING lauseke, FROM-lause. Alikyselyitä voidaan käyttää SELECT-, UPDATE-, INSERT-, DELETE-käskyjen sekä lausekeoperaattorin kanssa. Se voi olla yhtäläisyysoperaattori tai vertailuoperaattori, kuten =,>, =, <= ja Like-operaattori.
  • Alikysely on toisen kyselyn sisällä oleva kysely. Ulkoista kyselyä kutsutaan nimellä pääkysely ja sisäistä kyselyä kutsutaan nimellä alikysely .
  • Alikysely suoritetaan yleensä ensin, kun alikyselyllä ei ole yhtään yhteissuhde kanssa pääkysely , kun on yhteissuhde, jäsentäjä tekee päätöksen lennossa millä kyselyllä suoritetaan etusijalla ja käyttää alikyselyn tulosta vastaavasti.
  • Alakysely on suluissa.
  • Alikyselyt ovat vertailuoperaattorin oikealla puolella.
  • TILAA komento ei voi käyttää alikyselyssä. GROUPBY -komentoa voidaan käyttää suorittamaan sama toiminto kuin ORDER BY -komento.
  • Käytä yksirivisiä operaattoreita yksirivisten alikyselyiden kanssa. Käytä usean rivin operaattoreita usean rivin alikyselyissä.

Syntaksi: Alikyselyille ei ole yleistä syntaksia. Alikyselyitä käytetään kuitenkin useimmin SELECT-käskyn kanssa, kuten alla on esitetty:



SELECT column_name FROM table_name WHERE column_name expression operator ( SELECT COLUMN_NAME from TABLE_NAME WHERE ... );>

Esimerkkitaulukko :

TIETOKANTA

NIMI ROLL_NO SIJAINTI PUHELINNUMERO
RAM 101 Chennai 9988775566
Raj 102 Coimbatore 8877665544
Sasi 103 Madurai 7766553344
Hoito 104 Salem 8989898989
Sumathi 105 Kanchipuram 8989856868

OPISKELIJA



NIMI ROLL_NO OSA
Hoito 104 A
Sumathi 105 B
Raj 102 A

Esimerkkikyselyt

:

  • Näytä NAME, LOCATION, PHONE_NUMBER oppilaista DATABASE-taulukosta, jonka osio on A
Select NAME, LOCATION, PHONE_NUMBER from DATABASE WHERE ROLL_NO IN (SELECT ROLL_NO from STUDENT where SECTION=’A’);>
    Selitys: Ensimmäinen alikysely suorittaa SELECT ROLL_NO opiskelijalta, jossa SECTION='A' palauttaa ROLL_NO OPPILAS-taulukosta, jonka OSA on 'A'. Sitten ulkoinen kysely suorittaa sen ja palauttaa NAME, SIJAINTI, PHONE_NUMBER sen opiskelijan, jonka ROLL_NO TIETOKANTA-taulukosta. palautetaan sisäisestä alikyselystä. Lähtö:
NIMI ROLL_NO SIJAINTI PUHELINNUMERO
Hoito 104 Salem 8989898989
Raj 102 Coimbatore 8877665544
  • Lisää kyselyesimerkki:

Taulukko 1: Opiskelija1



NIMI ROLL_NO SIJAINTI PUHELINNUMERO
RAM 101 Chennai 9988773344
Raju 102 koimbatore 9090909090
Hoito 103 Salem 8989898989

Taulukko2: Opiskelija2

NIMI ROLL_NO SIJAINTI PUHELINNUMERO
Raj 111 Chennai 8787878787
Siihen asti kun 112 Mumbai 6565656565
Sri 113 koimbatore 7878787878
  • Opiskelija2:n lisääminen Opiskelija1-taulukkoon:
INSERT INTO Student1 SELECT * FROM Student2;>
  • Lähtö:
NIMI ROLL_NO SIJAINTI PUHELINNUMERO
RAM 101 Chennai 9988773344
Raju 102 koimbatore 9090909090
Hoito 103 Salem 8989898989
Raj 111 Chennai 8787878787
Siihen asti kun 112 Mumbai 6565656565
Sri 113 koimbatore 7878787878
  • Poistaa opiskelija2-taulukosta opiskelijoita, joiden rollno on sama kuin Opiskelija1-taulukossa ja jonka sijainti on chennai
DELETE FROM Student2 WHERE ROLL_NO IN ( SELECT ROLL_NO FROM Student1 WHERE LOCATION = ’chennai’);>
  • Lähtö:
1 row delete successfully.>
    Näytä Student2-taulukko:
NIMI ROLL_NO SIJAINTI PUHELINNUMERO
Siihen asti kun 112 Mumbai 6565656565
Sri 113 koimbatore 7878787878
  • Päivittää opiskelijoiden nimet nörteiksi Student2-taulukossa, jonka sijainti on sama kuin Raju,Ravi Student1-taulukossa
UPDATE Student2 SET NAME=’geeks’ WHERE LOCATION IN ( SELECT LOCATION FROM Student1 WHERE NAME IN (‘Raju’,’Ravi’));>
  • Lähtö:
1 row updated successfully.>
    Näytä Student2-taulukko:
NIMI ROLL_NO SIJAINTI PUHELINNUMERO
Siihen asti kun 112 Mumbai 6565656565
nörttiä 113 koimbatore 7878787878