Between، IN و LIKE در SQL: آموزش کامل همراه با مثال

Between، IN و LIKE در SQL: آموزش کامل همراه با مثال


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

عبارت BETWEEN در SQL چیست؟

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

ساختار کلی:

SELECT column_name
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

این کوئری تمام رکوردهایی را که مقدار column_name بین value1 و value2 است برمی‌گرداند. نکته مهم این است که BETWEEN مقدارهای مرزی (value1 و value2) را نیز شامل می‌شود.

Between، IN و LIKE در SQL آموزش کامل همراه با مثال
Between، IN و LIKE در SQL آموزش کامل همراه با مثال

مثال عددی:
فرض کنید جدولی به نام Employees دارید که ستونی به نام Salary دارد. برای انتخاب کارمندانی که حقوقشان بین 3000 و 5000 است:

SELECT FirstName, LastName, Salary
FROM Employees
WHERE Salary BETWEEN 3000 AND 5000;

این کوئری همه کارمندانی که حقوقشان در این بازه است (شامل 3000 و 5000) را نمایش می‌دهد.

مثال تاریخ:

SELECT OrderID, OrderDate
FROM Orders
WHERE OrderDate BETWEEN ‘2024-01-01’ AND ‘2024-06-30’;

این کوئری سفارش‌های شش‌ماهه اول سال 2024 را بازیابی می‌کند.

نکات مهم در استفاده از BETWEEN

  • شامل بودن مقادیر مرزی: همیشه به یاد داشته باشید که BETWEEN مقدارهای ابتدا و انتها را هم شامل می‌شود. اگر این موضوع در تحلیل داده‌های شما اهمیت دارد، از عملگرهای < و > به صورت دستی استفاده کنید.

  • کارایی در دیتابیس‌های بزرگ: BETWEEN در جداول ایندکس‌گذاری‌شده معمولاً کارایی خوبی دارد، زیرا دیتابیس می‌تواند به سرعت ردیف‌ها را در بازه موردنظر پیدا کند.

  • کاربرد با رشته‌ها: می‌توان از BETWEEN برای مقایسه حروف نیز استفاده کرد، مثلاً انتخاب اسامی که بین A و M شروع می‌شوند.

Between، IN و LIKE در SQL آموزش کامل همراه با مثال
Between، IN و LIKE در SQL آموزش کامل همراه با مثال

عبارت IN در SQL چیست؟

عبارت IN زمانی استفاده می‌شود که بخواهید بررسی کنید یک مقدار خاص در میان مجموعه‌ای از مقادیر وجود دارد یا خیر. این عملگر باعث ساده‌تر و خواناتر شدن کوئری‌های شما می‌شود و جایگزینی عالی برای استفاده پشت‌سرهم از OR است.

ساختار کلی:

SELECT column_name
FROM table_name
WHERE column_name IN (value1, value2, value3, …);
Between، IN و LIKE در SQL آموزش کامل همراه با مثال
Between، IN و LIKE در SQL آموزش کامل همراه با مثال

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

SELECT FirstName, City
FROM Employees
WHERE City IN (‘Tehran’, ‘Esfahan’, ‘Shiraz’);

به جای نوشتن:

WHERE City = ‘Tehran’ OR City = ‘Esfahan’ OR City = ‘Shiraz’;

که طولانی‌تر و کمتر خوانا است.

استفاده از IN با زیرکوئری:

SELECT ProductName
FROM Products
WHERE CategoryID IN (SELECT CategoryID FROM Categories WHERE CategoryName = ‘Beverages’);

این کوئری همه محصولاتی که در دسته‌بندی نوشیدنی‌ها هستند را برمی‌گرداند.

نکات مهم در استفاده از IN

  • جایگزین بهتر برای OR: اگر با چند مقدار سر و کار دارید، IN خواناتر و سریع‌تر است.

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

  • NOT IN: معکوس IN است و ردیف‌هایی که در مجموعه قرار ندارند را انتخاب می‌کند.

Between، IN و LIKE در SQL آموزش کامل همراه با مثال
Between، IN و LIKE در SQL آموزش کامل همراه با مثال

عبارت LIKE در SQL چیست؟

عبارت LIKE برای جستجوی داده‌هایی استفاده می‌شود که الگوی خاصی دارند. این عملگر در کنار wildcard characters یا کاراکترهای جایگزین استفاده می‌شود. دو کاراکتر مهم در LIKE عبارتند از:

  • % : هر تعداد کاراکتر (صفر یا بیشتر)

  • _ : دقیقاً یک کاراکتر

Between، IN و LIKE در SQL آموزش کامل همراه با مثال
Between، IN و LIKE در SQL آموزش کامل همراه با مثال

مثال:
انتخاب کارمندانی که نامشان با حرف A شروع می‌شود:

SELECT FirstName
FROM Employees
WHERE FirstName LIKE ‘A%’;

انتخاب کارمندانی که نامشان دقیقاً پنج حرف دارد و با M شروع می‌شود:

SELECT FirstName
FROM Employees
WHERE FirstName LIKE ‘M____’;

مثال عملی‌تر:
برای پیدا کردن محصولاتی که در نامشان کلمه “Cake” وجود دارد:

SELECT ProductName
FROM Products
WHERE ProductName LIKE ‘%Cake%’;

نکات مهم در استفاده از LIKE

  • کارایی: استفاده از LIKE با الگوی شروع‌شونده (مثل A%) سریع‌تر از الگوهای شامل‌شونده (مثل %Cake%) است زیرا دومی مجبور است کل جدول را اسکن کند.

  • Case Sensitivity: در برخی دیتابیس‌ها LIKE حساس به حروف بزرگ و کوچک است (مثل PostgreSQL)، در برخی دیگر (مثل MySQL) خیر.

  • ترکیب با NOT: می‌توانید از NOT LIKE برای حذف داده‌های مطابق با الگو استفاده کنید.

تفاوت Between، IN و LIKE

ویژگی BETWEEN IN LIKE
کاربرد اصلی انتخاب داده‌ها در یک بازه بررسی وجود مقدار در یک مجموعه جستجوی داده‌ها با الگو
نوع مقایسه عددی، تاریخی، رشته‌ای مقادیر گسسته رشته‌ای
خوانایی ساده و کوتاه برای بازه‌ها بسیار خوانا برای چند مقدار انعطاف‌پذیر برای الگوها
کارایی سریع با ایندکس سریع با ایندکس ممکن است کند باشد (خصوصاً با % در ابتدا)

جمع‌بندی

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

بدون دیدگاه

دیدگاهتان را بنویسید