SQLite subquery
Sottoquery o query nidificate o query interno è incorporato nella query clausola WHERE all'interno di un'altra interrogazione SQLite.
L'uso di sub-query restituisce i dati saranno utilizzati nella query principale, come condizione per limitare ulteriormente i dati che devono essere recuperati.
Subquery possono essere utilizzati con SELECT, INSERT, UPDATE e DELETE possono essere accompagnati dagli operatori di utilizzo, come =, <,>,> =, <=, IN, piace TRA.
Il seguente è un subquery varie regole che devono essere seguite:
Subquery devono essere racchiuse tra parentesi.
Sub-query SELECT clausola può avere una sola colonna, a meno che non più colonne nella query principale, il confronto della colonna sottoquery selezionata.
ORDER BY non può essere utilizzato in una sottoquery, anche se l'interrogazione principale può usare ORDER BY. È possibile utilizzare il GROUP BY in sottoquery, funzioni lo stesso come ORDER BY.
subquery restituisce più di una riga, possono essere utilizzati solo con operatore a più valori, come ad esempio l'operatore IN.
TRA operatore non può essere utilizzato con sub-query, tuttavia, TRA possono essere usati all'interno sottointerrogazioni.
SELEZIONA subquery dichiarazione
Sottoquery di solito è usato con un'istruzione SELECT. La sintassi di base è la seguente:
SELEZIONE column_name [, nome_colonna] FROM tabella1 [, table2] DOVE column_name OPERATORE (SELEZIONE column_name [, nome_colonna] FROM tabella1 [, table2] [WHERE])
Esempi
tavolo COMPANY Supponiamo che ha i seguenti documenti:
NOME ID Età Indirizzo STIPENDIO ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norvegia 20000.0 4 Mark 25 Rich-Mond 65.000,0 5 David 27 Texas 85.000,0 6 Kim 22 Sud-Hall 45.000,0 7 James 24 Houston 10000.0
Ora, esaminiamo il subquery SELECT:
sqlite> SELECT * DA AZIENDA DOVE ID IN (SELECT MATR DA AZIENDA WHERE STIPENDIO> 45000);
Questo produce i seguenti risultati:
NOME ID Età Indirizzo STIPENDIO ---------- ---------- ---------- ---------- ---------- 4 Mark 25 Rich-Mond 65.000,0 5 David 27 Texas 85.000,0
INSERT dichiarazione subquery
Subquery possono essere utilizzati anche con istruzione INSERT. istruzione INSERT utilizza una subquery per restituire i dati in un'altra tabella. Nell'Africa sub-query i dati selezionati possono essere qualsiasi carattere, la data, o modifica funzione numerica.
La sintassi di base è la seguente:
INSERT INTO nome_tabella [(column1 [, column2])] SELECT [* | column1 [, column2] FROM tabella1 [, table2] [Dove il valore OPERATORE]
Esempi
Supponiamo COMPANY_BKP COMPANY struttura della tabella e simili, e può utilizzare lo stesso CREATE TABLE per creare, appena cambiato il nome della COMPANY_BKP tavolo. Ora copiare l'intera tabella COMPANY a COMPANY_BKP, la sintassi è la seguente:
sqlite> INSERT INTO COMPANY_BKP SELECT * FROM COMPANY DOVE ID IN (SELECT MATR Da Company);
UPDATE dichiarazione subquery
Subquery possono essere utilizzati con l'istruzione UPDATE. Quando si utilizza un'istruzione UPDATE sottoquery, colonne singole o multiple vengono aggiornati nella tabella.
La sintassi di base è la seguente:
UPDATE tabella SET nome_colonna = NEW_VALUE [In cui l'operatore [VALUE] (SELEZIONA COLUMN_NAME DA TABLE_NAME) [WHERE)]
Esempi
Supponiamo di avere tavolo COMPANY_BKP, tavolo COMPANY backup.
I seguenti esempi della tabella COMPANY tutto AGE o uguale a 27 clienti STIP aggiornato l'originale 0.50 volte:
sqlite> azienda Aggiornare Salario = STIPENDIO * 0.50 In cui l'età IN (SELECT età da COMPANY_BKP In cui l'età> = 27);
Questo influenzerà le due linee degli ultimi record Società nella tabella come segue:
NOME ID Età Indirizzo STIPENDIO ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 10000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norvegia 20000.0 4 Mark 25 Rich-Mond 65.000,0 5 David 27 Texas 42.500,0 6 Kim 22 Sud-Hall 45.000,0 7 James 24 Houston 10000.0
DELETE subquery dichiarazione
Subquery possono essere utilizzati con l'istruzione DELETE, proprio come le altre dichiarazioni come accennato in precedenza.
La sintassi di base è la seguente:
DELETE FROM TABLE_NAME [In cui l'operatore [VALUE] (SELEZIONA COLUMN_NAME DA TABLE_NAME) [WHERE)]
Esempi
Supponiamo di avere tavolo COMPANY_BKP, tavolo COMPANY backup.
Gli esempi che seguono eliminare tutti i record dei clienti maggiore o uguale AGE 27 tavolo COMPANY:
sqlite> DELETE FROM COMPANY In cui l'età IN (SELECT età da COMPANY_BKP In cui l'età> 27);
Questo influenzerà le due linee degli ultimi record Società nella tabella come segue:
NOME ID Età Indirizzo STIPENDIO ---------- ---------- ---------- ---------- ---------- 2 Allen 25 Texas 15000.0 3 Teddy 23 Norvegia 20000.0 4 Mark 25 Rich-Mond 65.000,0 5 David 27 Texas 42.500,0 6 Kim 22 Sud-Hall 45.000,0 7 James 24 Houston 10000.0