Latest web development tutorials

SQLite junta

SQLite éjunta cláusula de combinar duas ou mais tabelas nos registros do banco de dados.JOIN é um valor comum através da combinação de dois campos nos meios de mesa.

SQL define três principais tipos de conexões:

  • Cross-connect - CROSS JOIN

  • En - INNER JOIN

  • conexão externa - OUTER JOIN

Antes de continuarmos, vamos supor que existem duas tabelas COMPANY e departamento. Nós vimos usado para preencher COMPANY declaração tabela INSERT. Agora vamos supor registros da tabela de empresa listada abaixo:

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

Outra mesa é o departamento, é definido da seguinte forma:

CRIAR DEPARTAMENTO TABLE (
   ID INT PRIMARY KEY NOT NULL,
   DEPT CHAR (50) NOT NULL,
   EMP_ID INT NOT NULL
);

O seguinte é uma tabela DEPARTMENT instrução INSERT preenchido:

INSERT INTO DEPARTAMENTO (ID, DEPT, EMP_ID)
VALUES (1, 'IT faturamento ", 1);

INSERT INTO DEPARTAMENTO (ID, DEPT, EMP_ID)
VALUES (2, 'Engenharia', 2);

INSERT INTO DEPARTAMENTO (ID, DEPT, EMP_ID)
VALUES (3, 'Finanças', 7);

Finalmente, temos a seguinte lista de registros na tabela DEPARTMENT:

ID DEPT EMP_ID
---------- ---------- ----------
1 Billing 1
2 Engineerin 2
3 Finanças 7

Cross-connect - CROSS JOIN

Cross-connect (CROSS JOIN) cada linha da primeira tabela com cada linha da segunda tabela para corresponder. Se ambas as colunas da tabela de entrada de x e y, respectivamente, a tabela resultante tem x + y colunas. Uma vez que o cross-connect (CROSS JOIN) pode produzir uma tabela muito grande, você deve ter cuidado ao usá-los apenas quando apropriado.

Aqui está a sintaxe para cross-connect (CROSS JOIN) de:

SELECT ... FROM CROSS table1 Cadastre table2 ...

Com base na tabela acima, podemos escrever uma cross-connect (CROSS JOIN), como segue:

sqlite> EMP_ID SELECT, NOME, DEPARTAMENTO DE EMPRESA CROSS JOIN departamento;

A consulta acima irá produzir os seguintes resultados:

EMP_ID NOME DEPT
---------- ---------- ----------
Faturamento 1 Paul TI
2 Paul Engineerin
7 Paulo Finanças
Faturamento 1 Allen TI
2 Allen Engineerin
7 Allen Finanças
Faturamento 1 Teddy TI
2 Teddy Engineerin
7 Teddy Finanças
Faturamento 1 Mark TI
2 Mark Engineerin
7 Mark Finanças
Faturamento 1 David TI
2 David Engineerin
7 David Finanças
Faturamento 1 Kim TI
2 Kim Engineerin
7 Kim Finanças
Faturamento 1 James TI
2 James Engineerin
7 James Finanças

En - INNER JOIN

conexão interna (INNER JOIN) para criar uma nova tabela de resultados combinar duas tabelas (tabela1 e tabela2) Participe valores da coluna de predicados. Consultas vai tabela1 e tabela2 em cada linha em cada linha são comparados para encontrar todas as linhas que satisfazem o predicado pares correspondentes participar. Quando estiver satisfeito juntar-se valores de colunas de predicados A e B cada linha correspondente do resultado serão fundidos em uma linha.

conexão interna (INNER JOIN) é o tipo mais comum de conexão é o tipo de conexão padrão. palavra-chave INNER é opcional.

Aqui está a sintaxe para uma junção interna (INNER JOIN) de:

SELECT ... FROM table1 [INNER] JOIN table2 ON conditional_expression ...

A fim de evitar a redundância e manter o texto curto, você pode usar a instrução na conexão expressãoUSANDO (INNER JOIN) condições.Esta expressão especifica de uma lista de uma ou mais colunas:

SELECT ... FROM table1 Cadastre table2 USANDO (column1, ...) ...

ligação natural (junção natural) é semelhante aoADERIR QUE USA ..., mas será igual valor entre o valor das duas tabelas em cada coluna testar automaticamente a presença de:

SELECT ... FROM table1 table2 junção natural ...

Com base na tabela acima, pode-se escrever uma junção interna (INNER JOIN), como se segue:

sqlite> EMP_ID SELECT, NOME, DEPARTAMENTO DE EMPRESA INNER JOIN DEPARTAMENTOS
        ON COMPANY.ID = DEPARTMENT.EMP_ID;

A consulta acima irá produzir os seguintes resultados:

EMP_ID NOME DEPT
---------- ---------- ----------
Faturamento 1 Paul TI
2 Allen Engineerin
7 James Finanças

conexão externa - OUTER JOIN

conexão externa (OUTER JOIN) é uma junção interna (INNER JOIN) extensões. Embora padrão SQL define três tipos de associações externas: esquerda, direita, completo, mas SQLite só suportaLEFT JOIN exterior (LEFT OUTER JOIN).

conexão externa (OUTER JOIN) declarou condições e método de conexão interna (INNER JOIN) são as mesmas, o uso de ON, usando a palavra chave NATURAL ou expressão. Os resultados iniciais tabela é calculado da mesma maneira. Uma vez que os cálculos sejam concluídas conexão primária, as conexões externas (OUTER JOIN) de uma ou duas mesas não estão ligados a qualquer linha na fusão, associação externa coluna com um valor NULL, anexá-los à tabela de resultados.

Aqui está a sintaxe para uma junção externa esquerda (LEFT OUTER JOIN) de:

SELECT ... FROM table1 LEFT OUTER JOIN table2 ON conditional_expression ...

A fim de evitar a redundância e manter o texto curto, você pode usar as expressõesusando instrução junta externa (outer join) Condições.Esta expressão especifica de uma lista de uma ou mais colunas:

SELECT ... FROM table1 LEFT OUTER JOIN tabela2 USANDO (column1, ...) ...

Com base na tabela acima, pode-se escrever uma ligação externa (OUTER JOIN), como se segue:

sqlite> EMP_ID SELECT, NOME, DEPARTAMENTO DE EMPRESA LEFT OUTER JOIN DEPARTAMENTOS
        ON COMPANY.ID = DEPARTMENT.EMP_ID;

A consulta acima irá produzir os seguintes resultados:

EMP_ID NOME DEPT
---------- ---------- ----------
Faturamento 1 Paul TI
2 Allen Engineerin
            Teddy
            marca
            David
            Kim
7 James Finanças