logo

SQL | Undersøk

I SQL kan en underspørring ganske enkelt defineres som en spørring i en annen spørring. Med andre ord kan vi si at en underspørring er en spørring som er innebygd i WHERE-klausulen til en annen SQL-spørring. Viktige regler for underspørringer:

  • Du kan plassere underspørringen i en rekke SQL-klausuler: HVOR klausul, HAVING-klausul, FROM-klausul. Underspørringer kan brukes med SELECT, UPDATE, INSERT, DELETE-setninger sammen med uttrykksoperator. Det kan være likhetsoperator eller sammenligningsoperator som =,>, =, <= og Like-operator.
  • En underspørring er en spørring i en annen spørring. Den ytre spørringen kalles som hovedspørsmålet og indre spørring kalles som underspørring .
  • Underspørringen kjøres vanligvis først når underspørringen ikke har noen samrelasjon med hovedspørsmålet , når det er en co-relasjon tar parseren avgjørelsen i farten på hvilken spørring som skal utføres på presedens og bruker utdataene fra underspørringen tilsvarende.
  • Underspørring må settes i parentes.
  • Underspørringer er på høyre side av sammenligningsoperatoren.
  • REKKEFØLGE ETTER kommando kan ikke brukes i en underspørring. GRUPPE AV kommandoen kan brukes til å utføre samme funksjon som ORDER BY-kommandoen.
  • Bruk enkeltradsoperatorer med enkeltrads underspørringer. Bruk operatorer med flere rader med underspørringer med flere rader.

Syntaks: Det er ingen generell syntaks for underspørringer. Imidlertid ser det ut til at underspørringer brukes oftest med SELECT-setningen som vist nedenfor:

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

Eksempeltabell :



DATABASE

NAVN ROLL_NO PLASSERING TELEFONNUMMER
RAM 101 Chennai 9988775566
Raj 102 Coimbatore 8877665544
Sasi 103 Madurai 7766553344
Behandling 104 Salem 8989898989
Sumathi 105 Kanchipuram 8989856868

STUDENT

NAVN ROLL_NO SEKSJON
Behandling 104 EN
Sumathi 105 B
Raj 102 EN

Eksempelspørsmål

:

  • For å vise NAME, LOCATION, PHONE_NUMBER av elevene fra DATABASE-tabellen hvis del er A
Select NAME, LOCATION, PHONE_NUMBER from DATABASE WHERE ROLL_NO IN (SELECT ROLL_NO from STUDENT where SECTION=’A’);>
    Forklaring: Første underspørring utfører SELECT ROLL_NO fra STUDENT der SECTION='A' returnerer ROLL_NO fra STUDENT-tabellen hvis SECTION er 'A'. Deretter utfører den ytre spørringen den og returnerer NAME, LOCATION, PHONE_NUMBER fra DATABASE-tabellen til studenten som har ROLL_NO returneres fra indre underspørring. Produksjon:
NAVN ROLL_NO PLASSERING TELEFONNUMMER
Behandling 104 Salem 8989898989
Raj 102 Coimbatore 8877665544
  • Sett inn spørringseksempel:

Tabell1: Student1

fordelene med elektrisitet
NAVN ROLL_NO PLASSERING TELEFONNUMMER
RAM 101 chennai 9988773344
Raju 102 coimbatore 9090909090
Behandling 103 salem 8989898989

Tabell2: Student2

NAVN ROLL_NO PLASSERING TELEFONNUMMER
Raj 111 chennai 8787878787
Før 112 mumbai 6565656565
Sri 113 coimbatore 7878787878
  • Slik setter du inn Student2 i Student1-tabellen:
INSERT INTO Student1 SELECT * FROM Student2;>
  • Produksjon:
NAVN ROLL_NO PLASSERING TELEFONNUMMER
RAM 101 chennai 9988773344
Raju 102 coimbatore 9090909090
Behandling 103 salem 8989898989
Raj 111 chennai 8787878787
Før 112 mumbai 6565656565
Sri 113 coimbatore 7878787878
  • For å slette studenter fra Student2-tabellen hvis rollno er den samme som i Student1-tabellen og har plassering som chennai
DELETE FROM Student2 WHERE ROLL_NO IN ( SELECT ROLL_NO FROM Student1 WHERE LOCATION = ’chennai’);>
  • Produksjon:
1 row delete successfully.>
    Vis elev2-tabell:
NAVN ROLL_NO PLASSERING TELEFONNUMMER
Før 112 mumbai 6565656565
Sri 113 coimbatore 7878787878
  • For å oppdatere navnet på studentene til nerder i Student2-tabellen hvis plassering er den samme som Raju,Ravi i Student1-tabellen
UPDATE Student2 SET NAME=’geeks’ WHERE LOCATION IN ( SELECT LOCATION FROM Student1 WHERE NAME IN (‘Raju’,’Ravi’));>
  • Produksjon:
1 row updated successfully.>
    Vis elev2-tabell:
NAVN ROLL_NO PLASSERING TELEFONNUMMER
Før 112 mumbai 6565656565
nerder 113 coimbatore 7878787878