دستورات پيشرفته SQL
دستور AND & OR :
از And و Or برای ترکيب شرط ها در دستور Where استفاده می شود .
گاهی اوقات اطلاعات مورد نياز ما در دستور Select دارای چندين شرط مختلف است . به طور
مثال ما مشخصات دانشجويان ترم دوم رشته نرم افزار که معدل آنها بيش از 15 است را می
خواهيم . در اين حالت بايستی هر يک از شرط های مسئله را به تنهايی تعريف کرده و سپس
آنها را با هم ترکيب کنيم . برنامه به ارزيابی هر يک از شرط ها پرداخته ، سپس نتايج
حاصله را با هم ترکيب کرده و خروجی را تعيين می کند .
عملگر And برای اجرای دستور نياز دارد تا تمام شرط های تعيين شده برای آن درست باشد
. در حالی که عمگر Or فقط نياز دارد که حداقل يکی از شرط های آن درست باشد . در جداول
زير چگونگی برقراری نتيجه نهايی در هنگام استفاده از اين دو اوپراتور را مشاهده می
کنيم :
در حالت 2 شرط :
|
درست
|
درست
|
درست
|
|
درست
|
غلط
|
درست
|
|
غلط
|
درست
|
درست
|
|
غلط
|
غلط
|
غلط
|
|
|
درست
|
درست
|
درست
|
|
درست
|
غلط
|
غلط
|
|
غلط
|
درست
|
غلط
|
|
غلط
|
غلط
|
غلط
|
|
چگونگی حالت های فوق را در مثال های زير بررسی می کنيم :
|
41252214
|
Ahmad
|
Rezaee
|
Hard Ware
|
Tehran
|
18
|
|
10724113
|
Ehsan
|
Amiri
|
Soft Ware
|
Karaj
|
14
|
|
10254861
|
Zahra
|
Hosini
|
Hard Ware
|
Tehran
|
17
|
|
27365187
|
Sahar
|
Ahmadi
|
Soft Ware
|
Bam
|
16
|
|
35654415
|
Hesam
|
Razavi
|
Soft Ware
|
Tehran
|
19
|
مثال 1 : مشخصات دانشجويانی را از جدول Student ارائه دهيد
که نمره آنها بيش از 15 و رشته تحصيلی آنها نرم
افزار باشد :
Select * From Student
Where Major = 'Soft Ware' AND Grade > 15 ;
|
|
27365187
|
Sahar
|
Ahmadi
|
Soft Ware
|
Bam
|
16
|
|
35654415
|
Hesam
|
Razavi
|
Soft Ware
|
Tehran
|
19
|
|
مثال 2 : مشخصات دانشجويانی را از جدول Student ارائه دهيد
که نمره آنها بيش از 17 بوده يا رشته تحصيلی آنها نرم افزار
باشد :
Select * From Student
where Major = 'Soft Ware' OR Grade > 17 ;
|
|
41252214
|
Ahmad
|
Rezaee
|
Hard Ware
|
Tehran
|
18
|
|
35654415
|
Hesam
|
Razavi
|
Soft Ware
|
Tehran
|
19
|
|
نکته مهم : همچنين می توان با استفاده از عملگر پرانتز
چندين شرط مختلف را به صورت دسته های مجزا تعريف کرده و سپس همه آنها را با هم ترکيب
کرد . در اين حالت شرط های هر گروه ابتدا در داخل پرانتز با هم ترکيب شده ، سپس نتيجه
حاصله به عنوان نتيجه نهايي آن گروه شرط به دستور Where ارسال می شود و درنهايت نتايج
تمام گروه ها با هم ترکيب می شوند .
مثال مهم : از جدول Student مشخصات دانشجويانی را ارائه
دهيد که نمره آنها 18 و رشته تحصيلی آنها سخت افزار بوده
يا نمره آنها 16 و
رشته تحصيلی شان نرم افزار باشد :
Select * From Student
Where ( ( Grade = 18 AND Major = 'Hard Ware' )
OR ( Garde = 16 AND Major = 'Soft Ware' ) ) "
;
|
|
41252214
|
Ahmad
|
Rezaee
|
Hard Ware
|
Tehran
|
18
|
|
27365187
|
Sahar
|
Ahmadi
|
Soft Ware
|
Bam
|
16
|
|