دستور Where در SQL – از کاربرد تا نحوه استفاده به زبان ساده

۶۱۹ بازدید
آخرین به‌روزرسانی: ۲۷ خرداد ۱۴۰۳
زمان مطالعه: ۹ دقیقه
دانلود PDF مقاله
دستور Where در SQL – از کاربرد تا نحوه استفاده به زبان سادهدستور Where در SQL – از کاربرد تا نحوه استفاده به زبان ساده

«زبان کوئری ساختاریافته» (Structured Query Language |SQL) از دستور WHERE در SQL برای فیلتر کردن داده‌ها بر پایه‌های شرایط اعمال شده استفاده می‌کند. این دستور به صورت رایجی در عبارت‌های SELECTو UPDATEو DELETE استفاده می‌شود. از میان انبوه داده‌های ممکنی که توسط کوئری‌ها از پایگاه داده فراخوانده می‌شوند با کمک دستور WHERE در SQL داده‌های مورد نظر خود را استخراج می‌کنیم. در این مطلب از مجله فرادرس، به طور کلی به ساختار سینتکس و کاربرد این دستور، با یک یا چند شرط مختلف می‌پردازیم. همچنین روش استفاده از این دستور را برای شامل کردن یا استثنا کردن داده‌های خاصی بر اساس کوئری بررسی کرده‌ایم.

997696

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

دستور WHERE در SQL چه کاربردی دارد؟

دستور WHERE در SQL برای فیلتر کردن نتایجی به‌کار می‌رود که توسط عبارت‌های «زبان کار با داده‌» (Data Manipulation Language | DML) مانند SELECTو UPDATE و DELETE بدست می‌آیند. با استفاده از دستور WHERE می‌توانیم از درون یک یا چندین جدول مختلف -با استفاده از عملیات JOIN- داده‌ها را فراخوانی کنیم.

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

تصویرسازی پویا از نمایش تکه کدها و یادگیری sql

سینتکس دستور WHERE در SQL

شکل سینتکس پایه دستور WHERE  را در کد زیر نمایش داده‌ایم.

در کد بالا عبارت DML_Statement می‌تواند هر عبارتی مانند SELECTو UPDATEو DELETE در SQL و غیره باشد. می‌توانیم شرطی را با استفاده از عملگرهای منطقی یا مقایسه‌ای مانند >  و <  و =  و LIKEو NOT و غیره تعریف کنیم.

چگونه بر کار با SQL Server مسلط شویم؟

دستور WHERE در SQL یکی از دستورات بسیار کلیدی است. چندین دستور دیگر مانند دستور WHERE وجود دارند که برای کار کردن با SQL تا حد زیادی مفید و موثر هستند. SQL زبان ساختار یافته کوئری‌نویسی است که برای کار با پایگاه‌های داده رابطه طراحی شده است. یکی از بهترین نوع از این پایگاه‌‌های داده SQL Server است. در فرادرس برای کار با SQL Server فیلم‌های آموزشی پیشرفته و حرفه‌ای تولید شده‌اند که با مشاهده آن‌ها و تمرین به راحتی بر کار با این پایگاه داده مسلط می‌شوید.

مجموعه آموزش اس کیو ال سرور – مقدماتی تا پیشرفته

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

دستور WHERE همراه با عبارت SELECT

به‌طور معمول، عبارت SELECT برای واکشی داده‌ها از جدول‌های پایگاه داده به‌کار می‌رود. در صورت استفاده از دستور WHERE همراه با عبارت SELECTمی‌توانیم ردیف‌های واکشی شده را بر اساس شرایط یا عبارات مشخصی فیلتر کنیم. کدی که در ادامه آمده مثالی برای استفاده از دستور WHERE همراه با عبارت SELECTاست.

نمونه کد

فرض کنیم که جدولی به نام CUSTOMERS در پایگاه داده MySQL با استفاده از دستور CREATE TABLE ایجاد کرده‌ایم.

کدی پیاده‌سازی شده پایین این فرایند را نشان می‌دهد.

طبق کدهایی که در پایین نمایش داده‌ شده‌اند با استفاده از کوئری INSERT در SQL در این جدول ۷ رکورد فرضی را وارد کردیم.

در نهایت، جدولی که ساخته شده به صورت نمایش داده شده در پایین خواهد بود. در این جدول ID نشان‌دهنده شماره شناسایی کارمند، NAMEنام،  AGE سن، ADDRESS آدرس و  SALARYمیزام حقوق کارمندان را نشان می‌دهد.

IDNAMEAGEADDRESSSALARY
1Ramesh32Ahmedabad2000.00
2Khilan25Delhi1500.00
3Kaushik23Kota2000.00
4Chaitali25Mumbai6500.00
5Hardik27Bhopal8500.00
6Komal22Hyderabad4500.00
7Muffy24Indore10000.00

در کوئری آمده پایین، اطلاعات مربوط به شماره شناسایی ID ، نام NAME و حقوق SALARY را از جدول CUSTOMERSبا شرط حداقل درآمد SALARYبالاتر از 2000 واکشی کرده‌ایم.

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

IDNAMESALARY
4Chaitali6500.00
5Hardik8500.00
6Komal4500.00
7Muffy10000.00

دستور WHERE همراه با عبارت UPDATE

از عبارت UPDATE در SQL برای اصلاح رکوردهای موجود در جدول کمک گرفته می‌شود. با استفاده از دستور WHERE در SQL همراه با عبارت UPDATEمی‌توانیم رکورد‌های خاصی را به‌روزرسانی کنیم. اگر از دستور WHERE استفاده نکنیم، عبارت UPDATEبر روی همه رکورد‌های جدول اثر خواهد گذاشت.

در کد پایین، سینتکس پایه مربوط به ترکیب دستور WHERE همراه با عبارت UPDATEرا نمایش داده‌ایم.

نمونه کد

در کوئری نمایش داده شده پایین، در حال افزایش حقوق کارمندی به اندازه 10000  واحد هستیم که نامش Ramesh  است. می‌بینید که این افزایش حقوق را با استفاده از ترکیبی از عبارت‌های WHERE همراه با UPDATEانجام داده‌ایم.

پایگاه داده، در خروجی این کوئری، نتیجه نمایش داده شده پایین را برمی‌گرداند.

ارزیابی کوئری

برای ارزیابی کردن اینکه آیا نتیجه کوئری در جدول منعکس شده یا نه، همین‌طور که در پایین نمایش داده شده می‌توانیم از عبارت SELECTبرای نوشتن کوئری استفاده کنیم.

در نتیجه اجرای کوئری بالا، باید جدول زیر در خورجی نمایش داده شود.

IDNAMEAGEADDRESSSALARY
1Ramesh32Ahmedabad12000.00

دستور WHERE همراه با عملگر IN

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

خود عبارت SELECTیکی از عبارت‌های بسیار پرکاربرد و کلیدی در SQL است. تسلط به استفاده از این عبارت مهارت کوئری‌نویسی را به طرز چشم‌گیری افزایش می‌دهد. با مطالعه مطلب دستور SELECT در SQL – راهنمای استفاده به زبان ساده همراه با مثال از مجله فرادرس تا حد بسیار خوبی بر این دستور مسلط می‌شوید و تقریبا می‌توانید همه نیازهای خود را درباره این دستور برآورده کنید.

یک لپتاپ باز همراه با پیتزا و نوشابخ بخ روی میز - دستور Where در SQL

کد زیر، حالت سینتکس پایه را برای این کوئری نمایش می‌دهد.

در کد بالا عبارت column_name نشان‌دهنده نام ستون در جدول است. مقادیر value1  و value2  و غیره فهرست مقادیری هستند که می‌خواهیم با ستون column_name مقایسه کنیم.

نمونه کد

فرض کنیم که باید رکورد‌های با مقادیر Khilan  و Hardik  و Muffy را از ستون NAME در جدول CUSTOMERSنمایش دهیم. برای اجرای این خواسته می‌توانیم از کوئری آمده در پایین استفاده کنیم.

خروجی حاصل از اجرای کوئری بالا بر روی جدول آزمایشی خودمان به صورت زیر نمایش داده خواهد شد.

IDNAMEAGEADDRESSSALARY
2Khilan25Delhi1500.00
5Hardik27Bhopal8500.00
7Muffy24Indore10000.00

دستور WHERE همراه با عملگر NOT IN

دستور WHERE همراه با عملگر NOT IN دقیقا برعکس دستور WHERE همراه با عملگر INکار می‌کند.

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

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

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

نمونه کد

در مثال پایین، رکورد‌های را از جدول CUSTOMERSنمایش می‌دهیم که سنشان در ستون AGE با مقادیر 23 ، 25  و 22  برابر نباشد NOT .

خروجی حاصل از اجرای کوئری بالا بر روی جدول فرضی مطلب، به صورت زیر نمایش داده می‌شود.

IDNAMEAGEADDRESSSALARY
1Ramesh32Ahmedabad12000.00
5Hardik27Bhopal8500.00
7Muffy24Indore10000.00

دستور WHERE همراه با عملگر LIKE

استفاده از دستور WHERE  همراه با عملگر Like در SQL به فیلتر کردن ردیف‌هایی کمک می‌کند که از الگوی خاصی پیروی می‌کنند. این الگو‌های خاص با استفاده از کارکتر‌های خاصی از قبیل % و _ و [] و غیره نمایش داده می‌شود. سینتکس ارائه شده در پایین حالت مبنایی این کوئری را نمایش می‌دهد.

در این سینتکس کلمه column_name نماینده ستونی است که می‌خواهیم الگوی مورد نظر را با داده‌های این ستون مقایسه کنیم. عبارت pattern هم نوع داده رشته‌ای است که می‌تواند شامل کاراکتر‌های خاص از قبیل % و _ و [] و غیره باشد. در بخش بعدی برای این کوئری مثالی را کدنویسی کرده‌ایم.

نمونه کد

کوئری که در پایین آمده است، همه رکورد‌هایی را نشان می‌دهد که در آن‌ها مقادیر مربوط به ستون نام NAME با حرف K نمایش داده می‌شود و حداقل به اندازه چهار کاراکتر طول دارد.

خروجی بدست آمده از اجرای کوئری بالا، به‌ صورت زیر نمایش داده می‌شود.

IDNAMEAGEADDRESSSALARY
2Khilan25Delhi1500.00
3Kaushik23Kota2000.00
6Komal22Hyderabad4500.00

فیلم‌ های آموزشی مربوط به انواع پایگاه های داده

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

مجموعه آموزش پایگاه داده – مقدماتی تا پیشرفته

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

دستور WHERE همراه با عملگرهای AND و OR

برای ایجاد شرایط پیچیده در دستور WHERE در SQL حتی می‌توان از ترکیبی از عملگرهای AND و OR نیز استفاده کرد. با استفاده از این شرایط پیچیده می‌توانیم ردیف‌هایی با معیارهای مشخص شده‌ای را فیلتر کنیم. عملگر AND تضمین می‌کند که فقط همان ردیف‌هایی فیلتر شوند که تمام شرایط تعیین شده را تامین می‌کنند. عملگر OR نیز باعث می‌شود ردیف‌هایی فیلتر شوند که حداقل یکی از شرایط تعیین شده را شامل شوند. اگرچه که این عملگرها فقط زمانی استفاده می‌شوند که شرط مشخص شده برای فیلتر کردن همه ردیف‌های مورد نیاز کافی نباشد. یا به عبارت دیگر در زمان‌هایی که تعداد بیشتر از یک شرط برای جمع آوری داده‌ها موجود هستند.

کوئری که در ادامه آمده، سینتکس مورد نیاز برای استفاده از عملگرهای AND و OR را در دستور WHERE نمایش می‌دهد.

نمونه کد

در کوئری نمایش داده شده پایین، می‌خواهیم همه ردیف‌های جدول CUSTOMERSرا بر اساس شرایط خاصی واکشی کنیم. یعنی همه رکوردهایی را فراخوانی کنیم که با شرایط خاص تعریف شده منطبق هستند.

در کلاس درس استاد در حال توضیح مطالب به دانشجویان است

پرانتز‌ها اولویت ارزیابی شرایط را کنترل می‌کنند. بنابراین عملگر OR در ابتدا اعمال می‌شود و سپس عملگر AND را بر روی شرایط و داده‌های جدول اعمال می‌کنیم.

بر اثر اجرای کوئری بالا نتیجه زیر در خروجی تولید و نمایش داده می‌شود.

IDNAMEAGEADDRESSSALARY
3Kaushik23Kota2000.00

جمع بندی

در این مطلب از مجله فرادرس، درباره دستور WHERE در SQL و کاربردهای این دستور بحث کرده‌ایم. دستور WHERE به‌طور کلی برای فیلتر کردن داده‌ها استفاده می‌شود. روش استفاده از این دستور را همراه با سینتکس مبنایی آن نمایش دادیم. انواع روش‌های استفاده بهتر از دستور WHERE در SQL همراه با سایر عبارت‌ها از قبیل SELECTو UPDATEو INو LIKEو غیره را توضیح دادیم و برای هر کدام سینتکس مرتبط را همراه با مثالی کدنویسی کردیم.

دستور WHERE یکی از دستورات کلیدی و بسیار مفید و پرکاربرد در SQL است. این دستور کیفیت کوئری‌ها و سرعت نوشتن کوئری‌ها را بالاتر می‌برد. همچنین در صورت استفاده صحیح تضمین می‌کند که دقیقا داده‌های مورد نظر را بدست بیاوریم، نه یک داده بیشتر و نه یک داده کمتر.

بر اساس رای ۱ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
tutorialspointSQLShack
دانلود PDF مقاله
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *