پاسخ به:آموزش SQL
دوشنبه 10 آذر 1393 9:16 PMآموزش SQL-پیوندها یا Joinها
پیوندها برای فراخوانی داده ها از دو یا چند جدول با توجه به ارتباط بین ستون های خاصی از این جدول ها استفاده می شوند.
پیوند (JOIN) بین جداول در SQL
Wiki
کلید واژه JOIN در دستورات SQL برای ایجاد Query از دو یا چند جدول براساس ارتباط بین ستون های خاصی از جداول استفاده می شود.
جداول در پایگاه داده اغلب به وسیله کلیدها به یکدیگر مرتبط می شوند.
primary key یا کلید اصلی، ستونی(یا ترکیبی از ستون ها) با داده منحصر به فرد و یکتا برای هر سطراست. مقدار کلید اصلی باید یکتا باشد. هدف مرتبط کردن داده ها بین جداول است بدون اینکه داده ها در جداول تکرار شوند.
در جدول Persons:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
توجه کنید که ستون P_Id در جدول فوق کلید اصلی است. این بدان معنی است که هیچ دو سطری نمی تواند مقدار یکسانی داشته باشد. ستون P_Id دو فرد را حتی اگر نام های یکسانی هم داشته باشند، متمایز می کند.
در جدول Orders:
| O_Id | OrderNo | P_Id |
|---|---|---|
| 1 | 77895 | 3 |
| 2 | 44678 | 3 |
| 3 | 22456 | 1 |
| 4 | 24562 | 1 |
| 5 | 34764 | 15 |
دقت کنید که ستون O_Id در جدول Orders کلید اصلی می باشد و ستون P_Id در اینجا به نفرات در جدول Persons بدون استفاده از نامشان اشاره دارد.
توجه کنید که ارتباط بین دو جدول به وسیله ستون P_Id می باشد.
تفاوت پیوندها
Wiki
قبل از اینکه بحث را ادامه دهیم انواع پیوندهایی که می توان استفاده کرد را به همراه تفاوت های آن ها بیان می کنیم:
- JOIN: سطرهایی را که در هر دو جدول تناظر دارند را بر می گرداند.
- LEFT JOIN: تمامی سطرها از جدول سمت چپ را برمی گرداند حتی اگر هیچ تناظری در جدول سمت راست نداشته باشد.
- RIGHT JOIN: تمامی سطرها از جدول سمت راست را برمی گرداند حتی اگر هیچ تناظری در جدول سمت چپ نداشته باشد.
- FULL JOIN: تمام ردیف های موجود در جداول را با وجود حتی یک همخوانی میان جداول بر می گرداند.