Příkaz SQL INNER JOIN: příklady, syntaxe a funkce
Vývoj libovolné databáze znamená nejen vytvoření a vyplňování tabulek s různými informacemi, ale také další práce s daty. Pro správné provádění různých úloh pro výběr dat z tabulek a generování sestav se používá standardní konstrukce Select.
Obsah
- Data se vybírají z tabulek
- Způsoby připojení dalších tabulek
- Kombinace dat v tabulkách po řádcích
- Popis operátora inner join
- Syntaxe operátoru internal join
- Příklad a popis připojení k výběru jedné tabulky
- Příklad propojení dvou tabulek a poddotazů
- Příklad použití operátoru internal join pro výběr z velkého počtu tabulek
- Závěr
Data se vybírají z tabulek
Pokud zvážíte úlohu výběru dat nebo sestavení určité zprávy, můžete zjistit úroveň složitosti této operace. Při práci se seriózními (na objemu informací) databází, které jsou vytvořeny například v on-line obchodech nebo ve velkých společnostech, nebude vzorkování dat omezeno pouze na jednu tabulku. Zpravidla může být vzorek z poměrně velkého množství nejen propojené tabulky, ale i vnořené dotazy / sub-dotazy, což programátorovi, v závislosti na jeho úkol. Pro odběr vzorků z jedné tabulky můžete použít nejjednodušší design:
Zvolte * z osoby |
kde Osoba je název tabulky, ze které chcete vybrat data.
Pokud je potřeba vybrat data z několika tabulek, můžete použít jeden ze standardních návrhů pro kombinování několika tabulek.
Způsoby připojení dalších tabulek
Pokud uvažujeme o použití těchto struktur na počáteční úrovni, pak můžeme rozlišovat následující mechanismy pro připojení potřebného počtu tabulek pro vzorek, a to:
- Operátor Vnitřní spojení.
- Left Join nebo, je to druhý způsob nahrávání, Left Out Join.
- Křížové spojení.
- Full Join.
Použití tabulky operátorů spojení v praxi může být učeno zvážením použití operátora SQL - Internal Join. Příklad jeho použití bude vypadat takto:
Zvolte * z osoby Vnitřní spojení na Subdivision na Su_Person = Pe_ID |
Jazyk SQL a spojení vnitřní spojení operátor lze použít nejen pro spojení dvou nebo více tabulek, ale také k připojení dalších dílčích dotazů, což značně usnadňuje práci správcům databází, a zpravidla může výrazně urychlit provádění specifických, komplikovaných dotazů struktur.
Kombinace dat v tabulkách po řádcích
Pokud zvážíte připojení velkého počtu poddotazů a sestavování dat do jednoho řádku tabulky po řádku, můžete také použít operátory Union a Union All.
Aplikace těchto návrhů bude záviset na úkolu přiděleném developerovi a výsledku, který chce nakonec dosáhnout.
Popis operátora Inner Join
Ve většině případů použijete operátor Inner Join k připojení více tabulek v SQL. Popis rozhraní Inner Join v SQL je poměrně jednoduchý pro průměrného programátora k pochopení, který právě začíná chápat databáze. Pokud uvážíme popis mechanismu fungování této konstrukce, získáváme následující obrázek. Logika operátora jako celku je založena na možnosti průniku a odběru vzorků pouze těch dat, které existují v každé z tabulek vstupujících do dotazu.
Pokud tuto práci považujeme z hlediska grafického výkladu, získáme strukturu SQL Inner Join, jejíž příklad lze ukázat pomocí následujícího schématu:
Například máme dvě tabulky, jejichž schéma je znázorněno na obrázku. Na druhé straně mají jiný počet záznamů. V každém z tabulek jsou pole, která jsou spojena dohromady. Pokud se pokusíte vysvětlit práci operátora na základě čísla, vrácený výsledek bude ve formě souboru záznamů ze dvou tabulek, kde se shodují čísla příbuzných polí. Jednoduše řečeno, dotaz vrátí pouze ty záznamy (z tabulky číslo dvě), údaje o kterých je v tabulce číslo jedna.
Syntaxe operátoru Internal Join
Jak bylo uvedeno výše, operátor Inner Join, a to jeho syntaxe, je velmi jednoduchý. Chcete-li uspořádat propojení mezi tabulkami v rámci jednoho vzorku, stačí zapamatovat a použít následující hlavní schéma pro konstrukci operátora, který je zapsán do jednoho řádku kódu programu SQL, a to:
- Vnitřní připojení [Název tabulky] na [klíčové pole z tabulky, ke které se připojujeme] = [Klíčové pole připojené tabulky].
Pro komunikaci v tomto operátorovi se používají hlavní klávesy tabulek. Zpravidla ve skupině tabulek, které uchovávají informace o zaměstnancích, dříve popsané osoby a subdivize mají alespoň jeden podobný záznam. Podívejme se tedy blíže na prohlášení SQL Inner Join, jehož příklad se ukázal o něco dříve.
Příklad a popis připojení k výběru jedné tabulky
Máme tabulku Osoby, která uchovává informace o všech zaměstnancích, kteří pracují ve společnosti. Stačí si uvědomit, že hlavním klíčem této tabulky je pole - Pe_ID. Jen na to a tam bude spousta.
Druhá tabulka dílčích tříd uloží informace o odděleních, ve kterých zaměstnanci pracují. To je zase spojeno pomocí pole Su_Person s tabulkou Person. Co říkáte? Na základě datového schématu můžete říci, že tabulka oddělení pro jednotlivé položky v tabulce Zaměstnanci bude obsahovat informace o oddělení, ve kterém pracují. Právě pro toto spojení pracuje operátor Inner Join.
Pro lepší pochopení použijte příkaz SQL Inner Join (příklady jeho použití pro jednu a dvě tabulky). Pokud uvažujeme o příkladu pro jednu tabulku, pak je vše vcelku jednoduché:
Zvolte * z osoby Vnitřní spojení na Subdivision na Su_Person = Pe_ID |
Příklad propojení dvou tabulek a poddotazů
Operátor SQL Inner Join, jehož příklady použití pro načítání dat z několika tabulek lze uspořádat výše uvedeným způsobem, pracuje na mírně komplikovanějším principu. Pro dva tabulky komplikujeme problém. Například máme tabulku Depart, která ukládá informace o všech odděleních v každém oddělení. V této tabulce se zaznamenává číslo oddělení a číslo zaměstnance a datový vzorek by měl být doplněn názvem každého oddělení. Při pohledu do budoucna stojí za to říci, že pro řešení tohoto problému lze použít dvě metody.
Prvním způsobem je propojit tabulku oddělení se vzorkem. V takovém případě můžete žádost uspořádat takto:
Vyberte Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name od osoby Vnitřní spojení na Subdivision na Su_Person = Pe_ID Vnitřní spojení Vyjděte na Su_Depart = Dep_ID a Pe_Depart = Dep_ID |
Druhou metodou řešení problému je použití poddotazů, ve kterých nebude z tabulky oddělení vybrána všechna data, ale pouze požadované údaje. To na rozdíl od první metody zkracuje dobu dotazu.
Vyberte Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name od osoby Vnitřní spojení na Subdivision na Su_Person = Pe_ID Vnitřní spojení (vyberte Dep_ID, Dep_Name, Pe_Depart od Odlet) jako T na Su_Depart = Dep_ID a Pe_Depart = Dep_ID |
Je třeba poznamenat, že takový návrh nemůže vždy zrychlit dotaz. Někdy existují případy, kdy je nutné použít další vzorkování dat v dočasné tabulce (pokud je jejich objem příliš velký) a poté se kombinuje s hlavní vzorkou.
Příklad použití operátoru Internal Join pro výběr z velkého počtu tabulek
Vytváření komplexních dotazů vyžaduje použití významného počtu tabulek a poddotáz, které se vzájemně vztahují k získání dat. Tyto požadavky mohou splňovat syntaxi SQL Inner Join. Příklady použití operátora v tomto případě mohou být komplikovány nejen vzorky z mnoha míst uložení dat, ale také z velkého počtu vnořených poddotazů. Pro konkrétní příklad můžete vzít vzorek dat z systémových tabulek (operátor Inner Join SQL). Příklad - 3 tabulky - v tomto případě bude mít poměrně složitou strukturu.
V tomto případě jsou přidány další tři (do hlavní tabulky) a zadává se několik podmínek pro výběr dat.
Pokud používáte operátor Inner Join, nezapomeňte, že čím komplexnější je dotaz, tím déle bude implementován, takže stojí za to hledat způsoby, jak rychleji provést a vyřešit tento úkol.
Závěr
Na závěr bych chtěl říci jednu věc: práci s databázemi - není to nejtěžší věc na programování, takže pokud chcete každý člověk bude mít možnost získat znalosti, vybudovat databázi, a časem, získat zkušenosti, dostanete se s nimi pracovat na profesionální úrovni .
- Normalizace databáze
- Left join (SQL) - příklad, podrobný popis, chyby použití
- Základní příkazy SQL
- Vytvoření databáze MySQL je součástí jakéhokoli webu
- Jak psát dotazy SQL - podrobné příklady
- Práce s databází: jaké jsou požadavky
- MySQL vyberte z výběru: operátor vzorkování
- MySQL - požadavek v žádosti. MySQL: příklady dotazů. Vnořené dotazy MySQL
- HAVING SQL: popis, syntaxe, příklady
- SQL Kde: aplikační metody a příklady
- MySQL JOIN: popis, příklad použití příkazu a doporučení
- Funkce vytvoření tabulky v SQL - Vytvoření tabulky
- Vytvoření tabulky SQL krok za krokem
- SQL dotaz je co?
- Vytváření dotazů v aplikaci Access. Typy požadavků
- Vymazat příkaz Delete MySQL
- Vymazání duplicit MySQL
- Jak vytvořit databázi mysql
- Dotaz SELECT SELECT. Popis, aplikace a funkce
- Jak vytvářet dotazy v aplikaci Access: podrobné pokyny a doporučení
- Podrobnosti o přístupu k tabulkám