انتخاب داده ها در محدوده در SQL

معرفی WHERE clause و BETWEEN شرط

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

بیایید نمونه ای را بر اساس پایگاه داده معمولی Northwind که اغلب با محصولات پایگاه داده به عنوان یک آموزش ارائه می شود، در نظر بگیریم.

در اینجا یک گزیده از جدول محصولات پایگاه داده است:

جدول محصول
شناسه محصول نام محصول SupplierID NumberPerUnit قیمت واحد UnitsInStock
1 چای 1 10 جعبه x 20 کیسه 18.00 39
2 چانگ 1 24 - بطری 12 اونس 19.00 17
3 شربت آنیس 1 12 - 550 میلی لیتر بطری 10.00 13
4 طعم Cajun آشپز آنتون 2 48 - 6 اونس 22.00 53
5 کوسه گومبو آشپز آنتون 2 36 جعبه 21.35 0
6 زوج تنبل مادر بزرگ 3 12 - 8 اونس 25.00 120
7 گلابی خشک آلی عمو باب 3 12 - 1 lb pkgs. 30.00 15

مرزهای ساده

اولین محدودیت هایی که ما بر روی پرس و جو ما قرار می دهیم شامل شرایط مرزی ساده است. ما می توانیم این را در عبارت WHERE از پرس و جو SELECT مشخص کنیم، با استفاده از اظهارات شرط شرطی ساخته شده با اپراتورهای استاندارد مانند <،>،> =، و <=.


اولا، بگذارید یک پرس و جو ساده انجام دهیم که به ما اجازه می دهد لیستی از تمام محصولات موجود در پایگاه داده را که دارای UnitPrice بیش از 20.00 هستند استخراج کنیم:

SELECT ProductName، UnitPrice از محصولات WHERE UnitPrice> 20.00

این لیستی از چهار محصول را تولید می کند که در زیر نشان داده شده است:

ProductName UnitPrice ------- -------- Chef Anthon Gumbo Mix 21.35 Chef Anon Cajun Seasoning 22.00 Boysenberry مادربزرگ با 25.00 بارداری ارگانیک عمو باب 30.00

ما همچنین می توانیم از clause WHERE با مقادیر رشته استفاده کنیم. این اساسا کاراکترها را با اعداد برابر می کند، با A نشان دهنده مقدار 1 و Z نشان دهنده مقدار 26. به عنوان مثال، ما می توانیم تمام محصولات را با اسم هایی که از U، V، W، X، Y یا Z با پرس و جو زیر نمایش داده می شود نشان می دهند:

SELECT ProductName از محصولات WHERE ProductName> = 'T'

کدام نتیجه را ایجاد می کند:

ProductName ------- گلابی های آلی خشک شده با عمو باب

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

Clause WHERE همچنین ما را قادر میسازد تا با استفاده از شرایط مختلف شرایط مقابله ای با مقدار را اجرا کنیم. برای مثال، اگر ما می خواستیم پرس و جو خود را در بالا و محدود کردن نتایج به محصولات با قیمت بین 15.00 تا 20.00، ما می توانیم از پرس و جو زیر استفاده کنید:

SELECT ProductName، UnitPrice از محصولات WHERE UnitPrice> 15.00 و UnitPrice <20.00

این نتیجه را در زیر نشان می دهد:

ProductName UnitPrice ------- -------- Chai 18.00 Chang 19.00

بیانگر محدوده بین BETWEEN

SQL همچنین یک میانبر بین SYNTAX فراهم می کند که تعداد شرایطی را که ما نیاز داریم را شامل می شود و باعث می شود که پرس و جو بیشتر قابل خواندن باشد. به عنوان مثال، به جای استفاده از دو شرایط WHERE بالا، ما می توانیم یک پرس و جو مشابه را بیان کنیم:

SELECT ProductName، UnitPrice از محصولات WHERE UnitPrece Between 15.00 and 20.00

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

SELECT ProductName از محصولات WHERE Name Product بین "A" و "D"

کدام نتیجه را ایجاد می کند:

ProductName ------- شربت Aniseed Chai Chang Chef آنتون Gumbo آشپز آشپز آنجلو Cajun ادویه

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

اغلب مفید است که جملات مشترک را به یک روش ذخیره شده اضافه کنید تا آن را برای افرادی که بدون دانش SQL هستند قابل دسترسی باشد.