akofaraji.ir
دستور WHERE در SQL (+تمرینات)
نوشته شده در تاریخ 27 فروردین 1403
نظرات: 0 امتیاز: 6 زمان مطالعه: 31 دقیقه

 

دستور WHERE

 

از دستور WHERE برای فیلتر کردن نتایج استفاده می شود. به عبارت دیگر می توان گفت WHERE یک نوع شرط محسوب می شود که داده ها را بر اساس آن فیلتر می کند. ساختار کلی (syntax) این دستور به شکل زیر است:

نکته: ما هنوز با دستورات دیگر SQL به غیر از SELECT آشنا نشده ایم بنابراین از SELECT به عنوان مثال استفاده می کنیم اما شما باید به یاد داشته باشید که WHERE با دستورات دیگری مثل UPDATE و DELETE و غیره نیز استفاده می شود.

 

طبق معمول قبل از ارائه ی مثال، قسمتی از پایگاه داده ی خود را برای شما قرار می دهیم تا به ساختار کلی آن آشنا شوید:

 

قسمتی از جدول customer ها در پایگاه داده ی Northwind
قسمتی از جدول customer ها در پایگاه داده ی Northwind

 

 

حالا به سراغ مثال می رویم!

کد زیر مشتریانی را انتخاب می کند که از کشور مکزیک باشند:

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

 

می بینیم که 6 ردیف مختلف به ما برگردانده می شود:

 

result set ما بعد از دستور SELECT * FROM Customers WHERE Country='Mexico'
result set ما بعد از دستور SELECT * FROM Customers WHERE Country=’Mexico’

 

بنابراین 5 مشتری از مکزیک داریم.

 

نکته: در نوشتن کد های SQL نیازی به رفتن به خط بعد ندارید بنابراین هر دو کد زیر دقیقا یکی هستند:

 

ما به جهت واضح تر شدن کد ها برای افراد مبتدی از اینتر استفاده می کنیم و به خط جدید می رویم اما روش مرسوم تر در نوشتن کد های SQL، پشت سر هم نوشتن آن ها در یک خط است (مخصوصا در سورس کد).

 

فیلدهای عددی و فیلد های متنی

 

در زبان SQL اگر بخواهید با فیلد های متنی کار کنید باید از single quote استفاده کنید (البته در بیشتر سیستم های پایگاه داده می توانید از double quotes نیز استفاده کنید) اما فیلد های عددی را داخل quotation قرار ندهید. مثال:

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

 

مشتری ای که دارای آیدی 1 است به ما داده می شود.

نکته: اگر نمی دانید single quote و double quote چه هستند به تصویر زیر نگاهی بیندازید:

 

علائم مهم نگارشی در برنامه نویسی
علائم مهم نگارشی در برنامه نویسی

 

  • اگر در جایی به جای curly braces به braces برخورد کردید، ممکن است منظور نویسنده تمام علامت های {} و () و [] و … باشد.
  • منظور از Quotation (به شکل تنها)، هر دو علامتِ double quotation و single quotation (یا یکی از آن ها) است.

 

اپراتور های دستور WHERE

 

از آن جا که گفتیم دستور WHERE نوعی شرط است، می دانیم که اپراتورهایی نیز دارد. شما می توانید از اپراتورهای زیر در دستور WHERE استفاده کنید:

 

اپراتور توضیحات
= مساوی است با
<> مساوی نیست با (در برخی نسخه ها به صورت =! است)
< بزرگتر است از (برنامه نویسی از چپ به راست است)
> کوچکتر است از
=< بزرگتر مساوی است با
=> کوچکتر مساوی است با
BETWEEN بین یک محدوده ی خاص
LIKE برای جست و جوی الگویی خاص
IN نشان دادن اینکه چندین مقدار برای یک ستون ممکن است

 

در جلسات بعد در رابطه با تک تک این موارد صحبت خواهیم کرد.

تمرینات

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

 

سوال اول: ستون هایی را انتخاب کنید که مقدار City در آن ها مساوی برلین یعنی “Berlin” باشد.

 

سوال اول تمرین های SQL

 

پاسخ:

برای پاسخ دادن به این سوال باید ابتدا نگاهی به جدول customers داشته باشید. پس از بررسی این جدول در میابید که یکی از ستون های آن city نام دارد و مخصوص نگه داری نام شهر ها است. با این اوصاف کار ما بسیار ساده می شود؛ تنها کافی است ابتدا تمام ستون های customers را انتخاب کنید (خط اول و استفاده از علامت ستاره) و سپس از شرط WHERE استفاده کنید و بگویید ستون city را برابر رشته ی Berlin قرار بده.

نکته: توجه داشته باشید که کلمه ی Berlin باید داخل quotation باشد. همانطور که گفتیم در اکثر سیستم های SQL تفاوتی بین single quotation و double quotation وجود ندارد اما از آن جایی که برخی از این سیستم ها double quotation را قبول نمی کنند بهتر است ریسک نکنید و همیشه و در همه جا از single quotation استفاده کنید.


 

سوال دوم: ستون هایی را انتخاب کنید که مقدار City در آن ها مساوی برلین یعنی “Berlin” نباشد.

 

تمرین دستور SELECT در SQL

 

پاسخ:

اگر با کلمه ی NOT آشنایی داشته باشید می دانید که این کلمه، شرطِ WHERE را برعکس می کند. بنابراین جواب بسیار ساده خواهد بود.

اگر با کلیدواژه ی NOT آشنا نیستید نگران نباشید، در جلسات بعدی آن را توضیح خواهیم داد و در مثال های عملی از آن استفاده خواهیم کرد. دلیل اینکه آن را اینجا آوردم این است که اگر اطلاعات به صورت ناگهانی و بدون مقدمه به شما برسند، بهتر در ذهنتان می مانند! بدین صورت در جلسات بعد NOT را فراموش نخواهید کرد.

 

 

سوال سوم: ستون هایی را انتخاب کنید که مقدار CustomerID در آن ها مساوی عدد 32 باشد.

تمرین SQL با WHERE

 

پاسخ:

جواب دادن این سوال نیز بسیار ساده است؛ دقیقا مانند موارد قبل عمل می کنیم با این تفاوت که شرطِ WHERE را به صورت CustomerID = 32 تعریف می کنیم.

قطعا خروجی این کد یک ردیف است (اطلاعات فردی که دارای آیدی 32 است).

 

نکته: توضیحات مربوط به این آیدی ها، نحوه ی تعیین آیدی ها و مباحث دیگر را در جلسات آینده توضیح خواهیم داد.

 

 

خلاصه ی مقاله

 

این مقاله از دو قسمت اصلی تشکیل شده است: قسمت اول که آشنایی با ساختار کلی و مثال های دستور WHERE بود و قسمت دوم که شامل سه تمرین مختلف بود. در قسمت بعد به سراغ اپراتور های AND و OR و NOT خواهیم رفت و مفصلا در موردشان صحبت خواهیم کرد. امیدوارم از این قسمت لذت برده باشید.

 

منبع: سایت روکسو

 

اگر احساس می کنید این مطلب برای شما مفید بود ، از 1 تا 10 به این مطلب امتیاز دهید

دیدگاه کاربران در مورد این مطلب

ثبت نظر
به نظر خوب میاد!
لطفا نام را وارد کنید
@
لطفا یک ایمیل منحصر به فرد و معتبر انتخاب کنید.
لطفا متن با کلمات و معانی مفهوم دار وارد نمایید