خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
تفاوت Inner Join و Outer Join در SQL Server چیست
حتی اگر مدت بسیار کوتاهی هم در رابطه با دیتابیس ها مطالعه داشته باشید حتما با واژه Join آشنا هستید و در مورد کار آن مطالبی را خوانده اید(روی صحبت ما در این پست، SQL Server می باشد). Join انواع مختلفی دارد که ما به Inner Join و Outer Join که دو نوع از join ها هستند، خواهیم پرداخت. تفاوت بالقوه بین Inner Join و Outer Join در این است که Inner Join فقط رکوردهای هماهنگ از هر دو جدول باز می گرداند و Outer Join تمام رکوردها را از هر دو جدول را برمی گرداند.
برای درک بهتر Inner Join، قصد درایم از یک مثال ساده استفاده کنیم. جدول student و جدول department دو جدول از هم جدا هستند. حال اجازه دهید که به طرز کار inner Join بپردازیم.
خروجی این Join فقط رکوردهایی از دو جدول بودند که Student.Department_ID = Department.ID بود. inner join فقط برای خروجی رکوردهایی که با هم تطابق دارند استفاده می شود.
لطفا به دستور زیر دقت کنید:
همانطور که مشاهده می کنید، تمامی رکوردهای جدول Sudend در خرورجی نمایش داده شده است.
همانطور که می توانید مشاهده کنید، تمامی رکوردهای جدول Department در خروجی دستور وجود دارد.
در خروجی دستور Full outer join، تمامی رکوردهای هر جدول نمایش داده شده است.
آموزش پایگاه داده اس کیو ال سرور به زبان ساده از مبتدی تا پیشرفته بصورت کاملا کاربردی
دوره آموزش برنامه نویسی بانکهای اطلاعاتی VB.NET + SQL Server
Definition of Inner Join
Inner Join همچنین با Natural Join هم شناخته می شود که شاید با این واژه چندان آشنا نباشید. Inner Join دو جدول را مقایسه می کند و در هر دو جدول رکوردهای مطابق را ترکیب می کند و در ضمن این نوع Join، جوین پیشفرض می باشد و در زمان درج دستور برای Join کردن نیازی نیست که حتما inner join را کامل تایپ کنید بلکه همین join برای جوین کردن جداول کافیست. پس اگر شرط Join را بدون Outer هم در دستور وارد کنید، معنی inner join خواهد داد.برای درک بهتر Inner Join، قصد درایم از یک مثال ساده استفاده کنیم. جدول student و جدول department دو جدول از هم جدا هستند. حال اجازه دهید که به طرز کار inner Join بپردازیم.
SELECT Name, Sem, Deparment_name FROM Student INNER JOIN Department ON Student.Department_ID= Department.ID
خروجی این Join فقط رکوردهایی از دو جدول بودند که Student.Department_ID = Department.ID بود. inner join فقط برای خروجی رکوردهایی که با هم تطابق دارند استفاده می شود.
Definition of Outer Join
بر خلاف Inner Join، Outer Joinتمامی رکوردهای هر دو جدول را نمایش می دهد. در واقع Outer Join ترکیبی از سه نوع جوین Left Outer Join ، Right Outer Join و Full Outer Join می باشد. در ادامه درخصوص هر کدام از این Join ها صحبت خواهیم کرد.لطفا به دستور زیر دقت کنید:
Select Name, Department_name From Student Left Outer Join Department ON Student.Department_ID=Depoartment.ID
همانطور که مشاهده می کنید، تمامی رکوردهای جدول Sudend در خرورجی نمایش داده شده است.
Select Name, Department_name From Department Right Outer Join Student ON Student.Department_ID=Depoartment.ID
همانطور که می توانید مشاهده کنید، تمامی رکوردهای جدول Department در خروجی دستور وجود دارد.
Select Name, Department_name From Student Full Outer Join Department ON Student.Department_ID=Depoartment.ID
در خروجی دستور Full outer join، تمامی رکوردهای هر جدول نمایش داده شده است.
تفاوت اصلی در دو نوع جوین inner join و outer join در این است که در inner join پس از تطبیق رکوردهای دو جدول، خروجی نمایش داه می شود و در outer join همه رکوردهای دو جدول در خروجی دستور قرار خواهند گرفت.
سایز دیتابیس حاصل از Inner Join کوچکتر از Outer Join است.
سایز دیتابیس حاصل از Inner Join کوچکتر از Outer Join است.
آموزش پایگاه داده اس کیو ال سرور به زبان ساده از مبتدی تا پیشرفته بصورت کاملا کاربردی
دوره آموزش برنامه نویسی بانکهای اطلاعاتی VB.NET + SQL Server
نمایش دیدگاه ها (1 دیدگاه)
دیدگاه خود را ثبت کنید: