دستور شرطی که در قسمت دستور UPDATE مقداری بررسی کردیم، شکل کلی دستور بهصورت زیر خواهد بود
SELECT column1, column2, ...
FROM table_name
WHERE condition;
در دستور بالا، SELECT نوشتیم که ستونهای column1, column2 را در خروجی نمایش دهد، اما در آخر از دستور WHERE استفاده شده و شرطی بر خروجی قرار داده است.
مثال یک – خروجی دستور SELECT با استفاده از شرط
SELECT * FROM Customers
WHERE Country='Mexico';
در دستور بالا، اطلاعات جدول Customers در خروجی نمایش داده میشود، به شرطی که ستون Country برابر Mexico باشد، خروجی دستور مورد نظر را در شکل ۲۸-۳ مشاهده میکنید.
شکل ۲۸-۳ بررسی دستور WHERE
نکته:
در دستور WHERE Country=’Mexico’، کلمهی Mexico بین نقل قول قرار گرفته است، اما اگر به جای Mexico، از عدد استفاده میکردید، دیگر نیاز به نقل قول نبود، پس به این نکته توجه کنید.
از عملگرهای جدول ۶-۳ میتوان در بند WHERE استفاده کرد.
جدول ۶-۳ عملگر
توضیحات | عملگر |
مساوی | = |
بزرگتر از | > |
کوچکتر از | < |
بزرگتر مساوی | > = |
کوچکتر مساوی | <= |
نابرابر، توجه داشته باشید در بعضی از نسخههای SQL این علامت شاید بهصورت != باشد. | <> |
بین یک محدودهی مشخص | BETWEEN |
جستجوی یک الگو | LIKE |
برای تعیین چندین مقدار ممکن برای یک ستون | IN |
مثال دوم – استفاده از عملگر
اگر بخواهیم از این عملگرها در دستور شرطی استفاده کنید، میتوانید از دستور زیر استفاده کنید:
SELECT * FROM Customers
WHERE CustomerID<>1;
SELECT * FROM Customers
WHERE CustomerID<=1;
در دستور بالا از یک عملگر نابرابر و یک کوچکتر مساوی استفاده شده است که خروجی این دستور را در شکل ۲۹-۳ مشاهده میکنید؛ در قسمت اول، سطر یک نمایش داده نشده و در قسمت دوم تنها سطر یک نمایشداده شده است.
شکل ۲۹-۳ بررسی دستور WHERE
۳-۱-۵-۶ بررسی دستور AND، OR و NOT
همانطور که در درس قبلی خواندید، دستور WHERE یک دستور شرطی است، شما میتوانید با استفاده از دستورات AND، OR و NOT یک ترکیب جدید در شرط ایجاد کنید که در این قسمت به طور کامل آن را بررسی میکنیم.
دستور AND
فرم کلی دستور AND بهصورت زیر است:
SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ... ;
در دستور بالا با استفاده از SELECT، نام ستونها را انتخاب میکنیم و در قسمت WHERE باید شرط خود را با استفاده از AND وارد کنید، منظور از AND این است که یک شرط حتماً باید این چند مورد که با AND تعریف میشود را داشته باشد.
مثال اول – AND
SELECT * FROM Customers
WHERE Country='Iran' AND City='Tehran';
در دستور بالا، خروجی اطلاعات جدول Customers در خط اول نمایش داده خواهد شد، اما در خط دوم شرطی قرار داده که حتماً باید نام Country و City به ترتیب برابر Farshid و Tehran باشد، اگر به شکل ۳-۲۹ توجه کنید خروجی بهدرستی نمایشداده شده است.
شکل ۳۰-۳ بررسی دستور WHERE
توجه داشته باشید که تمام مثالهای این فصل از جدول ۱-۳ برداشته شده است و دقیقاً طبق همان جدول عمل کنید.
مثال دوم- دستور OR
SELECT * FROM Customers
WHERE Country='Iran' OR City='Shiraz';
برای دستور OR نیز همان مثال قبلی را اجرا میکنیم با این تفاوت که شهر را به شیراز تغییر میدهیم، دستور OR به این نکته اشاره دارد که اگر یکی از این شرایط درست باشد، پس شرط درست است و خروجی آن سطر باید نمایش داده شود که در شکل ۳۱-۳ این موضوع را مشاهده میکنید؛ با اینکه شهر Shiraz در دستور وارد شده، چون یکی از شرطها، یعنی Iran درست بوده، خروجی نمایش داده شده است.
شکل ۳۱-۳ بررسی دستور WHERE
مثال سوم دستور NOT
این دستور، یعنی منفی کردن شرط، یعنی اینکه اگر NOT قبل از آن قرار دهیم، یعنی اینکه آن کلید نباید در خروجی باشد.
SELECT * FROM Customers
WHERE NOT Country='Iran';
در دستور بالا، اگر کشور Iran در یکی از سطرها باشد آن سطر در خروجی نمایش داده نخواهد شد که این موضوع را در شکل ۳۲-۳ مشاهده میکنید.
شکل ۳۲-۳ بررسی دستور WHERE
مثال چهارم- ترکیب سه دستور AND, OR, NOT
برای اینکه درک کاملتری از این سه دستور داشته باشیم، میخواهیم یک مثال کلی برای این سه دستور بزنیم.
SELECT * FROM Customers
WHERE Country='Germany' AND (City='Berlin' OR City='Frankfurt') ;
در دستور بالا، کشور مورد نظر Germany در نظر گرفته شده است، اما در شرطی که در داخل پرانتز قرار داده شده، گفته که یکی از شهرها میتواند Berlin و یا Frankfurt باشد که چون شهر Frunkfurt در جدول وجود داشت به این دلیل شرط، درست و بهمانند شکل ۳۳-۳ در خروجی نمایش داده شده است.
شکل ۳۳-۳ بررسی WHERE
اگر بخواهیم مثالی از NOT بزنیم میتوانیم از دستور زیر استفاده کنیم:
SELECT * FROM Customers
WHERE NOT Country='Germany' AND NOT Country='USA';
در این دستور، اگر کشور مورد نظر آمریکا و آلمان نباشد باید لیست نهایی در خروجی چاپ شود که این موضوع را در شکل ۳۴-۳ مشاهده میکنید.
شکل ۳۴-۳ بررسی دستور WHERE
۳-۱-۵-۷ بررسی دستور LIKE
با این دستور میتوانید یک Pattern ایجاد کنید، یعنی اینکه مثلاً مشخص کنید که ستونهایی که با حرف P شروع میشوند در خروجی چاپ شوند؛ در زیر شمای کلی این دستور را مشاهده میکنید:
SELECT column1, column2, ...
FROM table_name
WHERE column LIKE pattern;
در این دستور و در شرط مورد نظر به این نکته اشاره شده است که خروجی کار باید طبق Pattern مورد نظر باشد، در لیست زیر چند نمونه از عملگرهای دستور LIKE را مشاهده میکنید که با % و _ اجرا شدهاند.
جدول ۷-۳ عملگر Like
عملگر LIKE | توضیحات |
LIKE ‘a%’ | این دستور مقادیری را پیدا میکند که با حرف “a” شروع میشوند. |
LIKE ‘%a’ | این دستور مقادیری را پیدا میکند که به حرف “a” ختم میشوند. |
LIKE ‘%or%’ | مقادیری را پیدا میکند که or داشته باشند. |
LIKE ‘_r%’ | این دستور به مقادیری اشاره دارد که حرف دوم آنها r باشد. |
LIKE ‘a_%’ | به مقادیری اشاره دارد که با حرف a شروع شده و دارای حداقل دو حرف است. |
LIKE ‘a__%’ | به مقادیری اشاره دارد که با حرف a شروع شده و حداقل دارای سه کاراکتر هستند. |
LIKE ‘a%o’ | مقادیری را پیدا میکنند که با حرف a شروع شده و با حرف o پایان مییابد. |
LIKE ‘_2%3’ | مقادیری را که مقدار دوم آنها، ۲ و مقدار آخر، ۳ باشد. |
مثال اول – a%
در این قسمت میخواهیم گزینههایی را پیدا کنیم که با حرف a شروع میشوند، در دستور زیر قسمت Customer Name بررسی میشود و اگر کلمهای با a شروع شود را در خروجی بهمانند شکل ۳۵-۳ چاپ میکند:
SELECT * FROM Customers
WHERE "Customer Name" LIKE 'a%';
شکل ۳۵-۳ بررسی دستور LIKE
مثال دوم – %a
در این مثال در خروجی در ستون Customers Name، کلماتی که به a ختم میشوند در خروجی چاپ خواهند شد.
۳-۱-۵-۸ بررسی دستور BETWEEN
این دستور مقدار مشخصشده بین دو محدوده را در خروجی نمایش میدهید، شکل کلی این دستور بهصورت زیر میباشد:
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
برای اینکه دستور BETWEEN را اجرا کنیم باید یک ستون جدید به جدول اصلی خود اضافه کنیم؛ برای این کار طبق شکل ۳۶-۳ بر روی جدول مورد نظر خود کلیک راست کنید و قسمت Design را انتخاب کنید و یک ستون با عنوان Price و از نوع int وارد کنید.
شکل ۳۶-۳ بررسی دستور BETWEEN
در ادامه باید بهمانند شکل ۳۷-۳ اطلاعات ستون Price را وارد کنید؛ برای تمرین میتوانید از طریق دستور INSERT این کار را انجام دهید.
شکل ۳۷-۳ نمایش جدول Price
مثال اول –دستور BETWEEN
SELECT * FROM Customers
WHERE Price BETWEEN ۱۰ AND ۲۰;
در دستور بالا، قیمت بین ۱۰ تا ۲۰ در خروجی نمایش داده خواهد شد که این موضوع را در شکل ۳۸-۳ مشاهده میکنید:
شکل ۳۸-۳ بررسی دستور BETWEEN
مثال دوم
SELECT * FROM Customers
WHERE "Contact Name" BETWEEN 'A' and 'Z';
در دستور بالا و در ستون Contact Name، اسامی که با حروف A تا Z شروع شوند در خروجی چاپ خواهد شد.
مثال سوم – منظم کردن خروجی
SELECT * FROM Customers
WHERE "Contact Name" BETWEEN 'Alfred' and 'Juan'
ORDER BY "Contact Name";
در دستور بالا، یک دستور جدید اضافه شده است با نام ORDER BY که این دستور برای منظم کردن ستون خروجی است که این موضوع را در شکل ۳۸-۳ مشاهده میکنید.
شکل ۳۹-۳ بررسی دستور BETWEE