logo

SQL | Apakšvaicājums

SQL apakšvaicājumu var vienkārši definēt kā vaicājumu citā vaicājumā. Citiem vārdiem sakot, mēs varam teikt, ka apakšvaicājums ir vaicājums, kas ir iegults cita SQL vaicājuma WHERE klauzulā. Svarīgi apakšvaicājumu noteikumi:

  • Apakšvaicājumu var ievietot vairākās SQL klauzulās: KUR klauzula, HAVING klauzula, FROM klauzula. Apakšvaicājumus var izmantot ar SELECT, UPDATE, INSERT, DELETE priekšrakstiem kopā ar izteiksmes operatoru. Tas varētu būt vienlīdzības operators vai salīdzināšanas operators, piemēram, =,>, =, <= un operators Like.
  • Apakšvaicājums ir vaicājums citā vaicājumā. Ārējais vaicājums tiek saukts kā galvenais vaicājums un iekšējo vaicājumu sauc kā apakšvaicājums .
  • Apakšvaicājums parasti tiek izpildīts pirmais, ja apakšvaicājumā tāda nav kopattiecības Ar galvenais vaicājums , ja pastāv kopsakarība, parsētājs pieņem lēmumu lidojumā kurā vaicājumā izpildīt prioritāte un attiecīgi izmanto apakšvaicājuma izvadi.
  • Apakšvaicājums jāiekļauj iekavās.
  • Apakšvaicājumi atrodas salīdzināšanas operatora labajā pusē.
  • SAKĀRTOT PĒC komandu nevar izmantot apakšvaicājumā. GROUPBY komandu var izmantot, lai veiktu to pašu funkciju kā komanda ORDER BY.
  • Izmantojiet vienas rindas operatorus ar vienas rindas apakšvaicājumiem. Izmantojiet vairāku rindu operatorus ar vairāku rindu apakšvaicājumiem.

Sintakse: Apakšvaicājumiem nav vispārējas sintakses. Tomēr tiek uzskatīts, ka apakšvaicājumi tiek izmantoti visbiežāk ar SELECT priekšrakstu, kā parādīts tālāk:



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

Tabulas paraugs :

DATU BĀZE

VĀRDS ROLL_NO ATRAŠANĀS VIETA TELEFONA NUMURS
Ram 101 Čennaja 9988775566
Raj 102 Koimbatore 8877665544
Sasi 103 Madurai 7766553344
Ārstēšana 104 Salem 8989898989
Sumathi 105 Kančipurama 8989856868

STUDENTS



VĀRDS ROLL_NO SADAĻA
Ārstēšana 104 A
Sumathi 105 B
Raj 102 A

Vaicājumu paraugi

:

  • Lai parādītu NAME, LOCATION, PHONE_NUMBER no skolēniem no DATABASE tabulas, kuras sadaļa ir A
Select NAME, LOCATION, PHONE_NUMBER from DATABASE WHERE ROLL_NO IN (SELECT ROLL_NO from STUDENT where SECTION=’A’);>
    Paskaidrojums: pirmais apakšvaicājums izpilda SELECT ROLL_NO no STUDENT, kur SECTION='A' atgriež ROLL_NO no tabulas STUDENT, kuras SECTION ir 'A'. Pēc tam ārējais vaicājums izpilda to un atgriež NAME, LOCATION, PHONE_NUMBER no skolēna, kura ROLL_NO DATU BĀZES tabulas. tiek atgriezts no iekšējā apakšvaicājuma. Izvade:
VĀRDS ROLL_NO ATRAŠANĀS VIETA TELEFONA NUMURS
Ārstēšana 104 Salem 8989898989
Raj 102 Koimbatore 8877665544
  • Ievietot vaicājuma piemēru:

1. tabula: Student1



VĀRDS ROLL_NO ATRAŠANĀS VIETA TELEFONA NUMURS
Ram 101 čennai 9988773344
Raju 102 koimbatore 9090909090
Ārstēšana 103 Salem 8989898989

2. tabula: Student2

VĀRDS ROLL_NO ATRAŠANĀS VIETA TELEFONA NUMURS
Raj 111 čennai 8787878787
Līdz plkst 112 Mumbaja 6565656565
Šri 113 koimbatore 7878787878
  • Lai ievietotu Student2 tabulā Student1:
INSERT INTO Student1 SELECT * FROM Student2;>
  • Izvade:
VĀRDS ROLL_NO ATRAŠANĀS VIETA TELEFONA NUMURS
Ram 101 čennai 9988773344
Raju 102 koimbatore 9090909090
Ārstēšana 103 Salem 8989898989
Raj 111 čennai 8787878787
Līdz plkst 112 Mumbaja 6565656565
Šri 113 koimbatore 7878787878
  • Dzēst studentus no tabulas Student2, kuru rollno ir tāds pats kā Student1 tabulā un kura atrašanās vieta ir chennai
DELETE FROM Student2 WHERE ROLL_NO IN ( SELECT ROLL_NO FROM Student1 WHERE LOCATION = ’chennai’);>
  • Izvade:
1 row delete successfully.>
    Parādīt Student2 tabulu:
VĀRDS ROLL_NO ATRAŠANĀS VIETA TELEFONA NUMURS
Līdz plkst 112 Mumbaja 6565656565
Šri 113 koimbatore 7878787878
  • Atjaunināt studentu vārdus uz Geeks tabulā Student2, kuru atrašanās vieta ir tāda pati kā Raju, Ravi tabulā Student1
UPDATE Student2 SET NAME=’geeks’ WHERE LOCATION IN ( SELECT LOCATION FROM Student1 WHERE NAME IN (‘Raju’,’Ravi’));>
  • Izvade:
1 row updated successfully.>
    Parādīt Student2 tabulu:
VĀRDS ROLL_NO ATRAŠANĀS VIETA TELEFONA NUMURS
Līdz plkst 112 Mumbaja 6565656565
geeks 113 koimbatore 7878787878