Összefogás táblázatok adatbázisok és az SQL sqlite csatlakoznak, és válassza ki a sqlite, blog weboldalak létrehozása,

Része 12.14: Összefogás táblázatok SQL adatbázisok és SQLite adatbázis: a JOIN és SELECT

Szia, ZametkiNaPolyah.ru látogató. Mi továbbra is vizsgálja az adatbázisban, és a megszokás az SQLite3 könyvtárban. SQL nyelv - nagyon erős és rugalmas eszköz, amely lehetővé teszi a munkát és a relációs adatbázisok. Az egyik legérdekesebb jellemzője az SQL nyelv az a képesség, hogy összekapcsolják a két vagy több tábla egyetlen használatával SELECT, és a kulcsszó JOIN. Megjegyzem, hogy összekötő táblázatok meglehetősen költséges művelet, és még az egy táblázatban, amit kombinálni, így a művelet drágább, mint a DBMS kezd számítani az úgynevezett szövetség állítmány minden sorban. Az SQL, van öt fajta asztal csatlakozik, de sajnos, az SQLite az öt eladott mindössze három.

Összefogás táblázatok adatbázisok és az SQL sqlite csatlakoznak, és válassza ki a sqlite, blog weboldalak létrehozása,

Összefogás táblázatok SQL adatbázisok és SQLite adatbázis: JOIN és SELECT

Ebben a bejegyzésben megnézzük az általános elvek asztal csatlakozik az SQL és foglalkozik a sajátosságai a végrehajtás JOIN kulcsszó az adatbázisban például futás SQLite3. És akkor nézzük az egyes típusú tábla illesztések megvalósított SQLite egyenként megérteni a különbségeket és jellemzőit a belső és külső asztal csatlakozik. A folyamat során a magyarázó te, mint mindig, akkor lásd a példákat, amelyek bemutatják a művelet egy SELECT lekérdezést a JOIN.

Összefogás táblákat SQL SELECT lekérdezések: LEFT JOIN, LEFT JOIN KÜLSŐ, BELSŐ JOIN, CROSS JOIN. Különbség a kérelmek csatlakozhat.

Véleményünk REGISZTRÁCIÓ lekérdezések - ez a legérdekesebb dolog, hogy lehet, hogy a SELECT utasításban. Megvizsgáltuk az egyesített lekérdezések adatbázisok. amelyek útján valósul UNION, majd nézd meg az összehasonlítás eredményeit a minta, de ez nem olyan érdekes, mint az unió táblázatok SQLite adatbázisok. Összefogás asztalok valósul kulcsszó használatával csatlakozhat.

Az SQL szabvány osztja összekötő táblázatok három típusba. belső egyesület asztalok (inner join), a külső egyesület asztalok (LEFT JOIN KÜLSŐ, RIGHT JOIN FULL JOIN) és cross-szövetség asztalok (CROSS JOIN). A működési elve bármely egyesület hasonló, de az eredmény mindig, vagy majdnem mindig különböznek.

A működési elve kérések táblákat SQL és relációs adatbázisok abban a tényben rejlik, hogy egyetlen SQL SELECT lekérdezés hajtódik végre két vagy több segédlekérdezés (attól függően, hogy mennyire akarjuk kombinálni táblázatok), al-lekérdezések vannak elválasztva a kulcsszó csatlakozhat. Ez a korlátozás csatlakozzon (legalábbis a hivatalos SQLite dokumentáció felhívja korlátozását), amely az úgynevezett állítmány unió. Csatlakozz állítmány - mindig valamilyen feltétel, amellyel az RDBMS meghatározza, hogy mely sorok két asztal van szükség, hogy egyesítse. De hogyan lehet kombinálni húrok, SQLite megérti a különleges módosítók: Belső, bal oldali külső, vagy egyszerűen balra és át.

Ez a magyarázat használ nem egészen megfelelő ebben az esetben, a kifejezés al-lekérdezés, ez történik szándékosan annak érdekében, hogy ismertesse a működési elve REGISZTRÁCIÓ olvasót, aki nem ismeri az SQL. A kifejezés segédlekérdezés nem egészen helyénvaló, hiszen a allekérdezés SELECT mindig visszatér valamiféle eredmény táblát, és ha kombináljuk táblákat REGISZTRÁCIÓ, gyakran fordulunk a fizikai adatbázis táblák (bár senki sem tiltja, hogy összekapcsolják a meglévő asztal, az asztal SELECT allekérdezés).

Általában a szabványos SQL osztja több módosítót REGISZTRÁCIÓ:

  1. Inner join - belső táblákat.
  2. LEFT JOIN vagy LEFT JOIN KÜLSŐ - bal külső táblákat.
  3. RIGHT JOIN vagy RIGHT JOIN KÜLSŐ - jobb külső táblákat.
  4. FULL JOIN - teljes asszociációs táblázatot.
  5. CROSS JOIN - kereszt táblákat.

De már csak három típusú táblázatot csatlakozott az adatbázisokban SQLite adatbázis, amelyik a korábban tárgyalt, ezek elegendő minden célra. Ne felejtsük el, mi tekinthető a kapcsolat a táblák között, és megpróbálta a kapcsolatok normalizálására. Amikor Adatbázisunk első normál forma és úgy gondoljuk, nem gondolni, hogyan lehet a táblákat egy SELECT lekérdezést. de ha az arány a második normális formájában vagy a harmadik normál formában. lássuk a kérdés: hogyan egyetlen lekérdezés adatokat letölteni két vagy három asztalnál?

És ez a kérdés jó, mert ez okozta a lustaság, hogy lustaság, ami megment minket a buta és felesleges munka, ami valamit javítani és tökéletes. Ahogy talán már sejtette, kombinálva a SELECT REGISZTRÁCIÓ megment minket a fent leírt problémákat.

Az alábbiakban találsz egy kis bölcsőt SQL SELECT lekérdezés segítségével a JOIN. a kiságyban van a kis példák és ábrák, amelyek lehetővé teszik, hogy megértsük, hogyan működik és hogyan JOIN összekötő táblázatok adatbázisokban.

Összefogás táblázatok adatbázisok és az SQL sqlite csatlakoznak, és válassza ki a sqlite, blog weboldalak létrehozása,

Példák munka egy SELECT lekérdezést JOIN és diagramok a működését a különböző módszerek egyesület táblázatok

Azok, akik foglalkoznak a működését JOIN SQL és adatbázis SQLite adatbázis nézi a fenti képen - a megtiszteltetés és a dicséretet, tényleg jó, de azok, akik nem értik, azt javasoljuk, hogy továbbra is olvasni és megérteni, együtt az unió felhasználás táblák Csatlakozz SQLite.

Főzés táblázat végrehajtására példák SQL lekérdezés REGISZTRÁCIÓ SQLite adatbázis

Nézzük előkészíti az asztalra, hogy továbbra is végrehajtja a példákat egyesítés az adatbázis táblákat SQL alapú lekérdezések. És hogy megértsük, mi a különbség: LEFT JOIN, LEFT JOIN KÜLSŐ, inner join, és CROSS JOIN. Emlékezzünk vissza, hogy SQLite nem lehet kombinálni táblákat: RIGHT JOIN és FULL JOIN.

Ebben az esetben a már egyesített táblákat inner join válassza csak azokat az oszlopokat, hogy látni akarta, plusz nem az adatok szűrésére. így csak a dalokat a csoport lép. Így a belső összekapcsolás SQL tervezési és adatbázis SQLite3 tárol.

Összefoglalva: a belső asszociációs táblázat inner join eredménye egy táblázatban álló sorok összekapcsolt táblák, melyek eredményeként a csatlakozni állítmány BE megfelel IGAZ. Más szóval, a kapott táblát csak azokat a sorokat balról táblázat, amely összefüggő sorok a jobb. Inner join munkát mutathatjuk diagramon.

Összefogás táblázatok adatbázisok és az SQL sqlite csatlakoznak, és válassza ki a sqlite, blog weboldalak létrehozása,

Az ábra bemutatja az egyesület táblázatok inner join vagy belső összekötő táblázatok

Kör T1 - egy táblázatot balra inner join, kör T2 - egy táblázatot a jogot inner join, árnyékolt terület - ez az eredménye a táblázat, amely visszaadja a SELECT, amely elvégzi a művelet a belső asszociációs táblázatot.

Bal táblákat adatbázisokban SQLite3: LEFT JOIN és LEFT JOIN KÜLSŐ SQL-ben.

Megvizsgáltuk a inner join táblák adatbázisok SQLite, most haladjunk, hogy megvizsgálja a külső egyesület, és megvizsgálja a különbség a belső és a külső összekötő táblázatok. Az SQLite csak egyféle külső egyesület táblázatok: LEFT JOIN vagy LEFT JOIN KÜLSŐ.

Az SQL szabvány tulajdonképpen meghatározza háromféle külső illesztések: BAL JOIN, RIGHT JOIN és FULL JOIN. de SQLite3 csak LEFT JOIN KÜLSŐ. Beszéljünk a bal táblákat. Bár jobban hangzik: egy bal külső táblákat. Külső join tábla működik pontosan ugyanaz, mint egy belső táblákat, de van egy különbség a kimeneti sorok után a vizsgált vegyület állítmány. Nézzünk egy példát LEFT JOIN KÜLSŐ, és ugyanabban az időben megérteni eltérően inner join. és a külső funkció egyesület táblázatok:

Ezzel a két példát megmutattuk a különbség a belső és külső egyesület asztal egyesület. a különbség a belső összekapcsolás és LEFT JOIN. Mindkét esetben SQLite kiszámítja kombinálásával állítmány után megadott ON kulcsszó, de a különbség az, hogy a külső csatlakozik LEFT JOIN KÜLSŐ a kapott táblázat lesz az összes sort a táblázat bal, és nekik, ha van, akkor hozzá kell adni a jobb oldali sorban. Hosszú magyarázat, de érthető és írásbeli egyszerű szavakkal.

Azt lehet mondani, más módon: ennek eredményeként a LEFT JOIN KÜLSŐ a táblázatban, amely visszatér a SELECT lesz az összes sor balról asztal, amelyhez hozzá kell adni a megfelelő értékeket a táblázat jobb, akkor is, ha ezek az értékek egyenlő NULL. Ha így nem világos, hogy bemutatja a munkáját LEFT JOIN KÜLSŐ egy diagram:

Összefogás táblázatok adatbázisok és az SQL sqlite csatlakoznak, és válassza ki a sqlite, blog weboldalak létrehozása,

Az ábra mutatja a működését a bal külső táblákat vagy LEFT JOIN KÜLSŐ

Kör T1 - egy táblázatot balra LEFT JOIN KÜLSŐ, egy kört T2 - egy asztalnál a LEFT JOIN KÜLSŐ. Az így kapott táblázat a képen van festve. Szerint a számok azt mutatják, hogy a kapott táblázat lesz az összes sort a táblázat bal, és az értékeket a táblázat jobb lesz hozzá, ha van ilyen.

Érdemes megjegyezni, hogy a BAL JOIN munkálatok aszimmetrikusan és ez számít, amely a táblák fogják először, hiszen az összes sort az első táblázat lesz a táblázatban. Ez egy másik különbség a BAL JOIN inner join. Mert inner join érdekében a táblákat az SQL lekérdezés nem számít.

Tehát foglalkozott kívül táblázatok SQL unió és részletesen megvizsgálta, hogy a LEFT JOIN KÜLSŐ a SQLite3 adatbázisokban. Mint megtudtuk a különbség inner join és LEFT JOIN.

Kereszt-összekötő táblázatok SQL: CROSS JOIN az SQLite adatbázis

Áttekintettük a belső asszociációs táblázat felismerést olyan inner join megvizsgáltuk az egyesület külső asztalok, megvalósult a SQLite adatbázisok segítségével a bal csatlakozni, most lépni egy határon táblákat. amely végre jelmondattal CROSS JOIN.

Kereszt Egyesület táblázatok vagy CROSS JOIN művelet szimmetrikus a belső összekapcsolás. ami azt jelenti, hogy a sorrendben írás táblázatok a lekérdezés nem számít, a kapott táblázat ugyanaz lesz. Kereszt a táblákat a matematika egy Descartes-szorzat. és ez azt jelenti, hogy a művelet eredményeként a CROSS REGISZTRÁCIÓ SQLite csatlakozni fog minden sorban az első táblázatban minden egyes sora a második asztal és az eredmény lenne olyan táblázat, amelyben kombinációk az összes sort, hogy lehetséges.

Sajnos, a show munka CROSS JOIN az ábrán akkor nem csak fizikailag. Ezért megérteni a működését át a táblákat SQL általános és SQLite adatbázisok különösen a példát. Próbáljuk levelet mondat SELECT, egy kulcsfontosságú mondatot CROSS JOIN táblákat: