منتديات برامج نت
عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا
ادارة المنتدي
منتديات برامج نت
عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا
ادارة المنتدي
منتديات برامج نت
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

منتديات برامج نت

برامج كمبيوتر و انترنت لغات برمجه و تطوير مواقع قسم خاص بالتصميم و الجرافيك
 
الرئيسيةPortalأحدث الصورالتسجيلتابع دوره فى الاوراكل2 I_icon_mini_registerدخول
اهلاوسهلا بكم في منتديات برامج نت ارجو من جميع الزوار التسجيل مع تحيات $الادارة$

 

 تابع دوره فى الاوراكل2

اذهب الى الأسفل 
كاتب الموضوعرسالة
ملك الظلام

المشرف العام...}


ملك الظلام



تابع دوره فى الاوراكل2 Empty
مُساهمةموضوع: تابع دوره فى الاوراكل2   تابع دوره فى الاوراكل2 Icon_minitimeالأحد أبريل 19, 2009 10:10 am

ممممم ... زدنا كلمة as ... وهي كلمة زائدة في عرض الأسماء المستعارة ... سواء وضعناها .. او لم نضعها .. لا فرق ....( لماذا عرضتها في هذا المثال )؟؟ لكي لا تتفاجأ اذا شاهدتها في احد الكتب .. وتقول أنني لم أطلعك عليها ^^ .. بس





- عرض العمليات الحسابية :


انتبه
!!! توجد نقاط مهمة جدا ..... يجب عدم اغفالها ,,,

نريد عرض رواتب الموظفين الشهرية بالقسم رقم 30 ... ونريد عرض رواتبهم السنوية .... مالذي نعمله ؟

اولا كيف نوجد الرواتب السنوية ؟

12 * الراتب الشهري = الراتب السنوي(annual salary ) ...

معادلة بسيطة ....

نحن نملك حقل خاص بالرواتب الشهرية .. صح ؟ وهو الحقل
sal

ولكن لا نملك حقل خاص بالرواتب السنوية ...

هل تذكر في تصميم نموذج
ER .. الصفات المشتقة ؟

وهي الصفات التي يمكننا ان نوجدها من صفات أخرى للكيان ...

مثل المعدل , او الربح السنوي ... او ماشابه ,,

قلنا ان لا تضع الصفات المشتقة كحقل في الجدول صح ؟

في القاعدة رقم واحد والتي تنص على "على حسب المتطلبات نعمل النظام او نبرمجه او حتى نصممه "

لو كانت المتطلبات في نظام الموظفين .. إيجاد الراتب السنوي (وهو صفة مشتقة.. ونوجدها من الصفة "الراتب"
) ... مالذي سوف يحصل ؟

لدينا خيارين لا ثالث لهما ..

اما ان نجعله حقل في الجدول بالرغم انه صفة مشتقة ...

أو اما ان نهمله , ولا نجعله حقل في الجدول , وفي الاستفسار نوجده ...

لماذا الخيار الأول .. ولماذا الخيار الثاني ؟؟

الخيار الاول ... وهو ان نجعل هذه الصفة المشتقة (الراتب السنوي ) كحقل في الجدول .. ويكون جاهز ..

تخيل معي هذا الامر .. اعرف انه لا يوجد حقل باسم الراتب السنوي (annual salary ) ولكن تخيل انه يوجد هذا الحقل ,,,



رمز:
Select annual_sal ,sal from emp where ename='KING';

والناتج :
رمز:




SAL ANNUAL_SAL

---- ----------

5000 60000كل ما حصل هو اننا حصلنا على معلومة ثابتة من جدول الموظفين ...
لو ان راتب الموظف king زاد ... مثلا صار 5500 دولار .. فما العمل .. هل يبقى الراتب السنوي 60000 ؟؟

سوف نضطر الى تعديله هو الاخر .. وندخل القيمة 66000 ...



هذا اذا وضعناه كحقل جاهز في الجدول ...


اذا لم نضعه حقل ... كيف نوجده ..؟؟؟ أنا
أخبركالآن ..

رمز:
select sal , 12*sal from emp ;

وسوف يكون الناتج .. مايلي :

رمز:

SAL 12*SAL

------ ----------

800 9600

1600 19200

1250 15000

2975 35700

1250 15000

2850 34200

2450 29400

3000 36000

5000 60000

1500 18000

1100 13200

950 11400

3000 36000

1300 15600

لاحظ العملية الحسابية .... أين عملناها ؟ في نفس الاستعلام ,,,

ياسلام .. لغة مرنة بشكل كبير , سواء اضفنا ضرب .. قسمة .. جمع .. طرح .. فسوف تنفذها ,,,

كل ما عملناه هو ... اننا قلنا sal*12 فقط .. وهو بشكل أوتوماتيكي .. عرف انها عملية حسابية ,,

الان دعنا نتفنن قليلا ونغير مسمى الحقل باسم مستعار ..



رمز:
select sal , 12*sal as "Annual_Salary" from emp ;انظر الى الناتج الان ,,

رمز:

SAL Annual_Salary

----- -------------

800 9600

1600 19200

1250 15000

2975 35700

1250 15000

2850 34200

2450 29400

3000 36000

5000 60000

1500 18000

1100 13200

950 11400

3000 36000

1300 15600

هل تذكر الحقل comm ؟؟؟ وهو الخاص بالرواتب الاضافية ... بعض الموظفين لديهم رواتب اضافية والبعض الاخر لا يملك رواتب اضافية .. الموظف MARTIN .. لديه زيادة 1400 دولار .. مارأيك لو نحسب راتبه الاجمالي .. والراتب السنوي الاجمالي ؟؟ هل تعرف ؟؟

رمز:

Select sal+comm "salary" , (sal+comm)*12 "annual_sal"

from emp

where ename='MARTIN' ;

سوف ينتج لدينا ...


رمز:

salary annual_sal

------- ----------

2650 31800معقدة قليلا هاه ؟؟ لماذا اضفنا الاقوس ؟؟انسى امر الاقواس الان .. وركز في sal+comm ... وهي اضافة الراتب الشهري مع الراتب الاضافي للموظف MARTIN
الرجوع الى أعلى الصفحة اذهب الى الأسفل
ملك الظلام

المشرف العام...}


ملك الظلام



تابع دوره فى الاوراكل2 Empty
مُساهمةموضوع: رد: تابع دوره فى الاوراكل2   تابع دوره فى الاوراكل2 Icon_minitimeالأحد أبريل 19, 2009 10:10 am

- الأولويات الحسابية :

اولويات ؟؟ ما قصدنا بهذا ؟ اليك درس بسيط في الرياضيات ولكن مهم جدا في التطبيقات البرمجية .. لا يستحب ان تعرفه .. ولا يفضل ان تعرفه .. بل يجب ان تعرف هذا الدرس
...

لاحظ (لاحظ = فعل امر.. وهو اجباري
) المعادلتين الحسابيتين التاليتين :

10+20*5 = ؟؟؟؟

لو قلنا 10+20 = 30

ثم ..



30*5 = 150

اذن الجواب هو 150

طيب ...

انا اعرف ان احدكم حسبها بهذه الطريقة ..

5*20=100

100 + 10 = 110

أي الطريقين اصح ؟؟ هل 150 .. او 110 ؟؟

لماذا بدأنا بالجمع ثم الضرب ...

ولماذا بدأنا الضرب ثم الجمع ؟؟؟

لماذا حصلنا على قيم مختلفة ؟؟

اريدك ان تحفظ الاولويات التالية الان ...

1- الاقواس

2- الاسس

3- الضرب او القسمة ..

4- الجمع او الطرح

احفظها صم ... يالله دقيقة حفظ ثم ارجع واقرأ ....



اليك المسألة التالية ...


رمز:
(1+2)*3=???


هل الجواب هنا 9 ... او 7 ؟؟؟
الاولوية تقول الاقواس اولا ... يعني 1+2 = 3 ... ثم .... 3*3=9 ....

مسئلة اخرى




رمز:
1+2*3=??



هل 7 ام 9 ؟؟
الاولوية تقول .. الاقواس .. ولكن لا يوجد اقواس .. اذن الاسس .. لا توجد اسس .. اذن ... الضرب او القسمة ..



3*2=6 ..

ثم الجمع او الطرح ..
6+1=7

مسئلة ثالثة ..


رمز:
2*8/4 =??


لا اقواس ... لا اسس .. فقط الضرب و القسمة .. ايهما نبدأ ؟؟
لاحظ اننا كتبناها بالانجليزي ... ومسائلنا بالانجليزي ..

خذ اول عملية تواجهك عندما تقرأ من اليسار الى اليمين (لو عربي .. فاننا نقرأ من اليمين الى اليسار طبعا ,,)

اقرأ ... 2 ..... ثم ... ضرب ..... ثم 8 ... اذن الضرب له الاولوية ..



2*8 = 16

16/4 = 4

المسئلة ما قبل الاخيرة ..


رمز:
(3*4)+5*(4-2)/2


هيا .. حلها في ورقة .. او في رأسك اذا كنت كألبرت انشتاين ...
الان حلها ...



,,,

,,

,

انتهيت ؟؟؟





الحل كالتالي ...

رمز:
= (12 ) + 5 * (2 ) / 2

= (12) + 10 / 2

= (12) + 5

= 17





المسئلة الاخيرة :

رمز:
1+2-3*5/5


مارأيك لو جربت ^^ ؟؟


....

...

..

.

الحل :


رمز:
= 1+2-15/5

= 1+2-3

= 3-3

0=


اليك اول تحدي .. صعب لدرجة تجعلك تقف مشدوقا ... مستغربا مني .. لماذا أحب ان أعقدك ,,




رمز:
((1+2)*(5-3) + 2 )/(1+2/2) = ???


وهو التحدي الاول في الدرس ,,, سواء حللت ام لم تحل التحديات... لن ينقص مني شيء ..
اذا تجاهلت التحديات .. فانت تتجاهل نفسك لا اكثر ولا اقل .. ولا اهتم ما اذا كنت حللت ام لا ,, كل شيء لمصلحتك انت ...

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

المشرف العام...}


ملك الظلام



تابع دوره فى الاوراكل2 Empty
مُساهمةموضوع: رد: تابع دوره فى الاوراكل2   تابع دوره فى الاوراكل2 Icon_minitimeالأحد أبريل 19, 2009 10:11 am

الان ... اريد عرض الرواتب للموظفين السنوية .. مضاف اليها 100 دولار اعاشة سنوية لجميع الموظفين ...

هل هذا الامر صحيح ؟








رمز:
Select sal*12+100 from emp ;









هل تعتقد ان هذا الامر صحيح ؟








رمز:
Select (sal*12)+100 from emp ;









وهل تعتقد ان هذا الامر صحيح ؟






رمز:
Select sal * (12+100) from emp ;


أي الاومر اصح ؟؟



























الامر الاول والثاني هما الصحيحان ...



اعتقد ان الاولويات بسيطة جدا ,, سوف تحتاجها كثيرا فيما بعد ... لذا لا تنسى ,,



























- اداة ضم الحقول :



مارأيك بهذه النتيجة ... هل تستطيع ان تعمل مثلها ؟؟


رمز:
ename and sal

---------------

SMITH800

ALLEN1600

WARD1250

JONES2975

MARTIN1250

BLAKE2850

CLARK2450

SCOTT3000

KING5000

TURNER1500

ADAMS1100

JAMES950

FORD3000

MILLER1300














هل تستطيع ان تجعل عمود اسم الموظف مدموج مع عمود الرواتب ؟



اليك الامر ...












رمز:
select ename||sal as "ename and sal" from emp ;



سوف تعرض النتيجة السابقة ..
لاحظ هذه العلامة ||

وهي الخاصة بعملية ضم اكثر من حقل .. وعرضها بشكل مضموم ....

اليك مثال اخر













رمز:
select ename||' and '||sal from emp ;



اضفنا نص ..
يعني ضمينا ename مع النص ' and ' مع sal












وسوف تظهر هذه النتيجة ...



رمز:


ENAME||'AND'||SAL

------------------

SMITH and 800

ALLEN and 1600

WARD and 1250

JONES and 2975

MARTIN and 1250

BLAKE and 2850

CLARK and 2450

SCOTT and 3000

KING and 5000

TURNER and 1500

ADAMS and 1100

JAMES and 950

FORD and 3000

MILLER and 1300رمز:










هل لاحظت كيف عرض العمود ؟؟


لاحظ عنوان العمود ... عنوانه هو :
ENAME||'AND'||SAL






صحيح ؟



طيب .. اريد ان اعرض عمود بهذا الشكل ...

" الموظف
KING يأخذ راتب 5000 "












"الموظف
SMITH يأخذ راتب 800 "














..... الخخخخخ



يعني اريد النتيجة مثل هذه النتيجة ....


رمز:


The_Information

--------------------------------------------------

the emp_name is : SMITH and his salary is =800

the emp_name is : ALLEN and his salary is =1600

the emp_name is : WARD and his salary is =1250

the emp_name is : JONES and his salary is =2975

the emp_name is : MARTIN and his salary is =1250

the emp_name is : BLAKE and his salary is =2850

the emp_name is : CLARK and his salary is =2450

the emp_name is : SCOTT and his salary is =3000

the emp_name is : KING and his salary is =5000

the emp_name is : TURNER and his salary is =1500

the emp_name is : ADAMS and his salary is =1100

the emp_name is : JAMES and his salary is =950

the emp_name is : FORD and his salary is =3000

the emp_name is : MILLER and his salary is =1300

كنت اريد ان اجعله تحدي ولكن .... تراجعت ...
وكلي ثقة انك سوف تفكر فيه قبل ان تشاهد الاجابة ...

ممممممم ... خذ راحتك ... دقيقتين .. ثلاث ... خمس ... اعتقد انه يستحق خمس دقائق بالكثير ...

لا تريد ان تفكر فيه ...

طيب .....

انت حر .... اليك الامر ...

رمز:


select 'the emp_name is : '||ename||' and his salary is ='||sal as "The_Information" from emp ;

معقد قليلا ... ولكن بسيط ,,,



























- الغاء التكرار :



لو طلبت منك ان تعرض لي ارقام الاقسام الموجودة في جدول الموظفين ...

فسوف تقول ...












رمز:
Select deptno from emp ;



وسوف يعرض هذه النتيجة ...
رمز:


DEPTNO

-------

20

30

30

20

30

30

10

20

10

30

20

30

20

10

لو سألتك ما هي الاقسام الموجودة لدينا ؟؟
فستجيب ... مممم ... 20 ... و 30 ..... و 30... و 20 .... و 10 .....

بالله عليك .. فيه قسم له الرقم 10 .. وقسم له الرقم 10 ؟؟

ام انه هنالك قسم واحد يدعى 10 .. ولكن تكرر لاكثر من موظف ؟؟؟

لو نظرت في النتيجة السابقة ... لوجدت انها 14 سجل فقط ...

فكر لو كانو 14 مليار سجل .. وانه لا يوجد الا القسم 10 .. و 20 ... و 30 .... هل ستعرف ان عدد الاقسام قليل ؟؟

طبعا شبه مستحيل ...

نريد في هذه الحالة ان نلغي التكرار ...

اليك الامر ...















رمز:
select distinct deptno from emp ;









كلمة distinct هي المسؤولة عن الغاء التكرار ,,


وكأني اقول .. اعرض لي ارقام القسم الموجودة بجدول الموظفين ... وبدون تكرار ,,

النتيجة ستكون ....

رمز:
DEPTNO

-------

10

20

30
بدون تكرار ...
لا تقل انها غير مفيدة ... لو ان لدينا جداول كثيرة ومعلومات وبيانات ضخمة ... فسوف تعرف فائدتها ...

طبعا هذه الكلمة .. الخاصة بإلغاء التكرار .. لا تصلح إلا لـعمود واحد ...

ولا تصلح لاكثر من عمود ... نادرا ما تحدث .. واعتقد انها صدفة انها ستصلح لاكثر من عمود ,,

هل تريد ان تعرف مالذي سيحدث لو الغيت تكرار عمودين ؟؟

تخيل اننا نريد ان نلغي تكرار الرواتب و ارقام الاقسام .. اليك الامر ..











رمز:
select distinct sal , deptno from emp ;

واليك النتيجة :

رمز:
SAL DEPTNO

----- ----------

800 20

950 30

1100 20

1250 30

1300 10

1500 30

1600 30

2450 10

2850 30

2975 20

3000 20

5000 10
ستلاحظ ان الرواتب التغى تكرارها ... ولكن هل التغى تكرار ارقام الاقسام ؟
سوف تحدث مشاكل نحن بغنى عنها وعن شرحها ... ,,,, لذا ... استخدمها الان لعمود واحد ,,




























- ماهي القيمة
NULL














هي قيمة خالية .
..
الرجوع الى أعلى الصفحة اذهب الى الأسفل
ملك الظلام

المشرف العام...}


ملك الظلام



تابع دوره فى الاوراكل2 Empty
مُساهمةموضوع: رد: تابع دوره فى الاوراكل2   تابع دوره فى الاوراكل2 Icon_minitimeالأحد أبريل 19, 2009 10:12 am

لا قيمة لها ...



ليست بصفر ...

وليست برقم ...

وليست مسافة ..

ولا حتى بشيء ...

لا احد يعلم ما قيمتها ... غير انها مجرد .. خالية ...

هي فراغ .... ولا شيء غير الفراغ ,,

هل تذكر العمود
comm. من جدول الموظفين emp ؟؟؟؟













رمز:
select sal , comm from emp;



النتيجة المتوقعة ... هي ...


رمز:


SAL COMM

----- ----------

800

1600 300

1250 500

2975

1250 1400

2850

2450

3000

5000

1500 0

1100

950

3000

1300رمز:










هل شاهدت فراغات في العمود comm. ؟؟ اعرف انك لم تشاهدها , ولكن نكمل


بعض الموظفين لا توجد لديه بدلات (بدلات رواتب اضافية ..)

لاحظ ان احدهم لديه القيمة صفر والصفر ليست القيمة الخالية NULL .. ولاحظ ان بعضهم لديه القيمة الخالية NULL






والبعض الاخر يوجد عنده رواتب اضافية ,,



القيمة الخالية ... تسبب بعض الاحيان مشاكل ... و امراض معدية .. من تلبك معدي .. الى انفيولنزا ..

من هذه المشاكل مايلي ..

نريد حساب الراتب الكامل وهو يساوي .. الراتب الاساسي
sal + الراتب الاضافي comm.




رمز:
select ename , sal+comm from emp ;

والنتيجة هي :


رمز:


ENAME SAL+COMM

---------- ----------

SMITH

ALLEN 1900

WARD 1750

JONES

MARTIN 2650

BLAKE

CLARK

SCOTT

KING

TURNER 1500

ADAMS

JAMES

FORD

MILLER

اوبس .. سميث راتبه 800 دولار ... ولا يملك أي رواتب اضافية .. أي قيمة الرواتب الاضافية هي NULL











بالله عليك .. قلي ..














800 + NULL = ؟؟؟



تساوي كم ؟؟

هل 800 ؟؟

قلنا ان NULL قيمة لا نستطيع تحديدها .. وهي خالية ,, وليست صفرا ...

اذن .. فناتج المعادلة ..













800+NULL=NULL














قاعدة اساسية ... يجب ان لا تغفلها .....














" اذا ضربنا ... جمعنا .. قسمنا ... طرحنا .. من القيمة NULL .. فالناتج هو NULL "
















طيب ... مالعمل اذا اردنا ان نعرف الراتب الكامل ... لسميث المسكين ؟؟



سوف نحل هذه المشكلة فيما بعد ... ترقب ^^
















* جملة الشرط where :












سوف ندرس جملة الشرط هذه بتوسع اكثر ..



سأقوم بتغطية هذه الجملة من جهتين ... من عمليات (معاملات) المقارنة ... ومن عمليات اخرى ,,



























- اولا : عمليات المقارنة في جملة الشرط :





























اخذت في السنة الاولى ابتدائي .. في الرياضيات ... المقارنة .. (اكبر من .. اصغر من .. يساوي )














... أصعب درس رياضيات ^^"














ممممم ... مثلا ,,



ايهما اكبر 1 او 1000 ؟؟

اعرف انك لا تستطيع التفكير ,,, او بالأحرى لا تعرف الاجابة لذا ..

ال 1000 اكبر من 1













يعني تنكتب 1000 > 1



وطبعا الـ 1 اصغر من 1000

طيب ... نعقد الأمور اكثر ...

ونقول ..

س اكبر من عشرة ... ما قيمة س ؟

س ممكن ان تكون سالب مليون ... ممكن تكون واحد ... ممكن اثنين .. ممكن ان تكون تسعة .. ولكن لا يمكن ان تكون عشرة ...

هي اصغر من العشرة ولو بشعرة ....

ممكن ان تكون 9.99999999

يعني باختصار ...س .... من سالب مالا نهاية .. الى التسعة

س= {- مالا نهاية
........... 9 }












طيب .. نعقد أكثر
وأكثر ,,



- س اكبر من او تساوي عشرة ...

يعني س من سالب مالا نهاية ... الى العشرة ,,

طيب ماقبل اخر مسألة بهذا الخصوص ...

- س اصغر من او تساوي ثلاثة ... واكبر من واحد ..

ما قيم س الحقيقية ؟ (حقيقية = هي أرقام بدون كسور ...)

س={2 , 3}

طيب اخر مسألة :












- س اصغر من 3 ... واكبر من او تساوي 3



قيم س الحقيقية هي ....

مممممممم ...

س= {-مالا نهاية
.......... + مالا نهاية }
الرجوع الى أعلى الصفحة اذهب الى الأسفل
ملك الظلام

المشرف العام...}


ملك الظلام



تابع دوره فى الاوراكل2 Empty
مُساهمةموضوع: رد: تابع دوره فى الاوراكل2   تابع دوره فى الاوراكل2 Icon_minitimeالأحد أبريل 19, 2009 10:13 am

يعني جميع الأعداد
بما فيهم الثلاثة ,,



الان انظر الصورة 36 :

























....




مممم ...
انتظرني ,,,
الرجوع الى أعلى الصفحة اذهب الى الأسفل
ملك الظلام

المشرف العام...}


ملك الظلام



تابع دوره فى الاوراكل2 Empty
مُساهمةموضوع: رد: تابع دوره فى الاوراكل2   تابع دوره فى الاوراكل2 Icon_minitimeالأحد أبريل 19, 2009 10:13 am

- مثال :



اريد عرض اسماء ورواتب جميع من رواتبهم اقل من او تساوي 1250 دولار ,,

يعني النتيجة تكون هكذا :

رمز:
ENAME SAL

---------- ----------

SMITH 800

WARD 1250

MARTIN 1250

ADAMS 1100

JAMES 950رمز:










ماهي الجملة ؟


فكر ....

الحل :


رمز:
select ename,sal

from emp

where sal <= 1250 ;

- مثال :
اريد عرض اسماء ورواتب الموظفين الذين لهم رواتب اكبر من او تساوي 1250 واصغر من او تساوي 3000

؟؟؟ كيف هذه ؟

ستعرف لها طريقين .. تذكرها جيدا .... احد هذه الطرق ... تجده في معاملات جملة الشرط where الاخرى ,





















ثانيا : معاملات اخرى لجملة الشرط
where














عرفنا المقارنة ..



الان تعرف بعض المعاملات الاخرى والتي يجب ان نتعمق فيها جيدا ..




1) المعامل Between






اذا كنت تشكو من اللغة الانجليزية مثلي .. فـكلمة "
between" معناها "بين"


- مثال :

اريد عرض اسماء ورواتب الموظفين الذين لهم رواتب اكبر من او تساوي 1250 واصغر من او تساوي 3000

؟؟؟ كيف هذه ؟

اليك الجملة :

رمز:
select ename , sal from emp

where sal between 1250 and 3000 ;رمز:






ومعنى الجملة السابقة ..


اعرض لي اسماء ورواتب .. الموظفين والذين رواتبهم ... مابين 1250 و 3000 دولار ,,













هل لاحظت تركيب المعامل
between ؟؟ وهل لاحظت زيادة كلمة 'and' ؟


انا متأكد انك ذكي .. ولاحظت ان معنى الجملة السابقة ... مايلي :








اعرض لي اسماء ورواتب .. الموظفين والذين رواتبهم ...اكبر من او تساوي 1250 و اقل من او تساوي 3000 دولار ,,








ممممم ,,,,

انا شخصيا لم اكتفي .. اريد تجربة شيء ...

لو قلبنا القيمة الصغرى مع القيمة الكبرى ؟؟ يعني كتبنا الجملة كما يلي :

رمز:
select ename , sal from emp

where sal between 3000 and 1250 ;





لاحظ انني بدأت بالكبير ثم الصغير ... هل تتوقع ان المعامل between ذكي ؟؟ ام لا ؟؟


ستكون النتيجة ..




رمز:
no rows selected


... كما توقعت ... هذا المعامل غبي جدا .... يجب ان تبدأ من الصغير الى الكبير ..
لو وضعنا .... مابين 3000 .. و 3000 ؟؟؟

رمز:
select ename , sal from emp

where sal between 3000 and 3000 ;رمز:






لقد جربت .. ونجح المعامل .... أي عرض لي من لهم رواتب 3000 دولار ,,


رمز:
ENAME SAL

---------- ----------

SCOTT 3000

FORD 3000

جميل جدا ... معامل بسيط ... ولا داعي لشرحه اكثر من هذا ,,












2) المعامل IN








لماذا هذا المعامل ؟


لـ .... ممممم ... اعطيك مثال ,,

لو طلبت منك ان تعرض لي من رواتبهم 1100 ... و 1250 ... و 3000 ... فقط ..

مالذي تعمله ؟؟

هل تستطيع بالمعامل
between ؟؟ لماذا ؟

طبعا لا .. لا تستطيع ..

لانه وبكل بساطة هنا اكثر من قيمتين .. هذا سبب ..







اسمع احدكم يقول لي ... طيب .... سوف اعرض من رواتبهم ما بين 1100 و 3000


واقول له ... برافو يا ذكي ...

غغغغغغغغغغلطططططططططططط !! ... مع مرتبة الشرف ,,
,,







يوجد سبب
.. ماهو ؟؟ فكر قليلا ...









...


..

.







فكرت ؟؟ لا اعتقد .... نكمل ,,,


انا اخبرك ... لو كتبنا هذه الجملة ..

رمز:
select ename , sal from emp

where sal between 1100 and 3000 ;
انظر النتيجة ...

رمز:
ENAME SAL

---------- ----------

ALLEN 1600

WARD 1250

JONES 2975

MARTIN 1250

BLAKE 2850

CLARK 2450

SCOTT 3000

TURNER 1500

ADAMS 1100

FORD 3000

MILLER 1300رمز:






لا تعليق !!!


لن اشرحها ...






اذن .... لاحظنا المشكلة السابقة ...


انا اريد فقط ثلاث قيم ... اريد من هم رواتبهم تساوي ... 1100 او 1250 او 3000 دولار ..

لا اريد غيرهم ... هل استطيع بالمعامل
between ؟؟ لا طبعا ..

اليك الحل :

رمز:
select ename , sal from emp

where sal in (1100,1250,3000) ;رمز:






وهذه النتيجة ..


رمز:

ENAME SAL

---------- ----------

WARD 1250

MARTIN 1250

SCOTT 3000

ADAMS 1100

FORD 3000





هل لاحظت المعامل IN ؟؟؟


الان سوف اخبرك سرا .... اريدك ان تتذكره جيدا .. سوف اذكرك فيما بعد ...

هل قلت في السوال " اريد عرض الذين رواتبهم تساوي 1100 او 1250 او 3000 "




أو قلت "اريد عرض الذين رواتبهم تساوي 1100 و 1250 و 3000" ؟؟


ركز .. هناك فرق بين "و" ... وبين "أو"

ركز جيدا ... هل من المعقول ان نقول .. 1100 و 1250 و 3000 ؟؟

بالله عليك .. قلي أي موظف على مر العصور ... من عصر المكاتب والشركات الحجرية .. الى عصر المكاتب والشركات الحديثة ... هل يوجد موظف من الممكن ان يكون راتبه 1250 .. و 3000 .. و 1100 في نفس الوقت ؟؟؟

بالله كيف تجي ؟؟ لا عقل يقبل .. ولا منطق ,,

طيب ... الموظف احمد من الممكن ان يكون راتبه 1250 او 3000 او 1100 .... بالعقل تفهم ان الجملة صحيحة .... ممكن 1100 ... أو ......... 3000 ؟؟ أو 1250 ؟؟؟؟







يعني معقولة ومنطقية ,,,

















طيب ..


- اريد ان اعرض رواتب وأسماء و أرقام
كل من اسمه سميث أو كنق أو سكوت ...

ماهي الجملة ؟؟

بسيطة ... تستطيع ذلك ,,








....


...

..

.







هذه الجملة ..





رمز:
select empno , ename , sal from emp

where ename in ('KING' , 'SMITH' , 'SCOTT' ) ;

انتهينا ..
لن اعرض النتائج ,,
ولكن ...
سوف نتطرق الى المعاملات االاخرى ...
توقع ان الدرس السابع .... من اصعب الدروس التي ستواجهك ...
وسوف اضع كل طاقاتي فيه .. لكي تفهمه ان شاء الله
وسوف تتعلم فيه كل شيء ... عن هذه اللغة ..
يوجد احتمال انني سوف اضع الدرس الثامن ايضا عن لغة الـSQL
ترقبو .. وحلو التحدي ,,,
الى اللقاء ,,,
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
تابع دوره فى الاوراكل2
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» تابع دوره الاوراكل
» دوره فى الاوركل
» دوره فى الاوراكل 2
» دوره فى الاوركل3
» دوره فى الاوراكل

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات برامج نت :: :::: المنتديات التقنيـــــه :::: :: لغات البرمجه :: اوركل-
انتقل الى: