Vývoj akejkoľvek databázy neznamenáiba vytváranie a vypĺňanie tabuliek rôznymi informáciami, ale aj ďalšia práca s údajmi. Na správne vykonávanie rôznych úloh výberu údajov z tabuliek a generovania správ sa používa štandardná konštrukcia Select.
Ak vezmeme do úvahy problém výberu údajov respvytvorením nejakej správy, môžete určiť úroveň zložitosti tejto operácie. Spravidla sa pri práci s vážnymi (z hľadiska objemu informácií) databázami, ktoré sa tvoria napríklad v internetových obchodoch alebo veľkých spoločnostiach, výber údajov neobmedzuje iba na jednu tabuľku. Je pravidlom, že výber môže byť z pomerne veľkého počtu nielen vzájomne prepojených tabuliek, ale aj vnorených dotazov / poddotazov, ktoré v závislosti od úlohy, ktorú mu pridelil, vykonáva sám programátor. Na výber z jednej tabuľky môžete použiť najjednoduchšiu konštrukciu:
Vyberte * z Person |
kde Osoba je názov tabuľky, z ktorej chcete načítať údaje.
Ak potrebujete vybrať údaje z viacerých tabuliek, môžete na spojenie viacerých tabuliek použiť jeden zo štandardných konštruktov.
Ak vezmeme do úvahy použitie tohto druhu konštrukcií na počiatočnej úrovni, potom môžeme rozlíšiť nasledujúce mechanizmy na pripojenie požadovaného počtu tabuliek na výber, a to:
Naučte sa, ako používať operátory spojenia tabuliek v praxi, a to preskúmaním použitia operátora SQL - Vnútorné spojenie. Príklad jeho použitia bude vyzerať takto:
Vyberte * z Person Vnútorné členenie na pododdelenie na Su_Person = Pe_ID |
Môže to byť jazyk SQL a operátor Join Inner Joinpoužitie nielen na spojenie dvoch alebo viacerých tabuliek, ale aj na pripojenie ďalších poddotazov, čo výrazne uľahčuje prácu správcom databáz a spravidla môže výrazne urýchliť vykonávanie určitých zložitých dotazov.
Ak uvažujete o pripojení veľkého počtu poddotazov a zhromažďovaní údajov do jedného riadku po riadku tabuľky, môžete tiež použiť operátory Union a Union All.
Použitie týchto štruktúr bude závisieť od úlohy stanovenej pre vývojára a od výsledku, ktorý chce nakoniec dosiahnuť.
Vo väčšine prípadov kombinovať niekoľkoTabuľky SQL používajú operátor Vnútorné spojenie. Opis Inner Join v SQL je pre priemerného programátora, ktorý s databázami ešte len začína, celkom ľahko pochopiteľný. Ak vezmeme do úvahy popis mechanizmu fungovania tejto štruktúry, dostaneme nasledujúci obrázok. Logika operátora ako celku je založená na možnosti prieniku a výberu iba tých údajov, ktoré sú v každej z tabuliek zahrnutých do dotazu.
Ak vezmeme do úvahy túto prácu z hľadiska grafickej interpretácie, dostaneme štruktúru operátora SQL Inner Join, ktorého príklad je možné znázorniť pomocou nasledujúceho diagramu:
Napríklad máme dve tabuľky, ktorých schéma jezobrazené na obrázku. Oni zase majú iný počet záznamov. Každá z tabuliek má polia, ktoré spolu súvisia. Ak sa pokúsime na základe obrázku vysvetliť operáciu operátora, potom bude vrátený výsledok vo forme množiny záznamov z dvoch tabuliek, kde sa počty súvisiacich polí zhodujú. Jednoducho povedané, dopyt vráti iba tie záznamy (z tabuľky číslo dva), ktorých údaje sú v tabuľke číslo jedna.
Ako už bolo spomenuté, operátor Inner Join aje to jeho syntax, ktorá je neobvykle jednoduchá. Na usporiadanie odkazov medzi tabuľkami v rámci jednej vzorky bude stačiť zapamätať si a použiť nasledujúci schematický diagram na zostavenie operátora, ktorý je napísaný v jednom riadku kódu programu SQL, a to:
Pre komunikáciu u tohto operátora hlavnýkľúče od stola. Spravidla platí, že v skupine tabuliek, ktoré uchovávajú informácie o zamestnancoch, majú predtým opísané osoby a pododdiely aspoň jeden podobný záznam. Pozrime sa teda podrobnejšie na príkaz SQL Inner Join, ktorého príklad bol uvedený už skôr.
Máme stôl Person, ktorý ukladáinformácie o všetkých zamestnancoch pracujúcich v spoločnosti. Ihneď si všimneme, že hlavným kľúčom tejto tabuľky je pole - Pe_ID. Je na ňom, že parta pôjde.
Uloží sa druhá tabuľka rozdeleniainformácie o oddeleniach, v ktorých zamestnanci pracujú. Ten je zase prepojený cez pole Su_Person s tabuľkou Person. Čo to znamená? Na základe dátovej schémy môžeme povedať, že tabuľka oddelení pre každý záznam z tabuľky „Zamestnanci“ bude obsahovať informácie o oddelení, v ktorom pracujú. Na tomto spojení bude fungovať operátor Inner Join.
Pre jasnejšie použitie zvážte operátor SQL Inner Join (príklady jeho použitia pre jednu a dve tabuľky). Ak vezmeme do úvahy príklad pre jednu tabuľku, potom je všetko celkom jednoduché:
Vyberte * z Person Vnútorné členenie na pododdelenie na Su_Person = Pe_ID |
Príklady použitia operátora SQL Inner Join Operatorktoré na načítanie údajov z niekoľkých tabuliek možno usporiadať vyššie uvedeným spôsobom, funguje podľa mierne komplikovaného princípu. Komplikujme úlohu pre dva stoly. Povedzme, že máme tabuľku Odlet, ktorá uchováva informácie o všetkých oddeleniach v každom z oddelení. Táto tabuľka obsahuje číslo oddelenia a počet zamestnancov a vzorku údajov musíte doplniť názvom každého oddelenia. Do budúcnosti stojí za to povedať, že na vyriešenie tohto problému je možné použiť dve metódy.
Prvým spôsobom je pripojenie tabuľky oddelení k výberu. V takom prípade môžete žiadosť usporiadať nasledovne:
Vyberte Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name od osoby Vnútorné členenie na pododdelenie na Su_Person = Pe_ID Vnútorné pripojenie Odchod na Su_Depart = Dep_ID a Pe_Depart = Dep_ID |
Druhá metóda riešenia problému je použitiepoddotaz, v ktorom sa z tabuľky oddelení nevyberú všetky údaje, ale iba nevyhnutné. To na rozdiel od prvej metódy zníži čas spracovania dotazu.
Vyberte Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name od osoby Vnútorné členenie na pododdelenie na Su_Person = Pe_ID Vnútorné spojenie (vyberte Dep_ID, Dep_Name, Pe_Depart z Depart) ako T na Su_Depart = Dep_ID a Pe_Depart = Dep_ID |
Je potrebné poznamenať, že tento dizajn nie je vždymôže dopyt urýchliť. Niekedy existujú prípady, keď musíte použiť dodatočný výber údajov v dočasnej tabuľke (ak je ich veľkosť príliš veľká) a potom ich skombinovať s hlavným výberom.
Budovanie zložitých otázok zahŕňapoužitie významného počtu navzájom súvisiacich tabuliek a podotázok na výber údajov. Tieto požiadavky môže splniť syntax SQL Inner Join. Príklady použitia operátora v tomto prípade môžu byť komplikované nielen výberom z mnohých umiestnení úložiska dát, ale aj veľkým počtom vnorených poddotazov. Pre konkrétny príklad môžete vziať výber údajov zo systémových tabuliek (operátor Inner Join SQL). Príklad - 3 tabuľky - bude mať v tomto prípade pomerne zložitú štruktúru.
V tomto prípade sú spojené ďalšie tri ďalšie podmienky (k hlavnej tabuľke) a je zavedených niekoľko podmienok pre výber údajov.
Pri použití operátora Inner Join to stojíPamätajte, že čím je požiadavka zložitejšia, tým dlhšie jej bude trvať implementácia. Preto stojí za to hľadať spôsoby, ako danú úlohu rýchlejšie vykonať a vyriešiť.
Na záver by som chcel povedať jednu vec:práca s databázami nie je pri programovaní najťažšou vecou, preto si v prípade potreby môže úplne každý osvojiť vedomosti o zostavovaní databáz a po získaní skúseností s nimi bude časom možné pracovať na profesionálnej úrovni.