7/17/2011

Oracle SQL / AND & OR Operators (Basic)



السلام عليكم

And & ORسنتحدث اليوم عن

يستخدمو لتصفيه السجلات استنادا الى اكثر من شرط

And عند استخدامك ل

فى هذه الحاله يجب ان تطبق جميع الشروط الموجوده داخل الجمله وفى حاله اى من الشروط غير صحيح ستكون النتيجه غير 
صحيحه لا بد ان تكون جميع الشروط صحيحه حتى يظهر الناتج الصحيح

EMPكما تجرى العاده دائما نقوم بلعمل على جدول ال


EMPNO
ENAME
JOB
MGR
HIREDATE
SAL
COMM
DEPTNO
7499
ALLEN
SALESMAN
7698
20/02/81
1760
300
30
7521
WARD
SALESMAN
7698
22/02/81
1250
500
30
7566
JONES
MANAGER
7839
02/04/81
6000

20
7654
MARTIN
SALESMAN
7698
28/09/81
1250
1400
30
7698
BLAKE
MANAGER
7839
01/05/81
2850

30
7782
CLARK
MANAGER
7839
09/06/81
3300

10
7788
SCOTT
ANALYST
7566
19/04/87
6000

20
7839
KING
PRESIDENT

17/11/81
3300

10
7844
TURNER
SALESMAN
7698
08/09/81
1500
0
30
7876
ADAMS
CLERK
7788
23/05/87
6000

20
7900
JAMES
CLERK
7698
03/12/81
950

30
7902
FORD
ANALYST
7566
03/12/81
6000

20
7934
MILLER
CLERK
7782
23/01/82
3300

10

مثال 1

  ويجب ان يكون رقم الموظف 7499Allen نريد جميع المعلومات عن الموظف  
   ورقمه 7499 لن يتم تنفيذ الجمله بشكل صحيح الا اذا كان الشرطيين صحيحين Allen اى ان لم يكن اسم الموظف
واذا كان اى من الشرطيين غير صحيح او غير متوفر سيكون الناتج غير صحيح



Syntax
Select * from emp
Where ename = 'ALLEN'
AND empno = 7499;
ناتج المثال رقم 1
EMPNO
ENAME
JOB
MGR
HIREDATE
SAL
COMM
DEPTNO
7499
ALLEN
SALESMAN
7698
20/02/81
1760
300
30

وفى حاله اى من الشروط غير متوفر يكون الناتج
no rows selected

مثال رقم 2

  فى الجمله اكثر من مرهAnd يمكنك ايضا اضافه المشغل
 ويجب ان يكون رقمه 7499 ويجب ان يكون راتبه 1760Allen فى هذا المثال نريد جميع المعلومات عن الموظف

Syntax
Select  * from emp
Where ename = 'ALLEN'
AND empno = 7499
AND sal = 1760;

ناتج المثال رقم 2
EMPNO
ENAME
JOB
MGR
HIREDATE
SAL
COMM
DEPTNO
7499
ALLEN
SALESMAN
7698
20/02/81
1760
300
30

وفى حاله لم تطبق اى من الشروط التى ذكرناها يكون الناتج
no rows selected 

ORعند استخدامك ل

هذا المشغل اكثر سلاسه اى فى حاله لم ينفذ الشرط رقم واحد نفذ الشرط رقم اتنين اى يجب ان يكون اى من الشروطين صحيحين حتى يظهر ناتج الجمله بشكل صحيح
سوف نستخدم المثال رقم 1/2

Syntax
Select * from emp
Where ename = 'ALLEN'
OR empno = 7499;

    فلا مشكله انظر الى الشرط الثانى اذا كان صحيحا نفذ الجمله واذا كان الشرط الثانىAllen فى هذه الحاله ان لم يكن اسمه
خطا نفذ الشرط الاول واذا كان الشرطين خطا بلتالى –بديهى- لن ينفذ اى شىء

ناتج المثال 1/2
EMPNO
ENAME
JOB
MGR
HIREDATE
SAL
COMM
DEPTNO
7499
ALLEN
SALESMAN
7698
20/02/81
1760
300
30

مثال رقم 2/2
 Wardاو الموظف Allen نريد جميع البيانات عن الموظف

Syntax
Select * from emp
Where ename = 'ALLEN'
OR ename = 'WARD';

ناتج المثال 2/2
EMPNO
ENAME
JOB
MGR
HIREDATE
SAL
COMM
DEPTNO
7499
ALLEN
SALESMAN
7698
20/02/81
1760
300
30
7521
WARD
SALESMAN
7698
22/02/81
1250
500
30

ويمكنك ايضا استخدام المشغلين معا
مثال 1/3
  SalesManالموجودين فى وظيفه  Ward او الموظف Allen نريد جميع البيانات عن الموظف

Syntax
Select * from emp
Where job = 'SALESMAN'
AND (ENAME = 'ALLEN' OR ENAME = 'WARD');
ناتج المثال 3/3
EMPNO
ENAME
JOB
MGR
HIREDATE
SAL
COMM
DEPTNO
7499
ALLEN
SALESMAN
7698
20/02/81
1760
300
30
7521
WARD
SALESMAN
7698
22/02/81
1250
500
30

وبذلك نكون انتهينا من الدرس اليوم وفى انتظار الاسئله والاستفسارات


No comments:

Post a Comment