Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

MySQL pripája Vzťah Tutoriál

MySQL je open source relačný databázový systém ( RDBMS ) , že jednotlivci a firmy často používajú na spustenie zadná časť webových aplikácií . V SQL , pripojí sa často zmariť nových používateľov . Ako databáz sú stále väčšie , to sa stáva rozhodujúce pre otázky na použitie pripojí efektívne . MySQL JOIN kľúčových slov uľahčuje prácu s nové aj staršie kód . Vnútorné pripája

Ak si myslíte , že spojenie dvoch tabuliek , budete pravdepodobne uvažovať o dotaze s jednoduchým spojiť tabuľky ako zamestnancov s tabuľkou , ako je oddelenie :

SELECT Employees.last_name , Employees.first_name , Departments.department_nameFROM oddelenie , EmployeesWHERE Departments.department_id = Employees.department_id ;

Toto je vnútorné spojenie . Je to načíta iba riadky , kde department_id je presne rovnaký v oboch tabuľkách . Vyššie uvedený kód funguje v MySQL , ale vám to môže pripadať menej čitateľný ako nasledujúce :

SELECT Employees.last_name , Employees.first_name , Departments.department_nameFROM DepartmentsINNER JOIN EmployeesON Departments.department_id = Employees.department_id ;

Tieto dva otázky produkovať presne rovnaký výstup . Rozdiel je v tom , že pomocou MySQL JOIN kľúčové slovo , ktoré ste vykonali , že viac zrejmé , aký druh spojiť , ktorú ste použili . Vzhľadom k tomu , vnútorné spojenie je predvolené nastavenie , ak necháte off kľúčové slovo vnútorné , MySQL stále vykonáva vnútorné spojenie .
Vonkajšie spojenie

Ak máte zamestnanca , ktorí nie sú priradené na konkrétne oddelenie a majú hodnotu NULL pre ich department_id , vyššie uvedené spojenie nebude zobrazovať tie zamestnanca vôbec . Ak chcete, aby všetkých zamestnancov , či už majú oddelenia , alebo nie , budete musieť použiť vonkajšie spojenie .

MySQL používa vľavo alebo vpravo s kľúčovým slovom JOIN určiť , že chcete , vonkajšie spojenie , a povedať mu , ktorý stôl chcete, aby NULL z Tu je náš revidovaný otázka:

SELECT Employees.last_name , Employees.first_name , Departments.department_nameFROM EmployeesLEFT OUTER JOIN DepartmentON Departments.department_id = Employees.department_id ;

Môžete dostať každý zamestnanec vo svojom výkone , a to aj ak MySQL nevidí department_id tak , aby zodpovedala záznam zamestnanca . Tabuľka Ak chcete povoliť hodnoty Null od ( oddelenie ) je na ľavej strane od rovnítka .

Ak by ste chceli vidieť oddelení sa vo vašom výstupe bez zamestnancov , mali by ste použiť RIGHT OUTER JOIN . Tabuľka Ak chcete povoliť hodnoty Null od v tomto prípade je na pravej strane rovnítka .
Cross pripája

Robiť kríž pripojí náhodou je častou chybou . To je to , čo sa stane , keď nezadáte pripojiť vôbec . Ak nemáte ani dať pripojiť klauzulu WHERE , alebo použite jednu z druhej JOIN ... ON možnosťou , dostanete všetky možné kombinácie riadkov v každej z tabuliek vo vašej FROM či majú vzťah , alebo nie .

Ak budete ťahať z tri stoly s , respektíve, 10 , 20 , a 3 riadky , dostanete 10 x 20 x 3 riadky ako celkový výstup . Môžete vidieť problém to spôsobuje , ak vaša databáza má viac ako niekoľko záznamov .

Zriedka, budete chcieť urobiť kríž pripojiť na účel . MySQL umožňuje použiť CROSS JOIN ... ON syntaxe ukázať editáciu niekto kóde neskôr , že krížové spojenie bolo úmyselné .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené