آشنایی با SQL - بخش هفتم - آشنایی با AND, OR و NOT

SQL

مثال ۱ : کارمندان متولد ۱۳۶۰ که حقوق آنها بالاتر از ۲۰۰۰ ریال است را حذف کن.

DELETE Personnel
;WHERE BirthYear=1360 AND Salary > 2000

کسانی حذف می شوند که هم متولد ۱۳۶۰ باشند و هم بالاتر از ۲۰۰۰ ریال حقوق بگیرند. این خاصیت AND است.

مثال ۲ : به حقوق کارمندانی که دارای ۲ فرزند هستند یا قبل از ۱۳۶۰ بدنیا آمده اند ۵ درصد اضافه کن.

UPDATE Personnel
SET Salary = Salary * 1.05
;WHERE ChildNumber = 2 OR BirthDay < 1360

در مثال قبل اجباری نیست همزمان هر دو شرط برقرار باشد تا کارمندی مشمول افزایش حقوق باشد. مثلا آقای الف متولد ۱۳۵۴ و دارای سه فرزند است. به دلیل سال تولدش مشمول اضافه حقوق می شود.

در SQL  جابجا کردن شرط های دو طرف AND و OR هیچگونه اثری حتی در سرعت اجرا ندارد! (چرا؟)

می توانید با استفاده از AND ها یا OR های بیشتر تعداد شرطها را بیشتر کنید و شروط پیچیده تری بنویسید. حتی می توانید AND و OR را با هم نیز استفاده کنید. آیا می توانید مثال بزنید؟

مثال ۳ : کارمندانی که متولد ۱۳۶۰ نیستند را حذف کن.

DELETE Personnel
;WHERE NOT (BirthYear=1360)

البته این شرط را به اشکال دیگری نیز می توان نوشت:

DELETE Personnel
;WHERE BirthYear <> 1360

DELETE Personnel
;WHERE BirthYear != 1360

و حتی به این شکل!

DELETE Personnel
;WHERE BirthYear < 1360 OR BirthDay > 1360