Latest web development tutorials

SQLite rejoint

SQLite estjoint à la clause de combiner deux ou plusieurs tables dans les enregistrements de base de données.JOIN est une valeur commune en combinant deux champs dans les moyens de table.

SQL définit trois principaux types de connexions:

  • Cross-connect - CROSS JOIN

  • En - INNER JOIN

  • Connexion externe - OUTER JOIN

Avant de continuer, nous supposons qu'il ya deux tables compagnie et le département. Nous avons vu utilisé pour remplir la déclaration COMPANY table INSERT. Maintenant, supposons COMPANY enregistrements de la table ci-dessous:

ID NOM ADRESSE AGE SALAIRE
---------- ---------- ---------- ---------- ----------
1 Paul 32 Californie 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norvège 20000.0
4 Mark 25 Rich-Mond 65000,0
5 David 27 Texas 85000,0
6 Kim 22 Sud-Hall 45000,0
7 James 24 Houston 10000.0

Une autre table est DEPARTMENT, est définie comme suit:

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

Ce qui suit est une table DEPARTMENT instruction INSERT rempli:

INSERT INTO DÉPARTEMENT (ID, DEPT, EMP_ID)
VALUES (1, 'IT facturation', 1);

INSERT INTO DÉPARTEMENT (ID, DEPT, EMP_ID)
VALUES (2, 'Engineering', 2);

INSERT INTO DÉPARTEMENT (ID, DEPT, EMP_ID)
VALEURS (3, 'Finance', 7);

Enfin, nous avons la liste suivante des enregistrements de la table DEPARTMENT:

ID DEPT EMP_ID
---------- ---------- ----------
1 Facturation 1
2 Engineerin 2
3 Finance 7

Cross-connect - CROSS JOIN

Cross-connect (CROSS JOIN) chaque ligne de la première table avec chaque ligne de la deuxième table pour correspondre. Si les deux tables d'entrée colonnes x et y, respectivement, la table de résultat a x + y colonnes. Depuis l'interconnexion (CROSS JOIN) peut produire une très grande table, vous devez faire preuve de prudence lors de leur utilisation uniquement lorsque cela est approprié.

Voici la syntaxe pour le cross-connect (CROSS JOIN) de:

SELECT ... FROM table1 CROSS JOIN table2 ...

Sur la base du tableau ci-dessus, nous pouvons écrire un cross-connect (CROSS JOIN), comme suit:

sqlite> EMP_ID SELECT, NOM, DEPT DE LA SOCIETE CROSS JOIN DÉPARTEMENT;

La requête ci-dessus produira les résultats suivants:

EMP_ID NOM DEPT
---------- ---------- ----------
1 Paul IT Billing
2 Paul Engineerin
7 Paul Finance
1 Allen IT Billing
2 Allen Engineerin
7 Allen Finance
1 Teddy IT Billing
2 Teddy Engineerin
7 Teddy Finance
1 Mark IT Billing
2 Mark Engineerin
7 Mark Finance
1 David IT Billing
2 David Engineerin
7 David Finance
1 Kim IT Billing
2 Kim Engineerin
7 Kim Finance
1 James IT Billing
2 James Engineerin
7 James Finance

En - INNER JOIN

connexion interne (INNER JOIN) pour créer une nouvelle table de résultat combiner deux tables (Table1 et Table2) joindre les valeurs des colonnes sous-jacentes. Les requêtes seront Table1 et table2 dans chaque ligne de chaque rangée sont comparés pour trouver toutes les lignes qui satisfont aux paires prédicat correspondant rejoindre. Une fois satisfait rejoindre les valeurs des colonnes sous-jacentes A et B chaque ligne correspondante du résultat sera fusionné dans une rangée.

connexion interne (INNER JOIN) est le type le plus commun de connexion est le type de connexion par défaut. mot-clé INNER est facultative.

Voici la syntaxe d'une jointure interne (INNER JOIN) de:

SELECT ... FROM table1 [INNER] ABONNEZ table2 ON expression_conditionnelle ...

Afin d'éviter la redondance et de garder le libellé court, vous pouvez utiliser l'instruction dans la connexion d'expressionUTILISATION (INNER JOIN) conditions.Cette expression spécifie une liste d'une ou plusieurs colonnes:

SELECT ... FROM table1 table2 REJOIGNEZ UTILISATION (column1, ...) ...

connexion naturelle (NATURAL JOIN) est similaire àJOIN ... UTILISATION, mais il sera égale valeur entre la valeur des deux tables dans chaque colonne tester automatiquement la présence de:

SELECT ... FROM table1 table2 NATURAL JOIN ...

Sur la base du tableau ci-dessus, nous pouvons écrire une jointure interne (INNER JOIN), comme suit:

sqlite> EMP_ID SELECT, NOM, DEPT DE LA SOCIETE INNER JOIN SERVICE
        ON COMPANY.ID = DEPARTMENT.EMP_ID;

La requête ci-dessus produira les résultats suivants:

EMP_ID NOM DEPT
---------- ---------- ----------
1 Paul IT Billing
2 Allen Engineerin
7 James Finance

Connexion externe - OUTER JOIN

Connexion externe (OUTER JOIN) est une jointure interne (INNER JOIN) extensions. Bien que la norme SQL définit trois types de jointures externes: gauche, droite, COMPLET, mais SQLite ne supporte quejointure gauche externe (LEFT OUTER JOIN).

Connexion externe (OUTER JOIN) a déclaré les conditions et le mode de connexion interne (INNER JOIN) sont les mêmes, l'utilisation de ON, en utilisant le mot ou l'expression NATURELLE. Les résultats initiaux de table est calculée de la même manière. Une fois les calculs terminés connexion primaire, les connexions externes (OUTER JOIN) d'une ou deux tables ne sont pas connectés à une ligne dans la fusion, jointure externe colonne avec une valeur NULL, les attacher à la table des résultats.

Voici la syntaxe d'une jointure externe gauche (LEFT OUTER JOIN) de:

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

Afin d'éviter la redondance et de garder le libellé court, vous pouvez utiliser les expressionsutilisant des états des jointures externes (OUTER JOIN) conditions.Cette expression spécifie une liste d'une ou plusieurs colonnes:

SELECT ... FROM table1 LEFT OUTER JOIN Table2 UTILISATION (column1, ...) ...

Sur la base du tableau ci-dessus, nous pouvons écrire une connexion externe (OUTER JOIN), comme suit:

sqlite> EMP_ID SELECT, NOM, DEPT DE LA SOCIETE LEFT OUTER JOIN DÉPARTEMENT
        ON COMPANY.ID = DEPARTMENT.EMP_ID;

La requête ci-dessus produira les résultats suivants:

EMP_ID NOM DEPT
---------- ---------- ----------
1 Paul IT Billing
2 Allen Engineerin
            Teddy
            marque
            David
            Kim
7 James Finance