Ir trīs galvenie SQLite savienojumu veidi.
- KRUSTS PIEVIENOTIES
- IEKŠĒJAIS PIEVIENOŠANĀS
- PA KREISO ĀRĒJO PIEVIENOŠANOS
Šajā apmācībā jūs ātri uzzināsiet par šiem SQLite savienojumiem un parādīsit, kā pievienoties datu bāzes ierakstiem.
Sāksim ar INNER JOIN, jo tas ir vienkārši un veido pamatu, lai mēs varētu saprast citus JOIN veidus.
1: IEKŠĒJAIS PIEVIENOŠANĀS
INNER JOIN darbojas, izveidojot jaunu tabulu, apvienojot norādīto tabulu vērtības. Tas sākas, salīdzinot katras tabulas rindu un atrodot visus atbilstošos pārus norādītajā predikātā. Pēc tam tas apvieno atbilstošos pārus vienā rindā.
INNER JOIN vispārējā sintakse ir šāda:
Atlasiet kolonnu (-as) no tabulas1 INNER JOIN tabula2 uz tabulas1.kolonna = tabula2.kolonna;Apskatīsim JOIN operāciju, lai ilustrētu tās darbību.
Pieņemsim, ka jums ir tabula ar nosaukumu lietotāji ar laukiem: ID, nosaukums, vecums, valodas parauga SQL vaicājums tabulas izveidei ir zemāk:
IZVEIDOT TABULU "lietotāji" ("id" INTEGER NOT NULL,
"nosaukums" TEKSTS NAV NULL,
"vecums" INTEGER NOT NULL,
"valoda" TEKSTS,
GALVENĀ ATSLĒGA ("ID" AUTOINCREMENT)
);
Mums ir arī vēl viena tabula, ko sauc par rindām ar laukiem id un lomu SQL vaicājumu
IZVEIDOT TABULU "Lomas" ("id" INTEGER NOT NULL,
"loma" TEKSTS,
GALVENĀ ATSLĒGA ("ID" AUTOINCREMENT)
)
Tagad mēs varam palaist SQLite INNER JOIN darbību, izmantojot zemāk parādīto vaicājumu:
SELECT lietotāji.id, lietotāji.nosaukums, lomas.loma no lietotājiem INNER JOIN Lomas lietotājiem.id = Lomas.id;Iepriekš minētā vaicājuma rezultātā tiks parādīta zemāk redzamā tabula:
2: KRUSTA PIEVIENOŠANĀS
Cits SQL JOIN veids ir CROSS JOIN. Šis tips atbilst katras rindas no pirmās tabulas uz katras rindas otrajā tabulā. Uzskatiet to par Dekarta produktu, jo rezultāti ir 1. tabulas rindu kopa, kas saskaņota ar katru 2. tabulas rindu. Piemēram, ja tabulā1 ir (a) rindas un 2. tabulā (b) rindas, rezultātā tabulai būs rinda * b.
PIEZĪME: Esiet piesardzīgs, izmantojot šķērssavienojumus, jo tie var radīt milzīgus galdu komplektus.
Krustojuma pievienošanās vispārējā sintakse ir šāda:
Atlasīt kolonnu (-as) no tabulas1 CROSS JOIN tabula2;Apsveriet savstarpēju savienojumu no lietotāja tabulas ar visām lomu tabulas rindām. Apsveriet SQL vaicājumu zemāk:
SELECT * FROM users CROSS JOIN lomas;Izpildot iepriekš minēto vaicājumu, tiks iegūta tabula, kā parādīts zemāk:
3: Kreisais ārējais savienojums
Pēdējā pievienošanās, kuru mēs aplūkosim, ir OUTER JOIN. OUTER JOIN ir iekšējā savienojuma paplašinājums. Tāpat kā INNER pievienošanās, mēs to izsakām tādos apstākļos kā ON, NEUTRAL un USING. Ir arī labi atzīmēt, ka SQL definē trīs OUTER JOINS veidus: kreiso, labo un pilno, bet SQLite atbalsta tikai LEFT JOIN.
LEFT ārējais PIEVIENOJUMS atgriež visas rindas no nosacījumā norādītās LEFT tabulas un tikai rindas no citām tabulām, kurās ir taisnība pievienotajam.
Apsveriet šādu vaicājumu.
SELECT lietotāji.id, lietotāji.nosaukums, lomas.loma, lietotāji.valoda NO lietotājiem LEFT OUTER JOIN Lomas lietotājiem.id = Lomas.id;Iepriekš minētā vaicājuma rezultātā tiks parādīta zemāk redzamā tabula:
Secinājums
Šajā apmācībā ir parādīts, kā veikt SQL savienojumus SQLite un izveidot jaunas tabulas ar modificētu informāciju. Ir labi turpināt eksperimentēt ar SQL JOIN, jo tie ir ļoti noderīgi, strādājot ar datu bāzēm.
Paldies par lasīšanu!