عملگر NOT IN در پایگاه  داده SQL

تیم تحریریه 1403/11/17 0 78
لینک کوتاه https://zoheirsoftware.com/z/1ddfab393 |
عملگر NOT IN در پایگاه  داده SQL, ساختار کلی عملگر NOT IN,مقایسه با دیگر عملگرهای IN و NOT EXISTS

عملگر NOT IN در پایگاه  داده SQL

عملگر NOT IN در SQL یکی از ابزارهای مهم برای فیلتر کردن داده‌ها است.

این عملگر به شما این امکان را می‌دهد که رکوردهایی را که در یک مجموعه خاص وجود ندارند، شناسایی کنید.

به عبارت دیگر، NOT IN به شما اجازه می‌دهد تا رکوردهایی را که در یک لیست یا زیرپرس و جو مشخص شده‌اند، حذف کنید.

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

عملگر NOT IN برای بررسی این که آیا یک مقدار در یک مجموعه خاص وجود ندارد، استفاده می‌شود.

این عملگر می‌تواند با لیست مقادیر ثابت یا با نتایج یک زیرپرس و جو (subquery) استفاده شود.

 

عملگر NOT IN در پایگاه داده SQL

 

 ساختار کلی عملگر NOT IN


ساختار کلی استفاده از NOT IN به شکل زیر است:

SELECT column1, column2, ...
FROM table_name
WHERE column_name NOT IN (value1, value2, ...);


همچنین می‌توانید از NOT IN با زیرپرس و جو نیز استفاده کنید:

SELECT column1, column2, ...
FROM table_name
WHERE column_name NOT IN (SELECT column_name FROM another_table WHERE condition);



 

🌟 آیا می‌خواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟

با دوره آموزشی SQL Server ما، شما می‌توانید به راحتی و با روشی عملی، تمام مهارت‌های لازم را یاد بگیرید!

این دوره به شما آموزش می‌دهد که چگونه داده‌ها را به بهترین شکل مدیریت کنید، گزارش‌های قدرتمند بسازید و به تحلیل‌های عمیق دست یابید.

با محتوای جذاب و پروژه‌های واقعی، شما نه تنها تئوری را یاد می‌گیرید، بلکه توانایی‌های عملی خود را نیز تقویت می‌کنید.

پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشن‌تر بردارید!

 همین حالا شروع کنید و به دنیای داده‌ها بپیوندید!

 

 

 

 

 

نکات مهم درباره NOT IN

  • مقدار NULL

    یکی از نکات مهم در استفاده از NOT IN این است که اگر مجموعه‌ای که بررسی می‌شود شامل یک مقدار NULL باشد، نتیجه پرس و جو به طور پیش‌فرض خالی خواهد بود.
    این به این دلیل است که در SQL، هر مقایسه‌ای که شامل NULL باشد، نتیجه‌اش UNKNOWN است.
  • عملکرد

    در مقایسه با NOT EXISTS، NOT IN ممکن است در برخی موارد عملکرد کمتری داشته باشد، به ویژه زمانی که مجموعه‌ای که بررسی می‌شود بزرگ باشد.
  • نوع داده‌ها

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

مزایای عملگر NOT IN

مزایای عملگر NOT IN در SQL عبارتند از:

  • سادگی و خوانایی 

    استفاده از NOT IN می‌تواند کد SQL را ساده‌تر و خواناتر کند، به ویژه در مقایسه با استفاده از LEFT JOIN و بررسی NULL.
  • عملکرد مناسب

    در برخی از پایگاه‌های داده، NOT IN می‌تواند عملکرد بهتری نسبت به روش‌های دیگر مانند NOT EXISTS داشته باشد، به ویژه زمانی که مجموعه داده‌ها کوچک باشد.
  • اجتناب از نتایج تکراری

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

    می‌توان از NOT IN در شرایط پیچیده و ترکیبی با دیگر عبارات WHERE استفاده کرد.
  • سازگاری با انواع داده‌ها

    NOT IN می‌تواند با انواع داده‌های مختلف، از جمله رشته‌ها و اعداد، به راحتی کار کند.

این مزایا باعث می‌شود که NOT IN در برخی شرایط یک گزینه مناسب برای فیلتر کردن داده‌ها باشد.

 

مزایای عملگر NOT IN

 

مثال‌های عملی  از عملگر NOT IN

  •  مثال ساده

    فرض کنید یک جدول به نام Employees داریم و می‌خواهیم کارمندانی را که در یک لیست خاص از شناسه‌های کارمندان نیستند، پیدا کنیم.

 

SELECT EmployeeID, EmployeeName
FROM Employees
WHERE EmployeeID NOT IN (1, 2, 3);


در این مثال، رکوردهایی که شناسه‌های 1، 2 و 3 را دارند، از نتایج حذف می‌شوند.

 

 

 استفاده از NOT IN با زیر پرس و جو

حالا فرض کنید که می‌خواهیم کارمندانی را پیدا کنیم که در هیچ پروژه‌ای ثبت نشده‌اند.

فرض کنید جدولی به نام Projects داریم که شناسه کارمندان را ذخیره می‌کند.

 

SELECT EmployeeID, EmployeeName
FROM Employees
WHERE EmployeeID NOT IN (SELECT EmployeeID FROM Projects);


در اینجا، ما کارمندانی را پیدا می‌کنیم که در جدول Projects وجود ندارند.

 

 

 

 

 

معایب  عملگر NOT IN

  • محدودیت با NULL

    اگر مجموعه‌ای که در آن بررسی می‌شود شامل NULL باشد، نتایج ممکن است خالی باشد، که این می‌تواند منجر به سردرگمی شود.
  • عملکرد در داده‌های بزرگ

    در برخی موارد، استفاده از NOT IN می‌تواند منجر به کاهش عملکرد در داده‌های بزرگ شود، زیرا نیاز به پردازش دو مجموعه داده دارد.
  • جایگزینی با NOT EXISTS

    در برخی از موارد، استفاده از NOT EXISTS می‌تواند عملکرد بهتری نسبت به NOT IN داشته باشد.

 

 

 

معایب عملگر NOT IN

 

مقایسه با دیگر عملگرهای IN و NOT EXISTS

عملگر NOT IN با عملگرهای دیگر مانند IN و NOT EXISTS مقایسه می‌شود:

  • IN

    این عملگر برای بررسی وجود یک مقدار در یک مجموعه خاص استفاده می‌شود.
    به عنوان مثال، column_name IN (value1, value2, ...) رکوردهایی را که در مجموعه وجود دارند، برمی‌گرداند.
  • NOT EXISTS

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

SELECT column1, column2
FROM table_name t
WHERE NOT EXISTS (SELECT 1 FROM another_table a WHERE a.column_name = t.column_name);


این کد رکوردهایی را برمی‌گرداند که در زیرپرس و جو وجود ندارند.

 

 

مثال‌های پیشرفته‌تر

استفاده از NOT IN با توابع تجمیعی
شما می‌توانید از NOT IN در کنار توابع تجمیعی نیز استفاده کنید. به عنوان مثال:

SELECT Department, COUNT(*) AS EmployeeCount
FROM Employees
GROUP BY Department
HAVING Department NOT IN ('HR', 'Sales');


در این مثال، ما تعداد کارمندان را برای هر بخش محاسبه می‌کنیم و سپس بخش‌هایی که در لیست خاصی قرار دارند را حذف می‌کنیم.

 

 

جایگزین‌های NOT IN

اگر شما از پایگاه داده‌ای استفاده می‌کنید که از NOT IN پشتیبانی نمی‌کند، می‌توانید از روش‌های دیگری مانند LEFT JOIN و WHERE IS NULL استفاده کنید.

به عنوان مثال:

SELECT e.EmployeeID, e.EmployeeName
FROM Employees e
LEFT JOIN Projects p ON e.EmployeeID = p.EmployeeID
WHERE p.EmployeeID IS NULL;


این کد معادل NOT IN است و کارمندانی را که در جدول پروژه‌ها وجود ندارند، برمی‌گرداند.

 

مثال‌های کاربردی از عملگر NOT IN

  • مثال در سیستم‌های مالی

    در یک سیستم مالی، فرض کنید که می‌خواهید تمام تراکنش‌هایی را که در یک لیست خاص از حساب‌ها ثبت نشده‌اند، پیدا کنید:

 

 

SELECT TransactionID, Amount
FROM Transactions
WHERE AccountID NOT IN (1001, 1002, 1003);
  • مثال در مدیریت موجودی

    در یک سیستم مدیریت موجودی، می‌خواهید محصولاتی را پیدا کنید که در یک لیست خاص از دسته‌بندی‌ها نیستند:

 

SELECT ProductID, ProductName
FROM Products
WHERE CategoryID NOT IN (SELECT CategoryID FROM Categories WHERE CategoryName = 'Electronics');

 

در نهایت، استفاده از NOT IN می‌تواند به شما در فیلتر کردن داده‌ها کمک کند و به شما این امکان را می‌دهد که نتایج دقیقی را بر اساس نیازهای خود بدست آورید.

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

دوره های مرتبط
آموزش Sql,آموزش sqlserver, آموزش جامع Sqlserver

آموزش پایگاه داده SqlServer

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

997,000 تومان

2.5k بازدید

ارسال دیدگاه

برای ارسال نظر لطفا ورود یا ثبت نام کنید.