Latest web development tutorials

SQLite podzapytanie

Podzapytanie lub zagnieżdżone zapytania lub zapytanie wewnętrzna jest wbudowana w zapytaniu WHERE w innym zapytaniu SQLite.

Korzystanie z sub-zapytania zwraca dane zostaną wykorzystane w głównej kwerendy jako warunek dalszego ograniczenia dane mają być pobierane.

Podzapytania może być używany z SELECT, INSERT, UPDATE i DELETE mogą towarzyszyć operatorów użytku, takich jak =, <,>,> =, <=, IN BETWEEN podoba.

Poniżej znajduje podkwerendzie kilka zasad, których należy przestrzegać:

  • Podzapytania musi być ujęty w nawiasy.

  • Sub-query SELECT klauzula może mieć tylko jedną kolumnę, chyba wielu kolumn w głównym zapytaniu, wybranego porównaniu kolumna podzapytanie.

  • BY nie może być stosowany w podkwerendzie, chociaż głównym zapytanie może wykorzystywać BY. Można użyć GROUP BY w podzapytania, działa tak samo jak ORDER BY.

  • Podzapytanie zwraca więcej niż jeden wiersz, może być używany tylko z operatorem wielu wartości, takich jak operatora IN.

  • OD operator nie może być stosowany z sub-zapytań Jednak między mogą być stosowane w podzapytaniach.

SELECT podzapytania

Podzapytanie jest zwykle używany z SELECT. Składnia podstawowa jest następujący:

SELECT column_name [, nazwa_kolumny]
Z Tabela1 [, Tabela 2]
GDZIE column_name OPERATOR
      (SELECT column_name [, nazwa_kolumny]
      Z Tabela1 [, Tabela 2]
      [GDZIE])

Przykłady

Załóżmy, że stół Spółka posiada następujące zapisy:

NAZWA ID AGE ADRES WYNAGRODZENIE
---------- ---------- ---------- ---------- ----------
1 Paweł 32 California 20000,0
2 Allen 25 Texas 15000,0
3 Teddy 23 Norwegia 20000,0
4 Mark 25 Rich-Mond 65000,0
5 Dawid 27 Texas 85000,0
6 Kim 22 South-Hall 45000,0
7 James 24 Houston 10000,0

Teraz zbadajmy instrukcji SELECT podzapytania:

sqlite> SELECT * 
     OD PRODUCENTA 
     WHERE id IN (SELECT ID 
                  OD PRODUCENTA 
                  WHERE Pensja> 45000);

To daje następujące wyniki:

NAZWA ID AGE ADRES WYNAGRODZENIE
---------- ---------- ---------- ---------- ----------
4 Mark 25 Rich-Mond 65000,0
5 Dawid 27 Texas 85000,0

INSERT Podzapytanie

Podzapytania może być również używany z INSERT. INSERT używa podzapytania, aby powrócić danych w innej tabeli. W pod-zapytania wybranych danych może być dowolny znak, data lub numeryczny modyfikacji funkcji.

Składnia podstawowa jest następujący:

INSERT INTO nazwa_tabeli [(kolumna1 [, kolumna2])]
           SELECT [* | kolumna1 [, kolumna2]
           Z Tabela1 [, Tabela 2]
           [GDZIE WARTOŚĆ OPERATORA]

Przykłady

Załóżmy COMPANY_BKP struktura firmy stołowego i podobne, i może korzystać z tego samego Tworzenie tabeli do tworzenia, po prostu zmienił nazwę COMPANY_BKP stołowego. Teraz skopiować całą tabelę firmę do COMPANY_BKP, składnia jest następująca:

sqlite> INSERT INTO COMPANY_BKP
     SELECT * FROM COMPANY 
     WHERE id IN (SELECT ID 
                  Od spółki);

UPDATE stwierdzenie Podzapytanie

Podzapytania mogą być używane z instrukcji UPDATE. Podczas korzystania z podzapytania UPDATE, pojedyncze lub wielokrotne kolumny są aktualizowane w tabeli.

Składnia podstawowa jest następujący:

UPDATE table
SET nazwa_kolumny = new_value
[WHERE operator [VALUE]
   (SELECT COLUMN_NAME
   Z TABLE_NAME)
   [WHERE)]

Przykłady

Załóżmy, że mamy tabelę COMPANY_BKP, backup tabeli Spółki.

Poniższe przykłady tabeli SPÓŁKA każdym wieku niż lub równy 27 klientów WYNAGRODZENIA zaktualizowaną oryginalną 0,50-krotnie:

sqlite> Firma UPDATE
     SET Pensja = Pensja * 0,50
     GDZIE NA WIEK (SELECT wieku od COMPANY_BKP
                   GDZIE wiek> = 27);

Wpłynie to na dwa wiersze ostatnie wpisy firmowe w tabeli w następujący sposób:

NAZWA ID AGE ADRES WYNAGRODZENIE
---------- ---------- ---------- ---------- ----------
1 Paweł 32 California 10000,0
2 Allen 25 Texas 15000,0
3 Teddy 23 Norwegia 20000,0
4 Mark 25 Rich-Mond 65000,0
5 Dawid 27 Texas 42500,0
6 Kim 22 South-Hall 45000,0
7 James 24 Houston 10000,0

DELETE Podzapytanie

Podzapytania może być używany z DELETE, podobnie jak inne oświadczenia, jak wspomniano powyżej.

Składnia podstawowa jest następujący:

DELETE FROM TABLE_NAME
[WHERE operator [VALUE]
   (SELECT COLUMN_NAME
   Z TABLE_NAME)
   [WHERE)]

Przykłady

Załóżmy, że mamy tabelę COMPANY_BKP, backup tabeli Spółki.

Poniższe przykłady skasować wszystkie dane klientów większa lub równa 27 lat Stół COMPANY:

sqlite> DELETE FROM COMPANY
     GDZIE NA WIEK (SELECT wieku od COMPANY_BKP
                   GDZIE wiek> 27);

Wpłynie to na dwa wiersze ostatnie wpisy firmowe w tabeli w następujący sposób:

NAZWA ID AGE ADRES WYNAGRODZENIE
---------- ---------- ---------- ---------- ----------
2 Allen 25 Texas 15000,0
3 Teddy 23 Norwegia 20000,0
4 Mark 25 Rich-Mond 65000,0
5 Dawid 27 Texas 42500,0
6 Kim 22 South-Hall 45000,0
7 James 24 Houston 10000,0