Ներքին միացում ընդդեմ արտաքին միացման
Ներքին միացումը և արտաքին միացումը SQL-ի միացման մեթոդներից երկուսն են, որոնք օգտագործվում են տվյալների բազաների հարցումների մշակման ժամանակ: Նրանք պատկանում են միացման կետերի ընտանիքին (մյուս երկուսը ձախ և աջ միացումներ են): Այնուամենայնիվ, կա Self Join, որը կարող է օգտագործվել մասնագիտացված իրավիճակների համար: Join-ի նպատակն է միավորել դաշտերը՝ օգտագործելով երկու աղյուսակների ընդհանուր արժեքները: Այս միացումները միավորում են տվյալների բազայի մի քանի աղյուսակների գրառումները: Այն ստեղծում է արդյունքային հավաքածուներ, որոնք կարող են պահպանվել որպես մեկ այլ աղյուսակ:
Ի՞նչ է ներքին միացումը:
Ամենից հաճախ օգտագործվող SQL Join օպերացիան Inner Join-ն է:Այն կարելի է համարել որպես հավելվածներում օգտագործվող միացման լռելյայն տեսակ։ Ներքին միացումն օգտագործեք join-predicate երկու աղյուսակները միավորելու համար: Ենթադրելով, որ երկու աղյուսակները A և B են, ապա միացվող պրեդիկատը կհամեմատի A և B տողերը՝ պարզելու բոլոր զույգերը, որոնք բավարարում են պրեդիկատին: A և B աղյուսակների բոլոր բավարարված տողերի սյունակների արժեքները համակցված են՝ արդյունքը ստեղծելու համար: Այն կարող է դիտվել որպես սկզբում բոլոր գրառումների խաչաձև միացումը (դեկարտյան արտադրյալը) և այնուհետև վերադարձնել միայն այն գրառումները, որոնք բավարարում են միացում-պրեդիկատը: Սակայն իրականում դեկարտյան արտադրանքը հաշվարկված չէ, քանի որ այն շատ անարդյունավետ է։ Փոխարենը օգտագործվում է հեշ միացում կամ տեսակավորող միացում:
Ի՞նչ է արտաքին միացումը:
Ի տարբերություն ներքին միացման, արտաքին միացումը պահպանում է բոլոր գրառումները, նույնիսկ եթե չի կարողանում համապատասխան գրառում գտնել: Դա նշանակում է, որ արտաքին միացման համար անհրաժեշտ է ռեկորդ՝ համապատասխան ռեկորդ գտնելու համար, որպեսզի այն հայտնվի արդյունքում: Փոխարենը, այն կվերադարձնի բոլոր գրառումները, բայց չհամընկնող գրառումները կունենան զրոյական արժեքներ: Արտաքին միացումները բաժանված են երեք ենթակարգերի. Դրանք մնացել են արտաքին միացում, աջ արտաքին միացում և ամբողջական արտաքին միացում: Այս տարբերակումը հիմնված է այն բանի վրա, թե որ աղյուսակի (ձախ աղյուսակ, աջ աղյուսակ կամ երկու աղյուսակներ) տողերը պահպանվում են, երբ հայտնաբերվում են չհամընկնող գրառումներ: Ձախ արտաքին միացումները (նաև հայտնի են որպես պարզապես ձախ միացում) պահպանում են ձախ աղյուսակի բոլոր գրառումները: Դա նշանակում է, որ նույնիսկ եթե թվերի համապատասխան գրառումները զրո են, ապա այն դեռևս կունենա գրառումներ արդյունքների աղյուսակում, բայց կունենա զրոյական արժեքներ B-ի բոլոր սյունակների համար: Այլ կերպ ասած, ձախ աղյուսակի բոլոր արժեքները վերադարձվում են աջից համապատասխան արժեքներով: աղյուսակ (կամ զրոյական արժեքներ, երբ դրանք չեն համընկնում): Եթե ձախ աղյուսակի մի քանի տողերի արժեքները համընկնում են աջ աղյուսակի մեկ տողի հետ, աջ աղյուսակի տողը կկրկնվի ըստ պահանջի: Աջ արտաքին միացումը շատ նման է ձախ արտաքին միացմանը, բայց սեղանների վերաբերմունքը հարգված է: Դա նշանակում է, որ արդյունքը կունենա աջ աղյուսակի բոլոր տողերը առնվազն մեկ անգամ համապատասխան ձախ աղյուսակի արժեքներով (և զրոյական արժեքներ՝ չհամընկնող աջ արժեքների համար): Ամբողջական արտաքին միացումն ավելի ընդգրկուն է, քան թե ձախ և թե աջ արտաքին միացումները:Դա հանգեցնում է ձախ և աջ արտաքին միացված կիրառման էֆեկտի համադրմանը:
Ո՞րն է տարբերությունը ներքին միացման և արտաքին միացման միջև:
Inner Join-ը չի պահպանում չհամընկնող տողերը արդյունքում, բայց արտաքին միացումը կպահի բոլոր գրառումները առնվազն մեկ աղյուսակից (կախված նրանից, թե որ արտաքին միացումն է օգտագործվել): Այսպիսով, արդյունքների աղյուսակում չհամընկնող տողերի վերաբերյալ տեղեկատվություն չունենալու վարքագիծը անցանկալի է, դուք պետք է միշտ օգտագործեք արտաքին միացումներից մեկը (ներքին միացման տեղում): Ներքին միացումը կարող է արդյունք չտալ, եթե համընկնումներ չգտնվեն: Բայց արտաքին միացումը միշտ կստեղծի արդյունքի աղյուսակ, նույնիսկ առանց համապատասխանող տողերի: Ներքին միացումը միշտ կվերադարձնի արժեքներով աղյուսակները (եթե վերադարձվեն): Բայց արտաքին միացումները կարող են հանգեցնել զրոյական արժեքներով աղյուսակների: