📞 02166056460

عملگر BETWEEN در شرطهای sql

4 / 10
از 3 کاربر
بازگشت به لیست مقالات » | شنبه 2 آبان 1405 در ساعت 17 و 8 دقیقه | نظرات کاربران ( 0 )
آموزش SQL

عملگر BETWEEN در SQL؛ آموزش استفاده از بازه ها

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

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

۰۱

عملگر BETWEEN در SQL چیست؟

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

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

نکته مهم این است که BETWEEN معمولاً دو سر بازه را هم در نظر می گیرد؛ یعنی مقدار برابر با حد پایین یا حد بالا نیز می تواند در نتیجه ظاهر شود. بنابراین، شرط BETWEEN 10 AND 20 معادل بررسی مقدارهای بزرگ تر یا مساوی 10 و کوچک تر یا مساوی 20 است.

۵ نکته مهم درباره عملگر BETWEEN در SQL

۰۲

۱. نوع داده ستون و مقادیر را هماهنگ کنید

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

برای مثال، اگر ستون Price عددی باشد، شرطی مانند Price BETWEEN 100 AND 500 برای یافتن قیمت های میان 100 تا 500 مناسب است. نوشتن همین حدها داخل کوتیشن، بسته به نوع پایگاه داده و تعریف ستون، می تواند رفتار متفاوتی ایجاد کند.

۰۳

۲. به شامل بودن دو سر بازه توجه کنید

یکی از نکات کلیدی درباره دستور Between این است که حد آغاز و حد پایان معمولاً در نتیجه لحاظ می شوند. این ویژگی برای بازه هایی که مرزهایشان نیز باید انتخاب شوند مفید است، اما در برخی گزارش ها ممکن است نتیجه ای بیش از انتظار ایجاد کند.

تصور کنید می خواهید کالاهای دارای امتیاز بین 3 تا 5 را استخراج کنید. کالاهایی با امتیاز دقیقاً 3 یا دقیقاً 5 نیز در خروجی قرار می گیرند. اگر هدف شما حذف یکی از مرزهاست، بهتر است شرط های مقایسه ای جداگانه مانند بزرگ تر از یا کوچک تر از را به کار ببرید.

۰۴

۳. ترتیب مقادیر متنی را در نظر بگیرید

BETWEEN برای داده های متنی نیز قابل استفاده است؛ در این حالت پایگاه داده مقدارها را بر اساس قواعد مرتب سازی و مقایسه متن بررسی می کند. ترتیب حروف الفبا، تنظیمات collation و تفاوت حروف بزرگ و کوچک می توانند بر نتیجه اثر بگذارند. به همین دلیل، بازه متنی همیشه مانند بازه عددی قابل پیش بینی نیست.

برای نمونه، شرط LastName BETWEEN 'Hansen' AND 'Pettersen' نام هایی را برمی گرداند که از دید قواعد مرتب سازی پایگاه داده در این محدوده قرار می گیرند. اگر نتیجه با انتظار شما سازگار نبود، تنظیمات مقایسه متن و شیوه مرتب سازی ستون را بررسی کنید.

۰۵

۴. برای تاریخ ها قالب روشن و دقیق بنویسید

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

برای مثال، اگر قصد دارید سفارش های ثبت شده در یک بازه مشخص را پیدا کنید، ابتدا مطمئن شوید ستون از نوع تاریخ یا زمان است. سپس مقدارهای ابتدا و انتهای بازه را متناسب با سامانه مدیریت پایگاه داده تنظیم کنید. در ستون های دارای زمان، حد پایان روز را نیز با دقت انتخاب کنید تا رکوردهای ساعات پایانی از قلم نیفتند.

۰۶

۵. در صورت نیاز از NOT BETWEEN استفاده کنید

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

برای مثال، در یک گزارش قیمت ممکن است بخواهید کالاهایی را بیابید که قیمت آنها کمتر از 100 یا بیشتر از 500 است. استفاده از NOT BETWEEN این شرط را کوتاه می کند و خوانایی پرس وجو را بالا می برد. با این حال، برای شرط های پیچیده تر بهتر است نتیجه را با چند مقدار نمونه بررسی کنید.

🎯

محدوده عددی

برای انتخاب مقدارهای عددی بین حد پایین و حد بالا به کار می رود.

📅

محدوده تاریخی

برای جست وجوی رکوردهای ثبت شده میان دو تاریخ استفاده می شود.

🔤

محدوده متنی

ترتیب حروف و قواعد مرتب سازی پایگاه داده بر نتیجه اثر می گذارند.

۰۷

ساختار دستور BETWEEN

ساختار کلی این دستور ساده است. ابتدا ستون ها و جدول مورد نظر را در بخش SELECT و FROM مشخص می کنید؛ سپس نام ستون بازه در شرط WHERE می آید و دو حد را با BETWEEN و AND وارد می کنید.

SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2;

در این ساختار، column_name نام ستونی است که می خواهید بررسی کنید، value1 حد پایین و value2 حد بالای بازه است. ترتیب حدها را رعایت کنید و مطمئن شوید هر دو مقدار با نوع داده ستون سازگار هستند.

۰۸

مثال استفاده از BETWEEN برای نام خانوادگی

فرض کنید جدولی به نام Persons دارید و می خواهید نام خانوادگی هایی را انتخاب کنید که در ترتیب متنی میان Hansen و Pettersen قرار می گیرند. پرس وجوی زیر نمونه ای از کاربرد BETWEEN برای یک ستون متنی است:

SELECT *
FROM Persons
WHERE LastName
BETWEEN 'Hansen' AND 'Pettersen';

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

۰۹

استفاده از NOT BETWEEN برای خارج از محدوده

برای نمایش رکوردهایی که مقدار آنها خارج از بازه تعیین شده است، NOT را پیش از BETWEEN قرار دهید. در مثال زیر، نام خانوادگی هایی انتخاب می شوند که در محدوده متنی مشخص شده قرار ندارند:

SELECT *
FROM Persons
WHERE LastName
NOT BETWEEN 'Hansen' AND 'Pettersen';

این روش در گزارش هایی کاربرد دارد که باید موارد بیرون از محدوده، مانند قیمت های بسیار پایین یا بالا، جداگانه بررسی شوند. توجه داشته باشید که مقدارهای NULL معمولاً با این شرط به شکل رکوردهای خارج از بازه انتخاب نمی شوند؛ زیرا NULL مقدار مشخصی برای مقایسه نیست.

مقایسه BETWEEN با شرط های مقایسه ای

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

روش نمونه شرط کاربرد نکته
BETWEEN Price BETWEEN 100 AND 500 بررسی بازه مشخص دو سر بازه معمولاً شامل می شوند.
شرط های مقایسه ای Price >= 100 AND Price <= 500 کنترل جداگانه حدها برای بازه های باز یا شرط های متفاوت انعطاف بیشتری دارد.
NOT BETWEEN Price NOT BETWEEN 100 AND 500 یافتن مقدارهای خارج از بازه برای تحلیل مقدارهای بیرون از محدوده مفید است.

اشتباهات رایج هنگام استفاده از BETWEEN

۱۰

اشتباه در ترتیب حدهای بازه

اگر حد بالایی را پیش از حد پایینی بنویسید، ممکن است نتیجه خالی یا غیرمنتظره باشد. پیش از اجرای پرس وجو، مقدارها را بررسی کنید و در صورت ساختن شرط به کمک برنامه، ترتیب آنها را در کد تضمین کنید.

۱۱

نادیده گرفتن زمان در ستون های تاریخ

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

۱۲

استفاده از مقدارهای ناسازگار با ستون

ترکیب نوع های داده متفاوت می تواند باعث خطا یا تبدیل ضمنی شود. برای نمونه، مقایسه ستون عددی با متن عددی را به رفتار پایگاه داده واگذار نکنید؛ نوع ستون و نوع مقدارهای شرط را از ابتدا هماهنگ نگه دارید.

✅

بررسی نوع داده

نوع هر دو حد را با نوع ستونی که بررسی می کنید هماهنگ کنید.

🔍

آزمایش مرزها

نتیجه را با مقدارهایی برابر با حد پایین و حد بالا آزمایش کنید.

⚙️

بررسی تنظیمات

قواعد مرتب سازی متن و قالب تاریخ را در پایگاه داده بررسی کنید.

مزایای استفاده از BETWEEN

مزایای BETWEEN در SQL

بازه ها را خواناتر بنویسید

شرط های روشن برای انتخاب داده
۰۱
خوانایی

شرط کوتاه تر

دو حد بازه را در یک شرط مشخص می کند.

۰۲
کاربرد

انواع داده

برای داده های عددی، متنی و تاریخی کاربرد دارد.

۰۳
گزارش

فیلتر سریع

انتخاب رکوردهای درون یک محدوده را ساده می کند.

۰۴
انعطاف

وارونه کردن شرط

با NOT BETWEEN داده های بیرون بازه را پیدا می کنید.

۰۵
مرزبندی

شامل بودن حدها

در حالت معمول دو مقدار مرزی نیز بررسی می شوند.

۱۳

جمع بندی: چه زمانی از BETWEEN استفاده کنیم؟

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

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

نکته توضیح کوتاه درجه اهمیت
نوع داده نوع مقدارهای بازه باید با ستون هماهنگ باشد. زیاد
مرزها BETWEEN معمولاً حد پایین و بالا را هم شامل می کند. زیاد
داده متنی ترتیب حروف به قواعد مرتب سازی بستگی دارد. متوسط
تاریخ و زمان قالب و زمان انتهایی بازه را دقیق بررسی کنید. زیاد
NOT BETWEEN برای یافتن مقدارهای خارج از محدوده استفاده می شود. متوسط

سوالات متداول عملگر BETWEEN در SQL

آیا BETWEEN دو مقدار ابتدا و انتهای بازه را شامل می شود؟

بله، در حالت معمول BETWEEN هر دو سر بازه را شامل می شود. برای مثال، شرطی که بازه 10 تا 20 را بررسی می کند، مقدارهای برابر با 10 و 20 را نیز در نتیجه قرار می دهد.

آیا می توان از BETWEEN برای تاریخ استفاده کرد؟

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

تفاوت BETWEEN و NOT BETWEEN چیست؟

BETWEEN رکوردهای درون محدوده را برمی گرداند؛ NOT BETWEEN برای یافتن مقدارهایی به کار می رود که خارج از آن محدوده هستند. هر دو شرط باید با توجه به نوع داده و منطق مرزها بررسی شوند.

آیا BETWEEN برای ستون های متنی هم کار می کند؟

بله، اما نتیجه به قواعد مرتب سازی و مقایسه متن در پایگاه داده وابسته است. تنظیمات collation و ترتیب حروف می توانند بر اینکه کدام مقدارها در بازه قرار بگیرند اثر بگذارند.

چه زمانی بهتر است به جای BETWEEN از شرط های جداگانه استفاده کنیم؟

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

پرس وجوهای SQL را دقیق تر بنویسید

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

مطالعه درباره عملگر BETWEEN ←
ارسال نظر و نظرات ثبت شده
سایر مقالات
دستور ISNULL در اس کیو ال آموزش SQL دستور ISNULL در SQL؛ آموزش کاربرد، تفاوت‌ها و مثال‌ها یاد بگیرید مقدار ...
مقدار Null در اس کیو ال آموزش پایگاه داده مقدار Null در SQL چیست و چگونه از آن استفاده کنیم؟ تفاوت مقدار تهی با رش ...
دستور SELECT INTO در sql آموزش SQL دستور SELECT INTO در SQL؛ آموزش ساخت جدول و نسخه پشتیبان یاد بگیرید چطور داده ها ...
عملگر UNION در اسکیوال آموزش SQL دستور UNION در SQL؛ راهنمای ترکیب نتایج جداول نحوه استفاده از UNION و UNION ALL ...
دستور FULL JOIN در sql آموزش SQL دستور FULL JOIN در SQL؛ آموزش کامل با مثال ترکیب همه سطرهای دو جدول، حتی وقتی بر ...
دستور RIGHT JOIN در sql راهنمای SQL دستور RIGHT JOIN در SQL؛ آموزش، مثال و کاربردها نحوه نمایش همه رکوردهای جدول س ...
دستور LEFT JOIN در sql آموزش SQL دستور LEFT JOIN در SQL؛ آموزش کاربرد و مثال با حفظ همه رکوردهای جدول سمت چپ، داد ...
دستور INNER JOIN در sql آموزش SQL دستور INNER JOIN در SQL؛ آموزش کاربرد و مثال یاد بگیرید چگونه داده‌های مرتب ...
دستورات پیوند و Join در SQL آموزش پایگاه داده SQL JOIN چیست؟ راهنمای تفاوت انواع دستورهای پیوند آشنایی با INNER JOIN، ...
Alias در اس کیو ال آموزش SQL Alias در SQL چیست و چگونه از آن استفاده کنیم؟ راهنمای نام گذاری موقت ستون ها و ج ...
عملگر BETWEEN در شرطهای sql آموزش SQL عملگر BETWEEN در SQL؛ آموزش استفاده از بازه ها کاربرد، ساختار، مثال ها و نکات مه ...
عملگر In در شرط های sql آموزش SQL عملگر IN در SQL چیست و چگونه از آن استفاده کنیم؟ راهنمای کاربردی بررسی چند مقدار ...
علامت های شرطی در Like علامت های شرطی در LIKE و کاربرد آن ها در SQL 💡آشنایی با جستجوی الگویی هنگام جستجو در پایگ ...
عملگر Like در SQL عملگر LIKE در SQL چیست و چه کاربردی دارد؟ 🔎جست وجوی الگو در داده ها عملگر LIKE در SQL برا ...
دستور شرطی Top در SQL دستور TOP در SQL چیست و چه کاربردی دارد؟ 💡آشنایی با محدود کردن خروجی دستور TOP در SQL برای ...
دسته بندی
جستجو
⏳ در حال پردازش...
لطفا صبر کنید