عملگرهای منطقی در SQL
مقدمه:
عملگرهای منطقی در زبان SQL ابزاری قدرتمند برای ترکیب دو یا چند شرط و ایجاد یک شرط پیچیده تر هستند. این عملگرها در طیف وسیعی از وظایف مربوط به پایگاه داده، از جمله فیلتر کردن داده ها، جستجو و مرتب سازی، کاربرد دارند.
انواع عملگرهای منطقی:
- AND: هر دو شرط باید برقرار باشند.
- OR: فقط کافی است یکی از شروط برقرار باشد.
- NOT: شرط را معکوس می کند.
کاربردهای عملگرهای منطقی:
- فیلتر کردن داده ها: برای انتخاب رکوردهای خاص از یک جدول بر اساس معیارهای مختلف.
- جستجو: برای یافتن اطلاعات خاص در پایگاه داده.
- مرتب سازی: برای مرتب کردن داده ها بر اساس معیارهای مختلف.
- دستورات شرطی: برای تعیین مسیر اجرای برنامه.
مثال ۱:
فرض کنید می خواهیم تمام مشتریانی که در شهر “تهران” زندگی می کنند و سن آنها بیشتر از ۲۰ سال است را پیدا کنیم. می توانیم از کد زیر استفاده کنیم:
SELECT * FROM customers WHERE city = 'تهران' AND age > ۲۰;
در این مثال، عملگر AND
برای ترکیب دو شرط city = 'تهران'
و age > 20
استفاده شده است.
نکات مهم:
- ترتیب ارزیابی عملگرهای منطقی از چپ به راست است.
- می توانید از پرانتز برای تغییر ترتیب ارزیابی استفاده کنید.
- عملگر
NOT
قبل از شرطی که می خواهید معکوس شود قرار می گیرد.
مثال ۲:
- یافتن محصولاتی که قیمت آنها کمتر از ۵۰ هزار تومان یا موجودی آنها بیشتر از ۱۰ عدد است:
SELECT * FROM products WHERE price < ۵۰۰۰۰ OR quantity > ۱۰;
- نمایش نام و قیمت محصولاتی که قیمت آنها بیشتر از ۱۰۰ هزار تومان است و در دسته بندی “موبایل” قرار دارند:
SELECT name, price FROM products WHERE price > ۱۰۰۰۰۰ AND category = 'موبایل';
- پیدا کردن ۵ محصولی که به تازگی به جدول اضافه شده اند و قیمت آنها کمتر از ۲۰۰ هزار تومان است:
SELECT * FROM products ORDER BY id DESC LIMIT ۵ WHERE price < ۲۰۰۰۰۰;
با استفاده از خلاقیت و ترکیب عملگرهای منطقی می توانید به اطلاعات مورد نظر خود در پایگاه داده دست پیدا کنید.
مثال جامع عملگرهای منطقی در SQL
فرض کنید یک جدول به نام users
با ستون های زیر داریم:
id
(عدد صحیح): شناسه منحصر به فرد هر کاربرname
(رشته): نام کاربرemail
(رشته): آدرس ایمیل کاربرage
(عدد صحیح): سن کاربرgender
(رشته): جنسیت کاربر (مرد یا زن)city
(رشته): شهر محل سکونت کاربر
در ادامه چند مثال از کاربرد عملگرهای منطقی در این جدول ارائه می دهیم:
۱. پیدا کردن تمام کاربران مرد بالای ۳۰ سال که در تهران زندگی می کنند:
SELECT * FROM users WHERE gender = 'مرد' AND age > ۳۰ AND city = 'تهران';
۲. نمایش نام و ایمیل کاربرانی که سن آنها بین ۲۰ تا ۴۰ سال است و در شهر مشهد یا اصفهان زندگی می کنند:
SELECT name, email FROM users WHERE age BETWEEN ۲۰ AND ۴۰ AND (city = 'مشهد' OR city = 'اصفهان');
۳. جستجوی کاربرانی که نام آنها با “علی” شروع می شود و یا ایمیل آنها شامل “yahoo.com” است:
SELECT * FROM users WHERE name LIKE 'علی%' OR email LIKE '%yahoo.com%';
۴. یافتن کاربرانی که نه در تهران و نه در مشهد زندگی می کنند:
SELECT * FROM users WHERE city != 'تهران' AND city != 'مشهد';
۵. نمایش ۱۰ کاربرانی که به تازگی در سیستم ثبت نام کرده اند و سن آنها کمتر از ۲۵ سال است:
SELECT * FROM users ORDER BY id DESC LIMIT ۱۰ WHERE age < ۲۵;
۶. پیدا کردن کاربرانی که یا عضو خبرنامه هستند و یا در ۷ روز گذشته فعالیتی در سایت داشته اند:
SELECT * FROM users WHERE is_subscribed = ۱ OR last_activity > NOW() - INTERVAL ۷ DAY;
۷. یافتن کاربرانی که نه عضو خبرنامه هستند و نه در ۳۰ روز گذشته فعالیتی در سایت داشته اند:
SELECT * FROM users WHERE is_subscribed = ۰ AND last_activity < NOW() - INTERVAL ۳۰ DAY;
۸. نمایش کاربرانی که جنسیت آنها مشخص نیست و یا سن آنها کمتر از ۱۸ سال است:
SELECT * FROM users WHERE (gender IS NULL OR gender = '') OR age < ۱۸;
این مثال ها فقط تعدادی از کاربردهای عملگرهای منطقی در SQL را نشان می دهند. با استفاده از خلاقیت و ترکیب این عملگرها می توانید به اطلاعات مورد نظر خود در پایگاه داده دست پیدا کنید.
نکات مهم:
- ترتیب ارزیابی عملگرهای منطقی از چپ به راست است.
- می توانید از پرانتز برای تغییر ترتیب ارزیابی استفاده کنید.
- عملگر
NOT
قبل از شرطی که می خواهید معکوس شود قرار می گیرد.