آموزش join در دیتابیس

چاپ

Join یک دستور در sql است که از آن برای ترکیب کردن داده های دو جدول  استفاده می شود.

 قبل از اینکه وارد جزئیات دستور join در sql شویم اجازه دهید تا بررسی کنیم و ببینیم که sql چیست و چرا کسی باید بخواهد عمل join را در sql انجام دهد.

 Sql یک زبان است که برای مدیریت اطلاعات در یک دیتابیس رابطه ای طراحی شده است.

کلمه ی رابطه ای، یک مفهوم کلیدی دارد. این کلمه به ما می گوید که دیتابیس ما  طوری طراحی شده است که ارتباط روشنی بین مجموعه داده های مختلف وجود دارد.


 مثالی در مورد دیتابیس های رابطه ای

فرض کنید که شما یک فروشگاه راه اندازی کرده اید، و می خواهید اطلاعات مشتریان و سفارشات آنها را ذخیره کنید.

با استفاده از یک دیتابیس رابطه ای، می توانید این اطلاعات مذکور را در قالب دوجدول مجزا ذخیره کنید که نام آنها را customers و orders می گذاریم. جدول customers به صورت زیر است:

در جدول بالا، اطلاعات هر مشتری، در داخل یک سطر جداگانه ذخیره شده است. علاوه بر اطلاعات مشتری، ستون سمت چپ، شماره ی مشتری ها را نشان می دهد که به آن primary key یا کلید اصلی می گوییم. هر رکوردی یک کلید اصلی دارد.

جدول orders هم به صورت زیر است:

در این جدول نیز هر ردیف اطلاعات یک سفارش را مشخص می کند. هر یک از این سفارشات یک کلید اصلی به نام order_id دارد که به آن انتساب داده شده است.

مدل رابطه ای

احتمالا متوجه شده اید که این دو مثال، اطلاعات مشابهی را به اشتراک می گذارند.

با استفاده از تصویر زیر می توانید این رابطه ی ساده را متوجه شوید:

 تصویر بالا یعنی: ستون customer_id که در جدول Customers قرار دارد، با ستون customer_id در جدول Orders ارتباط دارد. 

توجه کنید که جدول orders حاوی دو کلید است: یک کلید برای سفارشات و یک کلید هم برای آن مشتری( در جدول customers) که سفارش را انجام داده است.

در حالتی که چند کلید در یک جدول وجود دارند، به آن کلیدی که به موضوع اصلی آن جدول اشاره می کند، کلید اصلی یا pk گفته می شود و به کلید دیگری، کلید خارجی یا fk گفته می شود.

پس در مثال ما، order_id که در جدول orders قرار دارد، کلید اصلی است در حالیکه customer_id در جدول customers نیز کلید اصلی است اما در جدول orders کلید خارجی است.

برای تعریف ارتباط(رابطه) بین جدول ها، استفاده از کلید اصلی و کلید خارجی ضروری می باشد (همچنین برای انجام join ها در sql ضروری است).


یک مثال از join در sql

فرض کنید می خواهیم تمام سفارشات یک مشتری خاص را پیدا کنیم. برای انجام این کار، می توانیم جدول های customers و orders را با استفاده از ارتباط ایجاد شده توسط کلید customer_id،  با یکدیگر join کنیم. به دستورات زیر توجه کنید:

در اینجا، ما دو جدول را با استفاده از کلمه ی کلیدی join به یکدیگر پیوند می دهیم.

با استفاده از دستورات بالا می گوییم که:

  1. دو ستونorder_date و order_amountرا در نظر بگیر.
  2. برای هر عدد که در ستون customer_id در جدول customers قرار دارد، به دنبال این اعداد در ستون customer_id در جدول orders بگرد و تطابق ها را پیدا کن و به ما بده. و بگو که در جدول orders کدام order_id این تطابق را ایجاد می کند و آنها را به ما بده.

بعنوان مثال برای عدد 3 داریم:

این نوع جوین خاص، مثالی از یک inner join است. بر اساس کاری که می خواهید انجام دهید، مممن است بخواهید از روش های متفاوتی استفاده کنید.

راه های مختلفی برای جوین کردن دو جدول وجود دارد و به شما بستگی دارد.


برای مشاهده فیلم های آموزشی مقدماتی تا پیشرفته پایگاه داده SQLServer کلیک کنید.