| | تابع دوره فى الاوراكل2 | |
| | كاتب الموضوع | رسالة |
---|
ملك الظلام
المشرف العام...}
| موضوع: تابع دوره فى الاوراكل2 الأحد أبريل 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 الأحد أبريل 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 الأحد أبريل 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 الأحد أبريل 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 الأحد أبريل 19, 2009 10:13 am | |
| يعني جميع الأعداد بما فيهم الثلاثة ,,
الان انظر الصورة 36 :
....
مممم ... انتظرني ,,, | |
| | | ملك الظلام
المشرف العام...}
| موضوع: رد: تابع دوره فى الاوراكل2 الأحد أبريل 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 | |
|
مواضيع مماثلة | |
|
| صلاحيات هذا المنتدى: | لاتستطيع الرد على المواضيع في هذا المنتدى
| |
| |
| تصويت | | هل اعجبكم هذا الاستايل؟ | نعم ,انه افضل بكثير من الاول | | 80% | [ 4 ] | لا بأس به , لكن الاول كان افضل | | 20% | [ 1 ] | هذا الاستايل سىء , الاول افضل | | 0% | [ 0 ] |
| مجموع عدد الأصوات : 5 |
|
أفضل 10 أعضاء في هذا المنتدى | |
تدفق ال | |
مواقع صديقة | |
|