Latest web development tutorials

SQLite subconsulta

Subquery ou consultas aninhadas ou consulta interna é incorporado na consulta cláusula WHERE dentro de outra consulta SQLite.

O uso da sub-consulta devolve os dados serão utilizados na consulta principal como uma condição para limitar ainda mais os dados a serem recuperados.

Subqueries pode ser usado com SELECT, INSERT, UPDATE e DELETE podem ser acompanhados pelos operadores de uso como =, <,>,> =, <=, IN, ENTRE gosta.

O que se segue é uma subconsulta várias regras que devem ser seguidas:

  • Subqueries devem ser colocados entre parênteses.

  • Sub-consulta cláusula SELECT só pode ter uma coluna, a menos que várias colunas na consulta principal, a comparação coluna subconsulta selecionado.

  • POR ORDEM não pode ser usado em uma subconsulta, embora o principal consulta pode utilizar ORDER BY. Você pode usar o GROUP BY em subconsultas, funciona o mesmo que o ORDER BY.

  • retornos subconsulta mais do que uma linha, só pode ser usado com o operador de multi-valor, tais como o operador IN.

  • ENTRE operador não pode ser usado com sub-consultas, no entanto, ENTRE pode ser usado dentro de subconsultas.

subconsulta instrução SELECT

Subquery geralmente é usado com uma instrução SELECT. A sintaxe básica é a seguinte:

column_name SELECT [, column_name]
FROM table1 [, table2]
Onde o operador column_name
      (Column_name SELECT [, column_name]
      FROM table1 [, table2]
      [WHERE])

Exemplos

mesa EMPRESA Suponha que tem os seguintes registros:

ID NOME SALÁRIO IDADE ENDEREÇO
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20.000,0
2 Allen 25 Texas 15.000,0
3 Teddy 23 Norway 20.000,0
4 Mark 25 Rich-Mond 65.000,0
5 David 27 Texas 85.000,0
6 Kim 22 Sul-Hall 45.000,0
7 James 24 Houston 10000.0

Agora, vamos examinar a subconsulta instrução SELECT:

sqlite> SELECT * 
     De Company 
     WHERE ID IN (SELECT ID 
                  De Company 
                  WHERE SALÁRIO> 45000);

Isto produz os seguintes resultados:

ID NOME SALÁRIO IDADE ENDEREÇO
---------- ---------- ---------- ---------- ----------
4 Mark 25 Rich-Mond 65.000,0
5 David 27 Texas 85.000,0

INSERÇÃO subconsulta de instrução

Subqueries também pode ser usado com a instrução INSERT. INSERT usa uma subconsulta para retornar dados em outra tabela. Na sub-consulta os dados selecionados podem ser qualquer caractere, data, ou modificação função numérica.

A sintaxe básica é a seguinte:

INSERT INTO table_name [(column1 [, column2])]
           SELECT [* | coluna1 [, column2]
           FROM table1 [, table2]
           [Onde o valor OPERADOR]

Exemplos

Suponha COMPANY_BKP COMPANY estrutura da tabela e semelhantes, e pode usar o mesmo CREATE TABLE para criar, apenas mudou o nome do COMPANY_BKP mesa. Agora copie a tabela a companhia inteira para COMPANY_BKP, a sintaxe é a seguinte:

sqlite> INSERT INTO COMPANY_BKP
     * SELECT FROM COMPANY 
     WHERE ID IN (SELECT ID 
                  De Company);

ATUALIZAÇÃO subconsulta de instrução

Subqueries pode ser usado com a instrução UPDATE. Ao usar um instrução UPDATE subconsulta, colunas simples ou múltiplos são atualizados na tabela.

A sintaxe básica é a seguinte:

UPDATE tabela
SET nome_coluna = novo_valor
[Onde o operador [VALUE]
   (Selecione COLUMN_NAME
   DE TABLE_NAME)
   [WHERE)]

Exemplos

Suponha que temos mesa COMPANY_BKP, mesa COMPANY backup.

Os seguintes exemplos de tabela de COMPANY Toda a idade igual ou superior a 27 clientes SALÁRIO atualizou a 0,50 vezes originais:

sqlite> Atualização COMPANY
     SET SALÁRIO = SALÁRIO * 0,50
     Onde a idade IN (SELECT em geral de COMPANY_BKP
                   Onde a idade> = 27);

Isto irá afectar as duas linhas dos últimos registros da companhia na tabela da seguinte forma:

ID NOME SALÁRIO IDADE ENDEREÇO
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 10000.0
2 Allen 25 Texas 15.000,0
3 Teddy 23 Norway 20.000,0
4 Mark 25 Rich-Mond 65.000,0
5 David 27 Texas 42.500,0
6 Kim 22 Sul-Hall 45.000,0
7 James 24 Houston 10000.0

subconsulta instrução DELETE

Subqueries pode ser usado com a instrução DELETE, assim como outras declarações como mencionado acima.

A sintaxe básica é a seguinte:

DELETE FROM TABLE_NAME
[Onde o operador [VALUE]
   (Selecione COLUMN_NAME
   DE TABLE_NAME)
   [WHERE)]

Exemplos

Suponha que temos mesa COMPANY_BKP, mesa COMPANY backup.

Os exemplos a seguir excluir todos os registros de clientes maior ou igual tabela COMPANY AGE 27:

sqlite> DELETE FROM COMPANY
     Onde a idade IN (SELECT em geral de COMPANY_BKP
                   Onde a idade> 27);

Isto irá afectar as duas linhas dos últimos registros da companhia na tabela da seguinte forma:

ID NOME SALÁRIO IDADE ENDEREÇO
---------- ---------- ---------- ---------- ----------
2 Allen 25 Texas 15.000,0
3 Teddy 23 Norway 20.000,0
4 Mark 25 Rich-Mond 65.000,0
5 David 27 Texas 42.500,0
6 Kim 22 Sul-Hall 45.000,0
7 James 24 Houston 10000.0