دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
ایجاد و حذف View در پایگاه داده SQL
1403/12/21 -
view در پایگاه داده SQL
1403/12/20 -
پیاده سازی Synchronization در سی شارپ
1403/12/20 -
Fragmentation در پایگاه داده SQL
1403/12/19 -
Delegate در سی شارپ
1403/12/19
عملگر EXCEPT در پایگاه داده SQL

عملگر except در پایگاه داده SQL
عملگر EXCEPT در SQL یکی از ابزارهای مهم برای انجام عملیات بر روی مجموعهها (sets) است.
این عملگر به شما این امکان را میدهد که نتایج دو پرس و جو (query) را مقایسه کنید و فقط رکوردهایی را که در نتیجه اول وجود دارند اما در نتیجه دوم نیستند، برگردانید.
به عبارت دیگر، EXCEPT مشابه عملگر MINUS در برخی از سیستمهای پایگاه داده است.
عملگر EXCEPT به شما اجازه میدهد تا تفاوت بین دو مجموعه داده را به دست آورید.
این عملگر معمولاً در مواردی استفاده میشود که بخواهید دادههایی را که در یک جدول وجود دارند اما در جدول دیگر نیستند، شناسایی کنید.
ساختار کلی عملگر except در SQL
ساختار کلی استفاده از EXCEPT به شکل زیر است:
SELECT column1, column2, ...
FROM table1
WHERE condition
EXCEPT
SELECT column1, column2, ...
FROM table2
WHERE condition;
توضیحات:
- SELECT: در هر دو بخش، باید ستونها را انتخاب کنید. تعداد و نوع ستونها باید در هر دو پرس و جو یکسان باشد.
- FROM: نام جدول یا جداولی که دادهها از آنها استخراج میشوند.
- WHERE: شرایطی که باید برای فیلتر کردن رکوردها رعایت شوند.
- EXCEPT: عملگری که نتایج پرس و جوی اول را با نتایج پرس و جوی دوم مقایسه میکند و فقط رکوردهایی را برمیگرداند که در پرس و جوی اول وجود دارند و در دوم نیستند.
مثال:
SELECT EmployeeID
FROM Employees
EXCEPT
SELECT ContractorID
FROM Contractors;
در این مثال، EXCEPT رکوردهای EmployeeID را از جدول Employees برمیگرداند که در جدول Contractors وجود ندارند.
مزایای عملگر except در SQL
-
سادگی
استفاده از EXCEPT برای مقایسه دو مجموعه داده بسیار ساده و واضح است. -
خوانایی
کد SQL با استفاده از EXCEPT خواناتر میشود و مفهوم آن به راحتی قابل درک است. -
عملکرد
در بسیاری از موارد، EXCEPT میتواند بهینهتر از نوشتن کدهای پیچیده برای مقایسه دو مجموعه باشد.

نکات مهم درباره EXCEPT
-
تعداد ستونها
تعداد ستونها در هر دو پرس و جو باید یکسان باشد و نوع دادههای مربوط به هر ستون نیز باید سازگار باشد. -
ترتیب ستونها
ترتیب ستونها در هر دو پرس و جو نیز باید یکسان باشد. -
حذف تکراریها
به طور پیشفرض، EXCEPT نتایج تکراری را حذف میکند.
اگر بخواهید نتایج تکراری را نیز مشاهده کنید، باید از EXCEPT ALL (در برخی از پایگاههای داده) استفاده کنید.
مثالهای عملی از عملگر except
-
مثال ساده
فرض کنید دو جدول داریم: Employees و Contractors.
ما میخواهیم لیست کارمندانی را که به عنوان پیمانکار نیز ثبت نشدهاند، پیدا کنیم.
SELECT EmployeeID, EmployeeName
FROM Employees
EXCEPT
SELECT ContractorID, ContractorName
FROM Contractors;
در این مثال، ما تمام کارمندان را از جدول Employees انتخاب میکنیم و سپس رکوردهایی را که در جدول Contractors وجود دارند، از آنها حذف میکنیم.
-
مثال با شرایط
فرض کنید که ما فقط کارمندانی را میخواهیم که در یک بخش خاص کار میکنند، مثلاً بخش فروش.
SELECT EmployeeID, EmployeeName
FROM Employees
WHERE Department = 'Sales'
EXCEPT
SELECT ContractorID, ContractorName
FROM Contractors
WHERE Department = 'Sales';
در اینجا، ما فقط کارمندانی را که در بخش فروش هستند و در عین حال پیمانکار نیستند، پیدا میکنیم.
معایب عملگر except در SQL
-
محدودیت در پایگاههای داده
نه همه پایگاههای داده از EXCEPT پشتیبانی میکنند.
به عنوان مثال، MySQL از EXCEPT پشتیبانی نمیکند و باید از روشهای دیگری مانند LEFT JOIN و WHERE IS NULL استفاده کرد. -
عملکرد در دادههای بزرگ
در برخی موارد، استفاده از EXCEPT میتواند منجر به کاهش عملکرد در دادههای بزرگ شود، زیرا نیاز به پردازش دو مجموعه داده دارد.
مقایسه با دیگر عملگرها
-
UNION و INTERSECT
عملگر EXCEPT با عملگرهای دیگر مانند UNION و INTERSECT مقایسه میشود:-
UNION
این عملگر تمام رکوردها را از دو پرس و جو ترکیب میکند و رکوردهای تکراری را حذف میکند. -
INTERSECT
این عملگر فقط رکوردهایی را که در هر دو پرس و جو وجود دارند، برمیگرداند. -
EXCEPT
فقط رکوردهایی را که در پرس و جوی اول وجود دارند و در پرس و جوی دوم نیستند، برمیگرداند.
-
🌟 آیا میخواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟
با دوره آموزشی SQL Server ما، شما میتوانید به راحتی و با روشی عملی، تمام مهارتهای لازم را یاد بگیرید!
این دوره به شما آموزش میدهد که چگونه دادهها را به بهترین شکل مدیریت کنید، گزارشهای قدرتمند بسازید و به تحلیلهای عمیق دست یابید.
با محتوای جذاب و پروژههای واقعی، شما نه تنها تئوری را یاد میگیرید، بلکه تواناییهای عملی خود را نیز تقویت میکنید.
پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشنتر بردارید!
همین حالا شروع کنید و به دنیای دادهها بپیوندید!
مثالهای پیشرفتهتر
-
استفاده از EXCEPT با توابع تجمیعی
شما میتوانید از EXCEPT در کنار توابع تجمیعی نیز استفاده کنید. به عنوان مثال:
SELECT Department, COUNT(*) AS EmployeeCount
FROM Employees
GROUP BY Department
EXCEPT
SELECT Department, COUNT(*) AS ContractorCount
FROM Contractors
GROUP BY Department;
در این مثال، ما تعداد کارمندان را برای هر بخش محاسبه میکنیم و سپس بخشهایی را که پیمانکار ندارند، شناسایی میکنیم.
-
استفاده از EXCEPT در زیرپرس و جوها
شما میتوانید از EXCEPT در زیرپرس و جوها نیز استفاده کنید:
SELECT EmployeeID
FROM Employees
WHERE Salary > 50000
EXCEPT
SELECT ContractorID
FROM Contractors
WHERE Salary > 50000;
این کد، کارمندانی را که حقوق بالای 50000 دارند و در عین حال پیمانکار نیستند، برمیگرداند.
دوره های مرتبط

آموزش Html , Css , JavaScript , Jquery
دوره فرانت اند یکی از اساسی ترین دوره های برای شروع طراحی وب سایت به شمار میرود.