آموزش SQL در Microsoft Access: کاربرد جزء WHERE در SQL

جزء WHERE در دستور SELECT برای فیلتر کردن رکوردها بر اساس شرایط خاص استفاده می‌شود. این جزء به شما امکان می‌دهد فقط رکوردهایی را بازیابی کنید که شرایط خاصی را برآورده می‌کنند.

نحوه نگارش (Syntax) جزء WHERE

ساختار کلی جزء WHERE در SQL به شکل زیر است:

SELECT 
    column1, column2, ...
FROM 
    table_name
WHERE 
    condition;

اپراتورهای متداول در جزء WHERE

اپراتورهای مقایسه‌ای:

=: مساوی

<> یا !=: نامساوی

<: کوچکتر از

<=: کوچکتر یا مساوی

>: بزرگتر از

>=: بزرگتر یا مساوی

مثال: انتخاب دانشجویانی که بعد از 2000-01-01 به دنیا آمده‌اند

SELECT * FROM Students WHERE BirthDate > #2000-01-01#;

مثال: انتخاب دانشجویانی که نام خانوادگی آن‌ها برابر با ‘رضا زاده’ است

SELECT 
    StudentID, FirstName, LastName, NationalCode, BirthDate
FROM 
    Students
WHERE 
    LastName = 'رضا زاده';

اپراتورهای منطقی:

  • AND: هر دو شرط باید درست باشند.
  • OR: حداقل یکی از شرط‌ها باید درست باشد.
  • NOT: شرط نباید درست باشد.

مثال: انتخاب دانشجویانی که بعد از 2000-01-01 به دنیا آمده‌اند و نام کوچک آنها احمد باشد.

SELECT 
      * 
FROM 
      Students
WHERE 
      BirthDate > #2000-01-01# AND FirstName = 'احمد';

مثال: انتخاب دانشجویانی که بعد از 2000-01-01 به دنیا آمده‌اند یا نام کوچک آنها احمد نباشد.

SELECT 
      * 
FROM 
      Students
WHERE 
      BirthDate > #2000-01-01# OR FirstName <> 'احمد';

اپراتور IN:

  • برای بررسی اینکه آیا یک مقدار در مجموعه‌ای از مقادیر قرار دارد یا خیر؟

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

SELECT 
    * 
FROM 
    Students
WHERE 
    LastName IN ('احمدی', 'حسینی', 'کریمی');

اپراتور IN شکل ساده شده اپراتور منطقی OR می‌باشد. دستور SQL بالا و پایین نتایج یکسانی خواهند داشت.

SELECT 
    * 
FROM 
    Students
WHERE 
    LastName = 'کریمی' OR LastName = 'حسینی' OR LastName = 'احمدی';

اپراتور BETWEEN

برای بررسی اینکه آیا یک مقدار یک فیلد در بازه انتخابی قرار دارد یا خیر.

اپراتور BETWEEN و انتخاب بین دو تاریخ:

مثال: انتخاب دانشجویانی که تاریخ تولد آن‌ها بین 2000-01-01 و 2005-12-31 باشد.

SELECT 
    StudentID, FirstName, LastName, NationalCode, BirthDate
FROM 
    Students
WHERE 
    BirthDate BETWEEN #2001-01-01# AND #2005-12-31#;

اپراتور BETWEEN و انتخاب بین دو عدد:

مثال: انتخاب کالاهایی که قیمت آنها بین 1000 تا 10000 باشد.

SELECT
    * 
FROM 
    Products
WHERE 
    Price BETWEEN 1000 AND 10000; 

اپراتور BETWEEN و انتخاب بین مقادیر متنی:

اپراتور BETWEEN برای مقادیر متنی نیز کاربرد دارد. در این حالت ردیف‌هایی که از لحاظ الفبایی بین دو مقدار انتخابی باشند انتخاب خواهند شد.

مثال: انتخاب دانشجویانی که نام خانوادگی آنها بین احمدی و جمشیدی قرار دارد.

SELECT
    * 
FROM 
    Students
WHERE 
    LastName BETWEEN 'احمدی' AND 'جمشیدی'; 

اپراتور LIKE

برای جستجوی الگوهای خاص در داده‌های متنی استفاده می‌شود.

  • % جایگزین صفر یا بیشتر کاراکتر
  • _ جایگزین یک کاراکتر

مثال: انتخاب دانشجویانی که نام آنها با م شروع می‌شود.

SELECT 
    * 
FROM 
    Students
WHERE 
    FirstName LIKE 'م%';

مثال: انتخاب دانشجویانی که نام خانوادگی آنها به ی ختم می‌شود.

SELECT 
    * 
FROM 
    Students
WHERE 
    LastName LIKE '*ی';

مثال: انتخاب دانشجویانی که نام خانوادگی آنها با م شروع و به ی ختم می‌شود.

SELECT 
    * 
FROM 
    Students
WHERE 
    LastName LIKE 'م*ی';

عملکرد عملگر Like در اکسس SQL مشابه عملکرد Like در VBA می‌باشد. اطلاعات بیشتر درباره عملگر Like را می‌توانید در این صفحه مشاهده نمایید.

اپراتور IS NULL و IS NOT NULL

  • برای بررسی اینکه آیا یک ستون مقدار NULL دارد یا خیر.

مثال: انتخاب ردیف‌هایی که مقدار فیلد BirthDate آنها تکمیل نشده است.

SELECT 
    * 
FROM 
    Students
WHERE 
    BirthDate IS NULL;

مثال: انتخاب ردیف‌هایی که مقدار فیلد BirthDate آنها تکمیل شده است.

SELECT 
    * 
FROM 
    Students
WHERE 
    BirthDate IS NOT NULL;

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

مثال: انتخاب ردیف‌هایی که مقدار فیلد FirstName آنها تکمیل نشده یا خالی می‌باشد.

SELECT 
    * 
FROM 
    Students
WHERE 
    FirstName IS NULL OR FirstName = '';
آیا می‌دانید:

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

ترکیب عملگرها

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

مثال: انتخاب دانشجویانی که کد ملی آنها با 065 شروع می‌شود و تاریخ تولد آنها بعد از تاریخ 2005-12-31 می‌باشد.

SELECT 
    *
FROM 
    Students
WHERE 
    NationalCode Like "065#######" AND BirthDate > #12/31/2005#;

نکات مهم درباره ادغام عملگرها

  • ترتیب شرایط: زمانی که از چند شرط در WHERE استفاده می‌کنید، ترتیب آن‌ها و استفاده از پرانتزها برای گروه‌بندی شرط‌ها می‌تواند روی نتایج تاثیر بگذارد. برای یادگیری ترتیب عملگرها می‌توانید این صفحه را مشاهده نمایید.
  • بهینه‌سازی پرس و جو: استفاده از شاخص‌ها (Indexes) می‌تواند به بهبود کارایی پرس و جوهایی که از WHERE استفاده می‌کنند، کمک کند.

نتیجه‌گیری

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

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