دستور inner join در SQL – از کاربرد تا نحوه استفاده به زبان ساده

۶۹ بازدید
آخرین به‌روزرسانی: ۱۰ اردیبهشت ۱۴۰۳
زمان مطالعه: ۱۴ دقیقه
دستور inner join در SQL – از کاربرد تا نحوه استفاده به زبان ساده

عبارت‌های join در SQL مانند رشته‌های نامرئی در دنیای وسیع پایگاه‌های داده، هستند. این رشته‌های نامرئی تکه‌های ناهمخوان داده‌ها را به شکل منسجمی در کنار یکدیگر قرار می‌دهند تا روایت یکپارچه‌ای از اطلاعات به‌وجود بیاورند. این join-ها برای اجرای عملیات پیچیده در پایگاه‌ داده ضروری هستند. دستور‌های join در استخراج، تجزیه و تحلیل و ارائه دادن داده‌ها در اشکال معنادار و قابل ارائه کمک می‌کنند. با اینکه SQL به دلیل داشتن طیف وسیعی از join-ها مانند left و right و full و self به خود می‌بالد، اما INNER JOIN  است که در بیشتر اوقات نقش هسته اصلی طیف وسیعی از عملیات کوئری‌ها را بازی می‌کند. در این مطلب از مجله فرادرس، به‌طور کامل به بررسی دستور inner join در SQL پرداخته‌ایم و بر روی کارایی و نقش پُرارزشی تمرکز کرده‌ایم که عملیات مربوط به پایگاه‌های داده در زبان SQL ایفا می‌کند.

دستور inner join در SQL چیست؟

دستور inner join در SQL، ردیف‌هایی از دو جدول مختلف را که در داده‌های مربوط به یک یا چند ستون مشترک هستند با یکدیگر ترکیب می‌کند. برای مثال می‌توانید از دستور INNER JOIN بر روی جدول مربوط به بخش‌های مختلف سازمان و جدول کارمندان استفاده کنید تا جدولی بدست بیاورید که کارمندان هر بخش را نمایش می‌دهد.

پیش‌ نیازهای درک دستور inner join در SQL

برای اطمینان از داشتن تجربه یادگیری بدون مشکل در طول مطالعه این مطلب، لازم است که از وجود پیش‌نیازهای مورد نیاز مطمئن باشیم. این موارد را در ادامه فهرست کرده‌ایم.

  • محیط کار SQL: برای تمرین و کار با دستور inner join در SQL باید بر روی کامپیوتر خود یک «سامانه مدیریت پایگاه داده رابطه‌ای» (Relational Database Management System | RDBMS) به صورت نصب شده داشته باشیم. به عنوان نمونه RDBMS می‌توانیم به پایگاه‌های داده Microsoft SQL Server و MySQL و PostgreSQL و SQLite اشاره کنیم. شاید فرامین خاصی بسته به RDBMS مورد استفاده، اندکی با یکدیگر تفاوت داشته باشند، اما اصول اصلی سیستم مدیریت این پایگاه‌های داده‌، ثابت هستند.
  • کلاینت یا رابط کاربری SQL: رابط کاربری SQL به پلتفرمی می‌گویند که می‌توان کوئری‌های SQL را در آن نوشت و اجرا کرد. این نرم‌افزار می‌تواند کلاینت SQL مانند DbVisualizer یا رابطی مانند phpMyAdmin یا هر ابزار دیگری باشد.
  • دانش پایه SQL: دانش پایه SQL شامل آشنایی با فرامین پایه‌ای مانند SELECT و FROM و WHERE می‌شود. اگر نسبت به SQL تازه‌کار هستید، بهتر است که از قبل از پرداختن به عملیات مربوط به JOIN نسبت به مفاهیم و دستورات پایه SQL دانش خود را تقویت کنید.
  • مجموعه داده: برای رسیدن به هدف در این مطلب آموزشی، مجموعه داده ساده‌ای را به عنوان نمونه بر روی پایگاه داده ایجاد خواهیم کرد تا بتوانیم کوئری‌های مربوط به دستور INNER JOIN را بر روی آن مجموعه داده آزمایش کنیم.
یک مهندس تحلیل داده در حال کار در مقابل سه مانیتور نشسته است

ایجاد مجموعه داده

در این بخش دو مجموعه داده ساده به نام‌های نویسندگان Authors  و کتاب‌ها Books  ایجاد کرده‌ایم.

جدول Authors

در این جدول اطلاعات مربوط به نویسندگان را ذخیره می‌کنیم.

1CREATE TABLE Authors (
2    AuthorID INT PRIMARY KEY,
3    AuthorName VARCHAR(255)
4);

کد بالا مربوط به ساخت جدول در SQL بود. با کد پایین چند داده کوچک در این جدول وارد می‌کنیم.

1INSERT INTO Authors (AuthorID, AuthorName) VALUES 
2(1, 'George Orwell'),
3(2, 'F. Scott Fitzgerald'),
4(3, 'Herman Melville'),
5(4, 'John Doe');

جدول Books 

این جدول اطلاعات مربوط به کتاب‌ها و اینکه هر کتاب توسط چه نویسنده‌ای نوشته شده را ذخیره می‌کند.

1CREATE TABLE Books (
2    BookID INT PRIMARY KEY,
3    BookTitle VARCHAR(255),
4    AuthorID INT,
5    FOREIGN KEY (AuthorID) REFERENCES Authors(AuthorID)
6);

با کد بالا ساختار جدول Books را ایجاد کردیم و با کد پایین در این جدول یکی سری اطلاعات مختصر وارد می‌کنیم.

1INSERT INTO Books (BookID, BookTitle, AuthorID) VALUES 
2(1, '1984', 2),
3(2, 'The Great Gatsby', 3),
4(3, 'Moby Dick', 4);

این جدول‌ها صحنه عملیات را برای بررسی دقیق دستور inner join در SQL فراهم می‌کنند. با کمک ستون به اشتراک گذاشته شده AuthorID  می‌توان بین کتاب‌ها و نویسنده‌هایشان ارتباط برقرار کرد.

با کمک این پیش‌نیازها و مجموعه داده‌ آزمایشی ساخته شده، اکنون می‌توان به‌طور دقیق به بررسی دستور inner join در SQL با تمام ریزه‌کاری‌هایش پرداخت.

مفاهیم اصلی دستور inner join در SQL

دستور INNER JOIN به صورت ذاتی مانند یک رهبر ارکست عمل می‌کند. این دستور، سمفونی واکشی داده‌ها را با اداغام ردیف‌هایی از دو جدول بر پایه ستون مشترک بینشان رهبری می‌کند.

محل اشتراک دو دایره علامت زده شده است. - دستور inner join در sql
«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید»

مفهوم دستور INNER JOIN را مانند نمودار هم‌پوشانی بالا در نظر بگیرید. در نمودار بالا بخشی از دایره‌ها که دچار هم‌پوشانی شده یا محل اشتراک دایره‌ها به وضوح محل پیوند مقادیر درون دو دایره را به تصویر می‌کشد. این بخش رکورد‌های مشترک بین دو موجودیت مختلف را نمایش می‌دهد.

در این ادغام هماهنگ، ستون‌ها یا کلید‌های مشترک به عنوان راهنما عمل می‌کنند. این راهنماها توازن بین داده‌ها را برقرار و تضمین می‌کنند که فقط داده‌های مرتبط با هم و در این محدوده اشتراکی نمایش داده می‌شوند.

چگونه در کار با SQL Server حرفه ای شویم؟

برای کار با SQL Server باید دوره‌های مربوط به این پایگاه داده محبوب و پرطرفدار را بگذرانید. این دوره‌ها تمام مراحل کار با SQL Server را آموزش می‌دهند و شما را برای ورود به بازار کار آماده می‌کنند. یکی از بهترین موسساتی که دوره‌های بسیار مناسبی را برای کار با این پایگاه داده ایجاد کرده وب‌سایت آموزشی فرادرس است. در این وب‌سایت فیلم‌های مختلفی برای آموزش SQL Server در سطوح مختلف تولید شده که با توجه به سطح علمی خودتان می‌توانید گزینه مناسب را انتخاب کنید. از مزایای فیلم‌های آموزشی فرادرس می‌توان به کیفیت بالای علمی، هزینه مقرون به‌صرفه و عدم وجود محدودیت زمانی برای یادگیری توسط فیلم‌های فرادرس اشاره کرد.

مجموعه آموزشی SQL Server

در ادامه چند مورد از این فیلم‌های آموزشی را برای مخاطبان محترم فهرست کرده‌ایم.

نوشتن کوئری دستور inner join در SQL

فهم زبان SQL نیازمند ترکیبی از درک جنبه‌های نظری این زبان کار با داده‌ها و دست بردن در کاربرد‌های عملی آن است. یکی از عناصر زیربنایی SQL کوئری‌های شامل دستور INNER JOIN هستند. در ادامه این مطلب سعی می‌کنیم که بر ساختار این دستور مسلط شویم و روش کار آن را در شرایط گوناگون مشاهده کنیم.

ساختار پایه دستور inner join در SQL

در پایه‌ای‌ترین شکل سینتکس این دستور، ساختار دستور INNER JOIN به شکل نمایش داده شده در زیر نوشته می‌شود.

1SELECT column1, column2, ...
2FROM table1
3INNER JOIN table2
4ON table1.column = table2.column;

در کد بالا آرگومان‌هایی می‌بینیم که در ادامه هر کدام را به صورت مجزا توضیح داده‌ایم.

  • table1  و table2  نام جدول‌هایی هستند که تلاش می‌کنیم به یکدیگر متصلشان کنیم.
  • بند ON  در این کوئری رابطه بین جدول‌ها را تعریف می‌کند. در واقع می‌گوید که کدام ستون‌ها قابل سازگار شدن باهم هستند.
  • column1  و column2  و غیره نام ستون‌هایی هستند که می‌خواهیم از جداول متصل به هم فراخوانی کنیم.

نمایش روش استفاده از دستور inner join در SQL

در این بخش مثالی از روش استفاده از این دستور را خواهیم دید. تصور کنید که دو جدول Authors و Books را داریم. جدول نویسندگان Authors شامل اطلاعاتی درباره مولفین کتاب‌ها است و جدول کتاب‌ها Books شامل جزئیات مختلف درباره کتاب‌های گوناگون از قبیل نویسنده‌های آن‌ها شده است.

«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید»

با استفاده از کوئری زیر این دو جدول را به هم متصل می‌کنیم تا فهرستی از کتاب‌ها با نویسنده مربوط به هر کدام بدست بیاوریم.

1SELECT Authors.AuthorName, Books.BookTitle
2FROM Authors
3INNER JOIN Books
4ON Authors.AuthorID = Books.AuthorID;

خروجی حاصل از کوئری بالا به صورت زیر به کاربر نمایش داده می‌شود.

«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید»

کوئری بالا فهرستی از تیتر کتاب‌ها BookTitle  را همراه با نام نویسنده هر کدام برمی‌گرداند. اما این کار را فقط برای کتاب‌ها و نویسنده‌هایی انجام می‌دهد که شماره AuthorID آن‌ها با یکدیگر منطبق هستند. راز پشت این ترکیب جداول در شماره شناسایی نویسنده AuthorID مشترک بین این دو جدول است.

همان‌طور که این مثال نمایش می‌دهد، دستور Inner Join در SQL ابزار قدرتمندی است. فاصله بین جداول را حذف می‌کند و نماهای داده‌ای منسجمی را از جداول به‌ظاهر متفاوت و جدا از هم ایجاد می‌کند. هم‌زمان با بررسی زبان SQL، متوجه می‌شویم که دستور INNER JOIN برای ساخت کوئری‌های پیچیده و چندوجهی، همراهی بسیار ضروری است.

بررسی تغییرات در دستور Inner Join در SQL

یکی از زیبایی‌های SQL انعطاف‌پذیری و سازگاری آن است. فراتر از ساختار پایه دستور INNER JOIN بین دو جدول متفاوت، SQL روش‌های بسیار گسترده‌ای را برای اصلاح و بهبود کارآیی و گسترش جزئیات عملیات ساده دستور INNER JOIN ارائه می‌دهد.

در ادامه مطلب بعضی از تکنیک‌های پیشرفته استفاده از دستور INNER JOIN را بررسی خواهیم کرد.

اتصال بیشتر از دو جدول

در سامانه‌های پایگاه داده پیچیده، اغلب اوقات داده‌ها بر روی چندین جدول مختلف پخش شده‌اند. البته که به همین دلیل هیچ محدودیت سفت‌وسختی برای اتصال فقط دو جدول به صورت همزمان موجود نیست. در صورت نیاز می‌توانیم سه، چهار یا حتی هر چند تعداد جدول دلخواه را به یکدیگر متصل کنیم. البته این اتفاق تا وقتی رخ می‌دهد که بین این جداول ستون‌های مرتبط با هم وجود داشته باشد.

داده‌ها در کنارهم یک درخت را رسم کرده اند

مثال: جدول‌های تعریف شده در پایین را در نظر بگیرید.

  1. Authors جدول نویسنده‌ها، شامل جزئیات مربوط به نویسنده‌های کتاب‌ها می‌شود.
  2. Books جدول کتاب‌ها شامل جزئیات مربوط به کتاب‌ها می‌شود. در ضمن این جدول ستونی هم برای ذخیره شماره شناسایی هر نویسنده به نام AuthorID دارد.
  3. Publishers  جدول ناشران شامل جزئیات مربوط به اطلاعات ناشران است. هر ناشر دارای یک شماره شناسایی است که در جدول کتاب‌ها Books نمایش داده می‌شود.

برای پیدا کردن نام هر نویسنده‌ به همراه نام کتاب‌های این نویسنده و انتشارات مربوط به این نویسنده، هر سه جدول را به یکدیگر متصل خواهیم کرد. در کد آمده پایین، روش این اتصال را به صورت کوئری پیاده‌سازی کرده‌ایم.

1SELECT Authors.AuthorName, Books.BookTitle, Publishers.PublisherName 
2FROM Authors 
3INNER JOIN Books ON Authors.AuthorID = Books.AuthorID 
4INNER JOIN Publishers ON Books.PublisherID = Publishers.PublisherID;

استفاده از عملگرهای مختلف همراه با دستور Inner Join در SQL

با اینکه حالت پایه و ساده دستور INNER JOIN ، اغلب از عملگر برابری =  برای اتصال ردیف‌ها بر اساس ستون مشترک جداول استفاده می‌کند، می‌توانیم به دلخواه خود از سایر عملگرها مانند <  و >  و <=  یا >=  بسته به کارکرد موردنیاز استفاده کنیم.

مثال: جدولی را به نام Salaries  تصور کنید که شامل مبلغ حقوق کارمندان می‌شود. به همین صورت جدولی را هم به نام Budgets  در نظر بگیرید. این جدول شامل محدودیت‌های بودجه‌ای بخش‌های مختلف سازمان است. جدولی هم به نام Employees  در نظر بگیرید. این جدول نام و شماره شناسایی و شماره دپارتمان محل خدمت هر کارمند را در خود ذخیره کرده است. تصویر هر سه جدول دلخواه و فرضی مورد اشاره را در پایین نمایش داده‌ایم.

«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید»

الان اگر بخواهیم همه کارمندانی را پیدا کنیم که میزان حقوقشان از حد بودجه دپارتمان آن‌ها در سازمان بیشتر می‌شود می‌توانیم از کوئری زیر استفاده کنیم.

1```
2SELECT Employees.EmployeeName, Salaries.Amount, Budgets.BudgetLimit 
3FROM Salaries 
4INNER JOIN Employees ON Salaries.EmployeeID = Employees.EmployeeID
5INNER JOIN Budgets ON Employees.DepartmentID = Budgets.DepartmentID
6WHERE Salaries.Amount > Budgets.BudgetLimit;

در مثال بالا عملگر  >  در بند WHERE  از کوئری، رکورد‌هایی را از جدول‌ها استخراج می‌کند که در آن‌ها میزان حقوق کارمندان از بودجه بخش مربوط به آن‌ها در سازمان بیشتر است. شکل جدول حاوی داده‌های جواب برای کوئری بالا به صورت زیر است.

«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید»

در صورتی که حس می‌کنید باید درباره بند WHERE و عبارت SELECT در کوئری‌های SQL اطلاعات بیشتری بدست بیاورید می‌توانید از مطلب عبارت‌ های SELECT و WHERE در زبان SQL از مجله فرادرس، اطلاعات جامعی را به‌ صورت خلاصه و مفید استخراج کنید.

این گوناگونی فقط بخش کوچکی از قدرت و توانایی چندکاره بودنی را نشان می‌دهد که دستور Inner Join در SQL ارائه می‌دهد. درک این ظرایف و تکنیک‌ها کلید اصلی و بخش ضروری ساخت کوئری‌های کارآمد و دقیق، حتی در پیچیده‌ترین پایگاه‌های داده است.

کاربرد‌های عملی دستور INNER JOIN

درک سینتکس و مکانیک دستور Inner Join در SQL فقط قسمتی از این معادله است. فهمیدن اینکه چگونه و کجا می‌توان از این عبارت دستوری در سناریو‌های پروژه‌های واقعی استفاده کرد نیز به همان اندازه مهم است. به وسیله ارزیابی کاربردهای عملی این دستور SQL، می‌توانیم اهمیت و فایده INNER JOIN را در صنایع و موارد کاربرد مختلف بهتر درک کنیم.

خانم عینکی در حال کار با کامپیوتر است - دستور inner join در sql

کاربردهای حیاتی دستور INNER JOIN در SQL

«پلتفرم‌های تجارت الکترونیک» (E-Commerce Platforms): صنایع فروشگاه‌های آنلاین اغلب از دستور INNER JOIN برای ترکیب اطلاعات محصول با وضعیت کالاهای درون انبار استفاده می‌کنند. این ترکیب تضمین می‌کند که مشتریان کالاهایی را ببیند که هم مربوط به نیاز آن‌هاست و هم در انبار موجود است.

بانکداری و سیستم‌های مالی: بانک‌ها می‌توانند جداول جداگانه‌ای برای صاحبان حساب و نقل و انتقالات حساب‌ها داشته باشند. به همین ترتیب بانک‌ها با استفاده از دستور INNER JOIN می‌توانند این جداول را باهم ترکیب کنند. آن‌ها با کمک ترکیب این جداول می‌توانند صورت کاملی از نقل و انتقالات مربوط به حساب خاصی را به مشتری‌ها نمایش دهند.

بهداشت و درمان: بیمارستان‌ها می‌توانند برای اطمینان از اینکه تاریخچه‌های پزشکی بیماران در زمان قرار‌های معاینات به سرعت در دسترس کادر درمان قرار بگیرند، با استفاده از دستورات INNER JOIN سوابق بیماران را به جدول تاریخ مراجعات بیمارها متصل کنند.

«پلتفرم‌های رسانه‌های اجتماعی» (Social Media Platforms): پلتفرم‌هایی مانند Facebook یا X شاید از دستور INNER JOIN برای ترکیب پروفایل کاربران با پست‌ها یا توییت‌های مربوط به آن‌ها استفاده کنند. با این کار می‌توان تضمین کرد که محتوای درست به کاربران درست نمایش داده می‌شود.

« زنجیره تامین و لجستیک» (Supply Chain and Logistics): شرکت‌ها می‌توانند جزئیات مربوط به کالاهای حمل شده با کشتی را با اطلاعات مربوط به محصولات ترکیب کنند. با این کار می‌توان رد محصولات را در زنجیره‌های تامین پیدا کرد. در واقع می‌توانند کالاهای تولید شده را از محل تولید -زراعتی، صنعتی یا تکنولوژیکی- تا مصرف کننده، در هرجای جهان که باشد، را ردیابی و مسیر‌های طی شده برای هر کالا را ثبت و ضبط و تجزیه و تحلیل کنند.

اپلیکیشن ها و شرکت های تجاری که از دستور INNER JOIN در SQL استفاده می‌کنند

این دستور یکی از دستورات کلیدی و حیاتی در پایگاه‌های داده است. استفاده از دستور INNER JOIN برای همه صنایع به‌خصوص صنایع داده‌محور ضروری است. تعدادی از اپلیکیشن‌ها و صنایع تکنولوژیکی که بقای آن‌ها بر پایه داده‌های آن‌ها است و از این دستور استفاده می‌کنند را در ادامه فهرست کرده‌ایم.

  • Amazon: غول تجارت الکترونیکی آمازون با مجموعه وسیعی از محصولات و حتی پایگاه‌های مشتری گسترده‌تر، از دستور INNER JOIN برای انطباق فهرست محصولات با جزئیات فروشنده‌ها استفاده می‌کند. این کار باعث می‌شود که وقتی در این سایت برای پیداکردن محصول خاصی به گشتن می‌پردازید، درباره فروشنده‌های آن محصول نیز اطلاعاتی مانند رتبه فروشنده، رضایت مشتریان و سایر معیارهای مفید را بدست بیاورید.
  • J.P. Morgan: موسسه و بانک J.P. Morgan به عنوان یکی از موسسات مالی پیشرو جهان از دستور INNER JOIN برای مرتبط کردن حساب‌های کاربران با پرتفوی‌های سرمایه‌گذاری آن‌ها استفاده می‌کند. این ادغام داده‌ها، نمای جامعی را از چشم‌انداز سرمایه‌گذاری مشتری ارائه می‌دهد.
  • Mayo Clinic: شرکت Mayo Clinic به عنوان شرکتی نامدار در صنعت بهداشت و درمان از دستور INNER JOIN برای یکپارچه کردن پروفایل‌های بیماران با سوابق درمانی آن‌ها استفاده می‌کند. این کار باعث می‌شود که پزشکان و فعالان عرصه درمان، نمای جامعی از وضعیت سلامتی بیماران و تاریخچه درمانی آن‌ها در دسترس داشته باشند.
راهرویی که در دو طرف آن سرورهای بزرگ ذخیره داده قرار دارند
  • LinkedIn: این شبکه اجتماعی تخصصی از عملیات INNER JOIN برای منطبق کردن پروفایل کاربران با فرصت‌های شغلی باز شده استفاده می‌کند. با این کار توصیه‌های شغلی مرتبط با مهارت‌ها، تجربیات و شبکه‌ مورد نظر کاربر به او نمایش داده می‌شود.
  • DHL: شرکت عظیم DHL، به عنوان یکی از رهبران حمل‌ونقل جهانی از دستور INNER JOIN برای برقرار کردن ارتباط بین محموله‌های کشتی با جزییات مسیر استفاده می‌کند. این کار باعث رد‌یابی لحظه‌به‌لحظه همه کالاها در سراسر جهان و تضمین تحویل به موقع محموله‌ها می‌شود.

بهترین شیوه های استفاده از دستور INNER JOIN در SQL

عملیات مربوط به پایگاه‌های داده جزئی حیاتی در بسیاری از برنامه‌های کامپیوتری هستند. در اغلب اوقات کیفیت کارایی این عملیات است که میزان کارآمدی و پاسخ‌گویی اپلیکیشن طراحی شده را تعیین می‌کند. در زمان کار با دستور INNER JOIN در SQL نکات کلیدی هستند که برای رسیدن به بهترین شیوه‌های استفاده از این دستور باید در ذهن داشته باشیم. رعایت این نکات تضمین می‌کند که کوئری‌های طراحی شده بسیار نرم و سریع داده‌های دقیق و بدون اشتباهی را استخراج کنند.

کارآمد نوشتن کوئری های INNER JOIN برای بهینه سازی عملکرد

برای اینکه بتوانیم کوئری‌های INNER JOIN را در کارآمدترین حالت ممکن بنویسیم تا عملکرد کوئری را به حالت بهینه‌ برسانیم رعایت نکات زیر الزامی است.

  • نتایج کوئری را محدود کنیم: از بند WHERE  در کوئری به صورت موثری استفاده کنیم تا نتایج نتهایی را از داده‌های غیر ضروری پالایش کنیم. فقط باید داده‌های سطرها و ستون‌های ضروری را واکشی کنیم.
  • از ایندکس‌ها استفاده کنیم: استفاده از ایندکس‌ها به شدت سرعت واکشی داده‌ها را افزایش می‌دهد. باید مطمئن شویم که ستون‌هایی که قرار است متصل شوند از قبل ایندکس‌گذاری شده باشند. مخصوصا اگر این ستون‌ها درون جدول‌های بزرگ قرار داشته باشند.
  • بر روی دستور خود تمرکز کنید: در هنگام متصل کردن چندین جدول مختلف به یکدیگر، پایگاه داده تلاش می‌کند برای پیداکردن کارآمدترین روش دستورات Join را بازیابی کند. اما هنوز اتصال جداول کوچکتر به جداول بزرگ‌تر به‌طور کلی عملکرد کارآمدتری را نسبت به شکل برعکس این اتصال -اتصال جداول بزرگ‌ به جدول‌های کوچک- ارائه می‌دهد.

چه زمانی از دستور Inner Join استفاده کنیم؟

زمان استفاده از این دستور و قدرت تشخیص این زمان هم بر کیفیت کوئری‌هایی که می‌نویسیم اثر زیادی دارد. به علاوه همانطور که زمان استفاده از دستور INNER JOIN اهمیت دارد، باید زمان غیر ضروری برای استفاده از این دستور را هم بدانیم.

  • از دستور INNER JOIN زمانی استفاده می‌کنیم که باید ردیف‌هایی از دو یا چند جدول مختلف بر اساس ستون داده‌های مرتبط به‌هم را با یکدیگر انطباق دهیم. استفاده از دستور INNER JOIN فقط زمانی گزینه مناسبی است که نتایجی را بخواهیم که با مقادیر موجود در هردو جدول سازگار است.
یک خانم مهندس در حال کار در شرکت کامپیوتری است
  • اما هنگامی که می‌خواهیم فقط ردیف‌های درون یک جدول را واکشی کنیم -با توجه به اینکه این ردیف‌ها ممکن است ردیف‌های متناظری در جدول دیگری داشته یا نداشته باشند- در چنین مواردی باید استفاده از دستور‌های LEFT JOIN  یا RIGHT JOIN  را در نظر داشته باشیم.

درک خطرهای احتمالی در زمان کار با دستور INNER JOIN

در زمان کار با دستور INNER JOIN بعضی اتفاقات نامطلوب ممکن است رخ دهند. به‌طور کل هر دستوری که در کامپیوتر اجرا می‌کنیم باید نسبت به جوانب دستور و توانایی‌ها و عملکرد واقعی آن واقف باشیم. دستور INNER JOIN هم از این قضیه استثنا نشده است. در ادامه دو مورد اشتباه و خطای عمده در زمان استفاده از این دستور را بررسی کرده‌ایم.

  • ردیف‌های از دست رفته: رایج‌ترین مشکل مربوط به استفاده از دستور INNER JOIN ، از دست دادن ناخواسته ردیف‌های داده است. اگر برای ردیف خاصی در یکی از جدول‌ها هیچ مورد متناظری وجود نداشت که با هم منطبق شوند، آن ردیف در مجموعه نتایج کوئری ظاهر نخواهد شد.
  • بیش از حد پیچیده‌کردن کوئری‌ها: اتصال تعداد بسیار زیادی جدول به یکدیگر می‌تواند عبارت SQL نوشته شده را بیش از حد پیچیده کند. این کار ممکن است باعث بروز مشکلات مربوط به بهره‌وری شود و امکان نگهداری و خوانایی کد‌ها را به شدت کاهش دهد.

نکاتی برای برطرف کردن یا اجتناب از مشکلات

برای اینکه بتوانیم از مشکلات احتمالی در هنگام کار با دستور INNER JOIN در SQL دوری کنیم یا در صورت بروز این مشکلات بتوان آن‌ها را برطرف کرد، چند توصیه کلی مطرح شده است. این توصیه‌ها را در ادامه فهرست کرده‌ایم.

  • خودمان به صورت مستقیم وجود ناهماهنگی‌های احتمالی را بررسی کنیم: قبل از اجرای یکی از دستورات INNER JOIN می‌توانیم کوئری جداگانه‌ای را اجرا کنیم که وجود ناهمخوانی‌های بین داده‌ها یا داده‌های یتیم را بررسی کند. این کار می‌تواند درکی از داده‌هایی در معرض گم شدن برایمان ایجاد کند.
  • روابط بین جدول‌ها باید شفاف باشند: درک صحیح روابط بین جدول‌ها حیاتی است. مطمئن شوید که ستون‌های صحیحی را به یکدیگر متصل می‌کنید و این ستون‌ها داده‌های ثابتی دارند.
  • سادگی را انتخاب کنید: اگر کوئری که نوشتیم ظاهر بسیار پیچیده‌ای دارد یا با سرعت بسیار کمی در حال اجرا شدن است،باید یک قدم به عقب برداریم. سپس در نظر بگیریم که آیا راه ساده‌تری برای استخراج داده‌های مورد نظرمان وجود دارد یا نه. گاهی اوقات شکستن کوئری پیچیده به چندین کوئری کوچک و ساده‌تر می‌تواند کارآمدی و قابلیت نگهداری کد‌ها را به میزان زیاد ارتقا بدهد.
  • به‌ صورت منظم باید کدها را بازبینی و اصلاح کنیم: مانند همه کدها بازبینی و اصلاح عبارت‌های SQL نیز هر از گاهی لازم است. همان‌طور که ساختارهای داده و نیازمندی‌های اپلیکیشن در طول زمان تغییر و توسعه پیدا می‌کنند این کار باعث می‌شود که کدهایمان نیز در طول زمان به‌ صورت بهینه‌ای به‌روز شوند.
تحلیل گر داده در حال کار پشت کامپیوتر است

به یاد داشته باشید که دستور INNER JOIN یکی از ابزار قدرتمند در مجموعه ابزار SQL است. اما همانند همه ابزار‌ها اثربخشی این عبارت نیز بسته به نحوه استفاده از آن است. دنباله روی از بهترین شیوه‌های رسیدگی به کوئری‌های دستور INNER JOIN در SQL تضمین می‌کند که کوئری‌های نوشته شده همیشه کارآمد و دقیق عمل کنند.

کار با سایر پایگاه های داده SQL

برای اینکه بتوانیم با سایر پایگاه‌های داده‌ی رابطه‌ای که با زبان SQL کار می‌کنند آشنا شویم و حتی روش کار با آن‌ها را یاد بگیریم، می‌توان منابع خوبی در فرادرس پیدا کرد. آشنایی با اصول SQL مقدمه‌ای برای آشنایی با پایگاه‌های داده بر مبنای SQL است. این پایگاه‌های داده انواع گوناگونی دارند که هر کدام در رابطه با نوع خاصی از زبان‌های برنامه‌نویسی یا با توجه به نوع خاصی از پروژه‌ها یا سخت‌افزار در دسترس برتری‌های منحصر به خود را دارند. فرادرس برای شما مخاطبان عزیز فیلم‌های آموزشی تخصصی متناسب با انواع پایگاه‌های داده تهیه کرده که هر کدام به تنهایی برای آماده‌سازی کاربر تا ورود به بازار کار کافی است.

مجموعه آموزشی پایگاه داده از مقدماتی تا پیشرفته
برای دسترسی به مجموعه فیلم های آموزش پایگاه داده فرادرس، روی تصویر کلیک کنید.

در این بخش چند مورد از این فیلم‌های آموزشی را فهرست کرده‌ایم که بعضی از پایگاه‌های داده مختلف را پوشش می‌دهند. برای دیدن فیلم‌ها آموزشی بیشتر می‌توانید بر روی تصویر بالا کلیک کنید و وارد صفحه مربوط به مجموعه آموزش پایگاه داده فرادرس شوید.

جمع بندی

در دنیای وسیع SQL، عبارت INNER JOIN به عنوان ستون اصلی اتصال جداول جدا از هم و آشکارساز اشتراک‌های معنادار بین داده‌ها شناخته می‌شود. در طول این مطلب از مجله فرادرس، نه تنها روش کار این عبارت را تشریح کردیم بلکه حتی به کاربرد‌های ارزشمند آن در بخش‌های مختلف نیز پرداختیم. از پلتفرم‌های تجارت الکترونیک گرفته تا شرکت‌های عظیم مالی جهانی، کاربرد‌های عبارت INNER JOIN به‌طور کلی تایید شده و مورد استفاده است.

ولی همان‌طور که می‌بینید تسلط به عبارت‌های SQL فقط از درک مفاهیم ناشی نمی‌شود، بلکه به برنامه‌ریزی برای تمرین و کار به صورت کارآمد و آگاهانه نیز مرتبط است. ابزار‌هایی مانند DbVisualizer با فراهم کردن رابط بی‌عیب و نقصی برای تمرین، بازسازی و پیاده‌سازی عملیات SQL فرایند یادگیری را تقویت می‌کنند. توصیه می‌کنیم از همه مزایای این چنین پلتفرم‌هایی برای تمرین و تقویت درکتان از دستور INNER JOIN در SQL استفاده کنید. هر چه قدر که در این مسیر به پیش می‌روید به یاد داشته باشید که در دنیای پایگاه‌های داده، هر عملیات join، هر کوئری و هر جدولی قسمتی از یک پازل بزرگتر را تشکیل می‌دهد. با داشتن ابزار و دانش صحیح مسیر خود را برای استاد شدن در SQL به راحتی طی خواهید کرد.

بر اساس رای ۰ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
dbvisMicrosoft
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *