Vývoj databází internetových zdrojůse prakticky neliší od standardních databází vyvinutých v systému MS SQL SERVER. Pro tento druh zdrojů se zpravidla používá jazyk MY SQL, i když jej lze použít i při vývoji standardních softwarových produktů pro místní použití. Ale o tom tento článek není.
Často při práci s databázemi v každé zjazyky, úkolem je vytvořit vzorek dat pro zobrazení v různých zprávách, grafech atd. Při provádění těchto úkolů musíte zpravidla použít ne jednu, ale několik tabulek, které je kombinují do jednoho dotazu, což výrazně komplikuje jeho design. V tomto případě je nutné vzít v úvahu, jak budou data zobrazena, jak budou tabulky „vytaženy“ a jaký výsledek bude pro programátora nejpřijatelnější. K řešení těchto problémů se používá jeden ze standardních jazykových konstruktů MySQL, Join.
Koncept slova Připojit se
Jazyky pro vývoj databáze, nezáleží na tom, kterétoto je jazyk, za základ se berou standardní slova ze slovníků v anglickém jazyce (proto, pokud znáte angličtinu, bude pro vás mnohem snazší pracovat s tabulkami). Pro implementaci propojení tabulek do výběru se používá stejné slovo - Připojit se. V databázovém programovacím jazyce se používá My SQL. Překlad tohoto služebního slova je přesně stejný jako v samotném jazyce - „unie“.
Interpretace konstrukce MySQL - Připojte se akterýkoli z nich bude přesně stejný. Pokud dešifrujeme účel struktury, konkrétně schéma její činnosti, získáme následující význam: struktury umožní shromáždění potřebných polí z různých tabulek nebo vnořených dotazů do jednoho výběru.
Typy struktur pro kombinování
Pokud programátor potřebuje odebrat vzorek zněkolik tabulek a ví, která klíčová pole jsou v nich a jaký druh dat je pro zprávu potřebný, můžete k dosažení požadovaného výsledku použít jeden ze základních konstruktů spojení. Existují čtyři základní konstrukce (pro spojování tabulek):
- Vnitřní spojení.
- Křížové spojení.
- Vlevo se připojte.
- Správně se připojte.
V závislosti na dané úloze bude mít každý ze standardních návrhů odlišné výsledky, což vám umožní v krátké době přijímat zprávy o různých parametrech.
Vytváření a vyplňování tabulek pro další použití
Než začnete, zvažte napříkladmechanismy pro práci s konstrukcemi datové unie, stojí za to připravit několik tabulek, se kterými budeme v budoucnu pracovat. To pomůže vizuálně ukázat všechny principy fungování operátorů, navíc tímto způsobem je pro začátečníky snazší naučit se všechny základy programovacích tabulek.
První tabulka popisuje některé z předmětů, s nimiž se člověk během svého života neustále setkává.
Ve druhé tabulce popíšeme některé vlastnosti objektů z první tabulky, abyste s nimi mohli v budoucnu pracovat.
Pro ilustraci jejich práce na příkladu budou obecně stačit dvě tabulky. Nyní můžete zahájit praktickou kontrolu našich návrhů.
Používání vnitřního spojení
Při použití konstrukce MySQL - Připojte se k Ineerstojí za zvážení některé z jeho funkcí. Tento návrh vám umožní vybrat z obou tabulek pouze ty záznamy, které jsou v první a druhé tabulce. Jak to funguje? V první tabulce máme hlavní klíč - ID, který označuje pořadový počet záznamů v tabulce.
Při vytváření druhé tabulky stejný klíčse používá jako sériové číslo, příklad lze vidět na obrázcích. Při výběru dat určí příkaz Select jako výsledek pouze ty záznamy, jejichž pořadová čísla se shodují, což znamená, že jsou v první i druhé tabulce.
Při použití konstrukce musíte pochopitjaký druh dat potřebujete získat. Nejběžnější chybou, zejména pro začínajícího databázového programátora, je iracionální a nesprávné použití konstruktu Inner join. Jako příklad, MySQL Inner Join, můžete zvážit skript, který nám vrátí z dříve popsaných a vyplněných tabulek informace o objektech a jejich vlastnostech. I zde však může existovat několik způsobů, jak tuto strukturu použít. V tomto ohledu je My SQL velmi flexibilní jazyk. Můžete se tedy podívat na příklady použití MySQL Inner Join.
Zřetězení tabulek bez zadání jakýchkoli parametrů. V takovém případě získáme výsledek takového plánu:
Označíme-li to slovem Používání služby, žeje bezpodmínečně nutné vzít v úvahu hlavní klíče záznamů v tabulkách, pak se výsledek výběru dramaticky změní. V tomto případě dostaneme výběr, který vrátí pouze ty řádky, které mají stejné hlavní klíče.
Možný je také třetí případ použití.konstrukce, když v dotazu přes slovo „na“ jsou označena pole, kterými by měly být tabulky spojeny. V takovém případě vrátí výběr následující data:
Funkce používání funkce Left Join
Pokud uvažujete o jiném způsobu spojování tabulek pomocí konstrukce MySQL - Připojit, můžete si všimnout rozdílu v zobrazených datech. Tento mechanismus je levý konstrukt.
Používání funkce Left Join MySQL má některé zvláštnosti a vyžaduje stejně jako Inner jasné pochopení výsledku.
V tomto případě budou nejprve vybrány všechny záznamy.z první tabulky a k nim budou připojeny pozdější záznamy z druhé tabulky vlastností. Navíc, pokud první tabulka obsahuje záznam, například „stoličku“ a druhá tabulka pro něj nemá jedinou vlastnost, operátor Left před tímto záznamem zobrazí null, což programátorovi řekne, že existují pro tento typ objektu žádné známky ...
Použití tohoto designu vám umožní určit, podle kterých polí nebo například zboží v obchodě nejsou stanoveny ceny, záruční doba atd.
Příklad použití Left
Provozovatel to musí v praxi zvážitKonstrukce MySQL Left Join používají dříve popsané tabulky. Například musíte vybrat celý seznam produktů, které jsou v obchodě, a zkontrolovat, pro které z nich nejsou žádné známky nebo vlastnosti. V tomto případě se při výběru zobrazí všechny produkty a u těch, které nemají vlastnost, budou nastaveny prázdné hodnoty.
Použití klauzule Where in a Join
Jako parametr může spojení obsahovat nejen zadání polí, kterými musí být tabulky spojeny, ale může také obsahovat operátor klauzule Where.
Zvažte například skript, který by mělvrátit nám pouze ty záznamy, u nichž není označení připojeno. V tomto případě musíte přidat operátor podmínky do konstrukce spojení a určit, co přesně je třeba jako výsledek vrátit.
Při použití připojení - kde v MySQL musíte jasně pochopit, že se zobrazí pouze ty záznamy, na které se vztahuje zadaná podmínka, a výběr bude vypadat takto:
Takové dotazy umožňují výběr pomocíkonkrétní data, která souvisí se stavem vybraným programátorem. Můžete zadat několik takových podmínek a maximalizovat parametry pro výběr dat z kombinovaných tabulek.
Použití spojení k úpravě dat v tabulkách
Konstrukce join je v zásadě univerzální.Umožňuje vám nejen provádět různé výběry, ale také zahrnout do dotazů od jedné do několika tabulek a zadat do výběru další podmínky. Konstrukci lze také použít pro další datové operace. Například Join lze použít k úpravě dat v tabulce. Spíše k objasnění podmínek v tabulce nebo v případech, kdy je třeba aktualizovat data v několika tabulkách za stejných podmínek.
Zvažte například následující problém.Existují tři tabulky, které obsahují některá data. Musíte změnit data v obou tabulkách pomocí jednoho dotazu. K vyřešení tohoto druhu úkolů můžete použít konstrukci Spojit se v příkazu Aktualizovat. Typ samotné konstrukce spojení závisí, stejně jako v případě vzorkování dat, na výsledku, který chce programátor získat.
Pojďme se podívat na nejjednodušší příklad.Je nutné aktualizovat údaje za stejných podmínek jedním požadavkem. Dotazy tohoto druhu jsou vytvořeny za účelem optimalizace práce s databází. Proč psát různé dotazy pro každou z tabulek, když můžete provádět veškerou manipulaci s daty pomocí jednoho dotazu? Příklad MySQL Update Join v našem případě bude takový:
Vytváření složitých dotazů
Poměrně často při práci s databázíje nutné vytvářet dotazy nejen spojením několika tabulek, ale také pomocí poddotazů. Takové úkoly jsou pro začínajícího programátora databází docela obtížné pochopit. Potíž spočívá ve skutečnosti, že musíte promyslet každý krok, určit, která data ze které tabulky nebo dotazu potřebujete získat a jak s nimi budete v budoucnu muset pracovat.
Pro přesnější pochopení můžete zvážit(v MySQL Join) příklady složitých dotazů. Pokud jste začátečník a teprve začínáte pracovat s databázemi, bude takové školení jen přínosem. Ideální možností by byly příklady MySQL Left Join.
Tento požadavek nám vrátí 58 smluvních záznamůtržby, u nichž je hotovostní zůstatek vyplněn nebo existuje k vybranému datu. V tomto případě se jedná o aktuální datum. Do výběru byla také přidána podmínka, že název smlouvy musí obsahovat symboly - „123“. Informace (data) zobrazené na obrazovce budou seřazeny - seřazeno podle čísla smlouvy.
Následující příklad zobrazí údaje o všech platbách, ve kterých bude uvedeno číslo smlouvy.
Pomocí poddotazů
Jak již bylo zmíněno dříve, při práci s databázemidata, můžete kombinovat nejen tabulky, ale také tabulku s dotazem. Tento design se používá hlavně k urychlení dotazu a jeho optimalizaci.
Například pokud je to nutné z tabulky, kterámá několik stovek polí a řekněme tisíc záznamů, vyberte pouze dvě pole, pak byste měli použít dotaz, který vrátí pouze požadovaná pole, a zkombinovat jej s hlavní sadou dat. Jako příklad MySQL Join Select můžete zvážit dotaz tohoto typu:
Nejedná se o všechny způsoby použití standarduKonstrukce MySQL, ale pouze standardní. Jak používat konstrukci Spojení a v jakých formách je na samotném programátorovi, ale stojí za to pamatovat a vzít v úvahu, jaký výsledek by měl být dosažen při provádění dotazu.