دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
Class Library در سی شارپ
1404/01/10 -
دستور BREAK در پایگاه داده sql
1404/01/02 -
دستور CONTINUE در پایگاه داده SQL
1404/01/01 -
دستور WAITFOR در پایگاه داده SQL
1403/12/26 -
دستور GOTO در پایگاه داده SQL
1403/12/25 -
حلقه WHILE در پایگاه داده SQL
1403/12/24
عملگر INTERSECT در SQL

عملگر INTERSECT در SQL
در پایگاه داده SQL، عملگر INTERSECT برای یافتن اشتراک دادهها بین دو مجموعه استفاده میشود.
این عملگر فقط سطرهای مشترک بین دو نتیجه SELECT را برمیگرداند، به شرطی که تعداد و نوع دادههای ستونها در هر دو SELECT یکسان باشد.
برخلاف JOIN که میتواند سطرهای مرتبط را نمایش دهد، INTERSECT فقط رکوردهای کاملاً یکسان را بدون تکرار بازمیگرداند.
این عملگر بیشتر در تحلیل دادهها و یافتن موارد مشترک بین جداول به کار میرود.
مثلاً در یک سیستم فروش، اگر بخواهیم مشتریانی را پیدا کنیم که هم در سال ۲۰۲۳ و هم در ۲۰۲۴ سفارش ثبت کردهاند، از INTERSECT استفاده میکنیم.
این روش باعث خوانایی بهتر کوئری شده و نیاز به استفاده از INNER JOIN پیچیده را کاهش میدهد.
نحو استفاده از INTERSECT
نحو (Syntax) استفاده از عملگر INTERSECT به صورت زیر است:
sqlCopyEditSELECT ستون_1, ستون_2, ...FROM جدول_1WHERE شرط_1INTERSECTSELECT ستون_1, ستون_2, ...FROM جدول_2WHERE شرط_2;
در اینجا:
-
ستونها و شروط در هر دو بخش از دستور SELECT باید مشابه باشند.
-
دادههای مشترک در بین نتایج هر دو پرسوجو به صورت یک مجموعه نمایش داده میشوند.
ویژگیهای عملگر INTERSECT
-
تنها دادههای مشترک
عملگر INTERSECT تنها ردیفهایی را نشان میدهد که در هر دو پرسوجو وجود دارند.
این برخلاف عملگر UNION است که تمام ردیفها را (حتی اگر تکراری باشند) نمایش میدهد. -
ترتیب ردیفها
عملگر INTERSECT ترتیب ردیفها را مانند UNION حفظ نمیکند. بنابراین، ترتیب نتایج ممکن است تغییر کند. -
عدم وجود تکرار
همانطور که در UNION، دادههای تکراری حذف میشوند، در INTERSECT نیز فقط یک نسخه از هر ردیف مشترک نمایش داده میشود.
مثالهایی از عملگر INTERSECT
-
یافتن مشتریان مشترک در دو جدول
فرض کنید دو جدول داریم:
-
-
مشتریان_A: شامل اطلاعات مشتریان که از فروشگاه A خرید کردهاند.
-
مشتریان_B: شامل اطلاعات مشتریان که از فروشگاه B خرید کردهاند.
-
برای پیدا کردن مشتریانی که هم از فروشگاه A و هم از فروشگاه B خرید کردهاند، میتوانیم از عملگر INTERSECT استفاده کنیم:
sqlCopyEditSELECT نام_مشتریFROM مشتریان_AINTERSECTSELECT نام_مشتریFROM مشتریان_B;
این پرسوجو تمامی نامهای مشتریانی که در هر دو جدول موجود هستند را برمیگرداند.
-
یافتن محصولات مشترک در دو دستهبندی
فرض کنید یک جدول به نام محصولات داریم که محصولات مختلفی را در دو دستهبندی مختلف ذخیره کرده است. حالا میخواهیم محصولات مشترک بین دو دستهبندی را پیدا کنیم.
sqlCopyEditSELECT نام_محصولFROM محصولاتWHERE دستهبندی = 'الکترونیک'INTERSECTSELECT نام_محصولFROM محصولاتWHERE دستهبندی = 'لوازم_خانگی';
در این مثال، تمام محصولاتی که هم در دستهبندی «الکترونیک» و هم در دستهبندی «لوازم خانگی» موجود هستند، به نمایش در میآیند.
تفاوت عملگر INTERSECT با دیگر عملگرها
-
INTERSECT vs UNION
-
UNION تمام نتایج را از دو پرسوجو ترکیب میکند، حتی اگر ردیفها تکراری باشند. در حالی که INTERSECT تنها ردیفهای مشترک را نشان میدهد.
-
در UNION، میتوانید دادههای تکراری را حذف کنید (با استفاده از UNION ALL برای گنجاندن تکرارها)، اما در INTERSECT تنها دادههای مشترک نمایش داده میشوند.
-
-
INTERSECT vs JOIN
-
JOIN برای ترکیب دادهها از دو یا چند جدول بر اساس یک شرط خاص استفاده میشود، در حالی که INTERSECT به سادگی دادههای مشترک را بین دو پرسوجو پیدا میکند.
-
در JOIN شما میتوانید دادهها را بر اساس فیلدهای خاصی متصل کنید، در حالی که در INTERSECT این اتصال به صورت خودکار انجام میشود و تنها دادههای مشابه را برمیگرداند.
-
🌟 آیا میخواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟
با دوره آموزشی SQL Server ما، شما میتوانید به راحتی و با روشی عملی، تمام مهارتهای لازم را یاد بگیرید!
این دوره به شما آموزش میدهد که چگونه دادهها را به بهترین شکل مدیریت کنید، گزارشهای قدرتمند بسازید و به تحلیلهای عمیق دست یابید.
با محتوای جذاب و پروژههای واقعی، شما نه تنها تئوری را یاد میگیرید، بلکه تواناییهای عملی خود را نیز تقویت میکنید.
پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشنتر بردارید!
همین حالا شروع کنید و به دنیای دادهها بپیوندید!
کاربردهای عملگر INTERSECT
-
تصفیه دادهها
زمانی که بخواهید دادههای مشترک بین دو مجموعه داده مختلف را پیدا کنید، استفاده از INTERSECT به شما کمک میکند تا تنها نتایج مشترک را استخراج کنید. -
تحلیل دادههای مشابه
در تحلیل دادههای چندگانه (مثلاً مشتریانی که در بیش از یک سیستم ثبتنام کردهاند)، INTERSECT میتواند به سرعت دادههای مشابه را شناسایی کند. -
بهینهسازی کوئریها
در مواقعی که نیاز به پیدا کردن دادههای مشترک بین جداول مختلف داشته باشید، استفاده از INTERSECT باعث میشود تا نتایج موردنظر به سرعت بازیابی شوند.
نکات مهم هنگام استفاده از INTERSECT
-
تعداد ستونها
تعداد ستونها و نوع دادهها باید در هر دو بخش از کوئری برابر باشد. در غیر این صورت، خطای SQL دریافت خواهید کرد. -
عملگرهای دیگر
عملگرهایی مانند UNION, EXCEPT و INTERSECT به طور معمول برای ترکیب یا مقایسه دادهها در SQL استفاده میشوند و هر یک کاربرد خاص خود را دارند. -
پشتیبانی توسط پایگاه دادهها
اکثر سیستمهای مدیریت پایگاه داده مانند MySQL, PostgreSQL, Oracle و SQL Server از INTERSECT پشتیبانی میکنند، اما بهتر است بررسی کنید که سیستم شما از این عملگر پشتیبانی میکند یا خیر.
مثال پروژه محور از عملگر INTERSECT در SQL
سناریو:
فرض کنید یک سیستم دانشگاهی داریم که اطلاعات دانشجویان ثبتنامشده در ترم پاییز و ترم بهار را در دو جدول جداگانه ذخیره میکند.
حال میخواهیم لیست دانشجویانی را پیدا کنیم که در هر دو ترم ثبتنام کردهاند.
ساختار جداول
CREATE TABLE FallSemester (
StudentID INT,
StudentName NVARCHAR(100)
);
CREATE TABLE SpringSemester (
StudentID INT,
StudentName NVARCHAR(100)
);
نمونه دادهها
INSERT INTO FallSemester VALUES (1, 'Ali Rezaei'), (2, 'Sara Ahmadi'), (3, 'Mehdi Hosseini');
INSERT INTO SpringSemester VALUES (2, 'Sara Ahmadi'), (3, 'Mehdi Hosseini'), (4, 'Nima Karimi');
اجرای INTERSECT برای یافتن دانشجویان مشترک
SELECT StudentID, StudentName FROM FallSemester
INTERSECT
SELECT StudentID, StudentName FROM SpringSemester;
نتیجه:
StudentID StudentName
2 Sara Ahmadi
3 Mehdi Hosseini
نتیجهگیری
این کوئری دانشجویانی را نمایش میدهد که هم در ترم پاییز و هم در ترم بهار ثبتنام کردهاند، یعنی Sara Ahmadi و Mehdi Hosseini.
دوره های مرتبط

آموزش پایگاه داده SqlServer
پایگاه داده Sqlserver یکی از پایگاه داده های مهم برای ذخیره اطلاعات محسوب میشود .