Latest web development tutorials

SQLite entra a far parte

SQLite èunisce clausola di combinare due o più tabelle nei record del database.Join è un valore comune dalla combinazione di due campi nei mezzi tabella.

SQL definisce tre tipi principali di connessioni:

  • Cross-connect - CROSS JOIN

  • En - INNER JOIN

  • collegamento esterno - outer join

Prima di continuare, supponiamo che ci sono due tavoli ditta e del reparto. Abbiamo visto usato per riempire COMPANY TABLE INSERT. Ora supponiamo record della tabella COMPANY elencati di seguito:

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

Un altro tavolo è SERVIZIO, è definita come segue:

CREATE TABLE DIPARTIMENTO (
   ID INT PRIMARY KEY NOT NULL,
   DEPT CHAR (50) NOT NULL,
   EMP_ID INT NOT NULL
);

Quanto segue è una tabella DEPARTMENT istruzione INSERT pieno:

INSERT INTO REPARTO (ID, DEPT, EMP_ID)
VALORI (1, 'IT Fatturazione', 1);

INSERT INTO REPARTO (ID, DEPT, EMP_ID)
VALORI (2, 'Engineering', 2);

INSERT INTO REPARTO (ID, DEPT, EMP_ID)
VALORI (3, 'Finanza', 7);

Infine, abbiamo la seguente lista di record della tabella DEPARTMENT:

ID DEPT EMP_ID
---------- ---------- ----------
1 di fatturazione 1
2 Engineerin 2
3 Finanza 7

Cross-connect - CROSS JOIN

Cross-connect (CROSS JOIN) ogni riga della prima tabella con ogni riga della seconda tabella in modo che corrisponda. Se sia la tabella di ingresso colonne x ed y, rispettivamente la tabella risultato ha x + y colonne. Dal momento che il cross-connect (CROSS JOIN) può produrre un grande tavolo, è necessario prestare attenzione quando si utilizza solo quando appropriato.

Ecco la sintassi per il cross-connect (CROSS JOIN) di:

SELECT ... FROM tabella1 CROSS JOIN tabella2 ...

Sulla base della tabella sopra, possiamo scrivere un cross-connect (CROSS JOIN), come segue:

sqlite> EMP_ID SELECT, NOME, UFF da azienda CROSS JOIN DIPARTIMENTO;

La query sopra produrrà i seguenti risultati:

EMP_ID NOME DEPT
---------- ---------- ----------
Fatturazione 1 Paul IT
2 Paul Engineerin
7 Paul Finanza
Fatturazione 1 Allen IT
2 Allen Engineerin
7 Allen Finanza
Fatturazione 1 Teddy IT
2 Teddy Engineerin
7 Teddy Finanza
Fatturazione 1 Mark IT
2 Mark Engineerin
7 Mark Finanza
Fatturazione 1 David IT
2 David Engineerin
7 David Finanza
Fatturazione 1 Kim IT
2 Kim Engineerin
7 Kim Finanza
Fatturazione 1 James IT
2 James Engineerin
7 James Finanza

En - INNER JOIN

collegamento interno (INNER JOIN) per creare una nuova tabella dei risultati combinare due tabelle (Table1 e Tabella 2) aderire valori della colonna predicato. Le query saranno TABLE1 e Table2 in ogni riga in ogni riga viene comparato per trovare tutte le righe che soddisfano la Unisciti alle coppie predicato di corrispondenza. Quando si è soddisfatti unire i valori di colonna predicato A e B ogni riga corrispondente del risultato verrà fusa in una riga.

collegamento interno (INNER JOIN) è il tipo più comune di collegamento è il tipo di connessione predefinito. parola chiave interna è opzionale.

Ecco la sintassi per un inner join (INNER JOIN) di:

SELECT ... FROM tabella1 [INTERNO] JOIN tabella2 ON conditional_expression ...

Al fine di evitare la ridondanza e mantenere la formulazione breve, è possibile utilizzare l'istruzione nella connessione espressioneutilizzando (INNER JOIN) condizioni.Questa espressione indica un elenco di uno o più colonne:

SELECT ... FROM tabella1 ISCRIVITI table2 UTILIZZO (column1, ...) ...

naturale connessione (JOIN NATURALE) è simile adunirsi ... utilizzando, ma sarà uguale valore tra il valore delle due tabelle in ogni colonna verificare automaticamente la presenza di:

SELECT ... FROM tabella1 join naturale table2 ...

Sulla base della tabella sopra, possiamo scrivere un join interno (INNER JOIN), come segue:

sqlite> selezionare EMP_ID, NOME, Dipartimento della ditta INNER JOIN DIPARTIMENTO
        ON COMPANY.ID = DEPARTMENT.EMP_ID;

La query sopra produrrà i seguenti risultati:

EMP_ID NOME DEPT
---------- ---------- ----------
Fatturazione 1 Paul IT
2 Allen Engineerin
7 James Finanza

collegamento esterno - outer join

collegamento esterno (outer join) è un inner join (INNER JOIN) estensioni. Sebbene standard SQL definisce tre tipi di outer join: sinistra, destra, pieno, ma SQLite supporta soloa sinistra outer join (LEFT OUTER JOIN).

collegamento esterno (outer join) le condizioni e le modalità di collegamento interno (INNER JOIN) sono gli stessi, l'uso di ON dichiarato, L'UTILIZZO parola chiave NATURALE o espressione. tabella dei risultati iniziali è calcolato nello stesso modo. Una volta che i calcoli sono stati completati connessione primaria, connessioni esterne (outer join) da uno o due tabelle non sono collegati a qualsiasi linea nell'unione, outer join colonna con un valore NULL, il fissaggio sulla tabella dei risultati.

Ecco la sintassi per un join esterno sinistro (LEFT OUTER JOIN) di:

SELECT ... FROM tabella1 LEFT OUTER JOIN tabella2 ON conditional_expression ...

Al fine di evitare la ridondanza e mantenere la formulazione breve, è possibile utilizzare leutilizzando espressioni istruzione join esterno (outer join) condizioni.Questa espressione indica un elenco di uno o più colonne:

SELECT ... FROM tabella1 LEFT OUTER JOIN Tabella 2 UTILIZZO (column1, ...) ...

Sulla base della tabella sopra, possiamo scrivere un collegamento esterno (outer join), come segue:

sqlite> EMP_ID SELECT, NOME, UFF da azienda LEFT OUTER JOIN DIPARTIMENTO
        ON COMPANY.ID = DEPARTMENT.EMP_ID;

La query sopra produrrà i seguenti risultati:

EMP_ID NOME DEPT
---------- ---------- ----------
Fatturazione 1 Paul IT
2 Allen Engineerin
            Teddy
            contrassegno
            David
            Kim
7 James Finanza