logo

SQL | Podzapytanie

W języku SQL podzapytanie można po prostu zdefiniować jako zapytanie w ramach innego zapytania. Innymi słowy, możemy powiedzieć, że podzapytanie to zapytanie osadzone w klauzuli WHERE innego zapytania SQL. Ważne zasady dotyczące podzapytań:

aktorka filmowa Kajal
  • Podzapytanie można umieścić w kilku klauzulach SQL: GDZIE klauzula HAVING, klauzula FROM. Podzapytań można używać z instrukcjami SELECT, UPDATE, INSERT, DELETE wraz z operatorem wyrażenia. Może to być operator równości lub operator porównania, taki jak =,>, =, <= i operator Like.
  • Podzapytanie to zapytanie zawarte w innym zapytaniu. Zapytanie zewnętrzne nazywa się as główne zapytanie a zapytanie wewnętrzne nazywa się as podzapytanie .
  • Podzapytanie zazwyczaj jest wykonywane jako pierwsze, jeśli podzapytanie nie zawiera żadnego współzależność z główne zapytanie , gdy istnieje korelacja, decyzję podejmuje parser w locie na którym zapytaniu wykonać precedens i odpowiednio wykorzystuje wynik podzapytania.
  • Podzapytanie musi być ujęte w nawiasy.
  • Podzapytania znajdują się po prawej stronie operatora porównania.
  • ZAMÓW PRZEZ Komenda Nie mogę być użyte w podzapytaniu. GRUPUJ WEDŁUG polecenie może zostać użyte do wykonania tej samej funkcji co polecenie ORDER BY.
  • Używaj operatorów jednowierszowych z podzapytaniami jednowierszowymi. Używaj operatorów wielowierszowych z podzapytaniami z wieloma wierszami.

Składnia: Nie ma żadnej ogólnej składni podzapytań. Jednakże podzapytania są najczęściej używane z instrukcją SELECT, jak pokazano poniżej:

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

Przykładowa tabela :



BAZA DANYCH

NAZWA ROLL_NO LOKALIZACJA NUMER TELEFONU
Baran 101 Chennai 9988775566
Raj 102 Coimbatore 8877665544
Sasi 103 Maduraj 7766553344
Leczenie 104 Salem 8989898989
Sumati 105 Kanchipuram 8989856868

STUDENT

NAZWA ROLL_NO SEKCJA
Leczenie 104 A
Sumati 105 B
Raj 102 A

Przykładowe zapytania

:

  • Aby wyświetlić NAZWISKO, LOKALIZACJĘ, NUMER_TELEFonu uczniów z tabeli DATABASE, której sekcja to A
Select NAME, LOCATION, PHONE_NUMBER from DATABASE WHERE ROLL_NO IN (SELECT ROLL_NO from STUDENT where SECTION=’A’);>
    Objaśnienie: Pierwsze podzapytanie wykonuje SELECT ROLL_NO od STUDENTA, gdzie SECTION='A' zwraca ROLL_NO z tabeli STUDENT, której SECTION to 'A'. Następnie wykonuje je zewnętrzne zapytanie i zwraca NAZWĘ, LOKALIZACJĘ, NUMER_TELEFONA z tabeli DATABASE ucznia, którego ROLL_NO jest zwracane z wewnętrznego podzapytania. Wyjście:
NAZWA ROLL_NO LOKALIZACJA NUMER TELEFONU
Leczenie 104 Salem 8989898989
Raj 102 Coimbatore 8877665544
  • Wstaw przykład zapytania:

Tabela 1: Student1

NAZWA ROLL_NO LOKALIZACJA NUMER TELEFONU
Baran 101 Chennai 9988773344
Raju 102 współistnieć 9090909090
Leczenie 103 salem 8989898989

Tabela 2: Student2

NAZWA ROLL_NO LOKALIZACJA NUMER TELEFONU
Raj 111 Chennai 8787878787
Dopóki 112 Bombaj 6565656565
Sri 113 współistnieć 7878787878
  • Aby wstawić Studenta2 do tabeli Studenta1:
INSERT INTO Student1 SELECT * FROM Student2;>
  • Wyjście:
NAZWA ROLL_NO LOKALIZACJA NUMER TELEFONU
Baran 101 Chennai 9988773344
Raju 102 współistnieć 9090909090
Leczenie 103 salem 8989898989
Raj 111 Chennai 8787878787
Dopóki 112 Bombaj 6565656565
Sri 113 współistnieć 7878787878
  • Aby usunąć uczniów z tabeli Student2, których rollno jest takie samo jak w tabeli Student1 i których lokalizacja to Chennai
DELETE FROM Student2 WHERE ROLL_NO IN ( SELECT ROLL_NO FROM Student1 WHERE LOCATION = ’chennai’);>
  • Wyjście:
1 row delete successfully.>
    Wyświetl tabelę Student2:
NAZWA ROLL_NO LOKALIZACJA NUMER TELEFONU
Dopóki 112 Bombaj 6565656565
Sri 113 współistnieć 7878787878
  • Aby zaktualizować nazwę uczniów do maniaków w tabeli Student2, których lokalizacja jest taka sama jak Raju,Ravi w tabeli Student1
UPDATE Student2 SET NAME=’geeks’ WHERE LOCATION IN ( SELECT LOCATION FROM Student1 WHERE NAME IN (‘Raju’,’Ravi’));>
  • Wyjście:
1 row updated successfully.>
    Wyświetl tabelę Student2:
NAZWA ROLL_NO LOKALIZACJA NUMER TELEFONU
Dopóki 112 Bombaj 6565656565
maniacy 113 współistnieć 7878787878