SQLite tiltrer
klausulen brukes for å kombinere poster fra to eller flere tabeller i en database. En BLI er et middel for å kombinere felt fra to tabeller ved hjelp av verdier som er felles for hver
SQL definerer tre hovedtyper av tiltrer −.
INNER BLI
Den ytre delta
Før vi går videre, la oss vurdere to tabeller COMPANY og DEPARTMENT. Vi har allerede sett INSERT-setninger til befolker COMPANY bordet. Så bare la oss anta listen over oppføringer tilgjengelige i COMPANY bord og minus;
ID Navn Alder ADRESSE LØNN ---------- ---------- -------- - ---------- ---------- 1 Paul 32 California 20000,02 Allen 25 Texas 15000,03 Teddy 23 Norge 20000,04 Mark 25 Rich-Mond 65000,05 David 27 Texas 85000,06 Kim 22 Sør-Hall 45000,07 James 24 Houston 10000,0
En annen tabell er DEPARTMENT har følgende definisjon −
CREATE TABLE INSTITUTT (ID INT PRIMARY KEY NOT NULL, DEPT CHAR (50) NOT NULL, EMP_ID INT NOT NULL);
Her er listen over INSERT-setninger til befolker DEPARTMENT bord og minus;
INSERT INTO avdeling (ID, DEPT, EMP_ID) VALUES (1, 'IT Billing', 1); INSERT INTO avdeling (ID, DEPT, EMP_ID) VALUES (2 'Engineering', 2); INSERT INTO avdeling (ID, DEPT, EMP_ID) VALUES (3, "Finance", 7);
Til slutt har vi følgende liste over poster tilgjengelig i DEPARTMENT bord og minus;
ID DEPT EMP_ID ---------- ---------- ---------- en IT Billing 12 Engineering og 23 Finans 7
Den CROSS BLI Anmeldelser
En CROSS BLI kampene hver rad av den første tabellen med hver rad i den andre tabellen. Hvis inngangs bordene har x- og y-spalter, henholdsvis, vil den resulterende tabellen har x * y kolonner. Fordi CROSS tiltrer har potensial til å generere svært store bord, må man sørge for å bare bruke dem når det passer
Følgende er syntaksen CROSS BLI −.
SELECT ... Fra table1 CROSS BLI table2 ...
Basert på tabellene ovenfor, kan vi skrive et innlegg bli som følger −
sqlite > VELG EMP_ID, NAVN, DEPT fra selskap CROSS BLI DEPARTMENT;
Over spørring vil gi følgende resultat −
EMP_ID NAVN DEPT ---------- ---------- ---------- 1 Paul IT Billing2 Paul Engineerin7 Paul finans1 Allen IT Billing2 Allen Engineerin7 Allen finans1 Teddy IT Billing2 Teddy Engineerin7 Teddy finans1 Mark IT Billing2 Mark Engineerin7 Mark finans1 David IT Billing2 David Engineerin7 David finans1 Kim IT Billing2 Kim Engineerin7 Kim finans1 James IT Billing2 James Engineerin7 James Finans
Den INNER JOIN
En INNER JOIN oppretter en ny resultattabell ved å kombinere kolonneverdier av to tabeller (Tabell 1 og table2) basert på join-predikat. Spørringen sammen hver rad med table1 med hver rad med table2 å finne alle parene av rader som tilfredsstiller join-predikat. Når join-predikat er fornøyd, er kolonneverdier for hver matchet par rader med A og B kombineres til et resultat rad.
En INNER JOIN er den vanligste typen delta og er standardtypen delta . Du kan bruke INNER søkeord eventuelt
Følgende er syntaksen INNER JOIN −.
SELECT ... Fra table1 [INNER] BLI table2 PÅ conditional_expression ...
For å unngå redundans og holde frasering kortere, INNER JOIN forholdene kan bli erklært med en BRUKE
uttrykk. Dette uttrykket angir en liste over en eller flere kolonner og minus;
SELECT ... Fra table1 JOIN table2 BRUKE (COLUMN1, ...) ...
EN NATURLIG BLI ligner på en BLI .. .USING
, bare det automatisk tester for likestilling mellom verdiene av hver kolonne som finnes i både bord og minus;
SELECT ... Fra table1 NATURAL BLI table2 ...
Basert på ovennevnte tabeller, vi kan skrive en INNER JOIN som følger −
sqlite > VELG EMP_ID, NAVN, DEPT fra selskap INNER JOIN DEPARTMENT PÅ COMPANY.ID = DEPARTMENT.EMP_ID;
Over spørring vil gi følgende resultat −
EMP_ID NAVN DEPT ---------- - -------- ---------- 1 Paul IT Billing2 Allen Engineerin7 James Finans
Den Ytre BLI
YTRE BLI er en forlengelse av INNER JOIN. Selv om SQL-standarden definerer tre typer ytre kobles. Venstre, høyre, og FULL men SQLite støtter bare VENSTRE YTRE BLI
Den ytre kobles har en tilstand som er identisk med INNER tiltrer, uttrykkes ved hjelp av en PÅ, BRUKER, eller NATURAL søkeord. Den første resultatene tabellen beregnes på samme måte. Oncethe primære JOIN beregnes, en ytre delta vil ta noen unjoined rader fra en av eller begge tabellene, pad dem ut med NULL, og legge dem til den resulterende tabellen
Følgende er syntaksen til VENSTRE YTRE BLI &minus.;
Velg ... Fra table1 VENSTRE YTRE BLI table2 PÅ conditional_expression ...
For å unngå redundans og holde frasering kortere, YTRE BLI forholdene kan bli erklært med en BRUKE uttrykk. Dette uttrykket angir en liste over en eller flere kolonner og minus;
SELECT ... Fra table1 VENSTRE YTRE JOIN table2 BRUKE (COLUMN1, ...) ...
Basert på tabellene ovenfor, kan vi skrive et indre bli med som følger −
sqlite > VELG EMP_ID, NAVN, DEPT fra selskap VENSTRE YTRE BLI DEPARTMENT PÅ COMPANY.ID = DEPARTMENT.EMP_ID;
Over spørring vil gi følgende resultat −
EMP_ID NAVN DEPT ---------- - --------- ---------- 1 Paul IT Billing2 Allen Engineering og Teddy Mark David Kim7 James Finance