السلام عليكم ورحمة الله وبركاته
أحبائي أعضاء رابطة المبرمجين العرب
مع درس النهارده ، واتمنى ان يكون فيه نقاش في الدروس اللي بتوضع ودا كان الهدف من الموضوع من البداية ...
فكما ذكرت ليس الهدف هو الشرح لكل منهج SQL فهذا امر يفعله أخواني ويفضلوني كثيرا في ذلك .
ولكن الهدف ان يكون هناك تبادل مناقشة وطرح الاسئلة لتعلم الفائدة على الجميع .
وبالطبع هذا الموضوع ربما لا ينفع من ليس له دراية ب SQl فأنصحه أن يتابع شرح أخونا dr.giga
على هذا الرابط
وهو شرح مبسط جدا لكل مبتدء فجزاه الله خيرا وجعله في ميزان حسناته .
الدرس الثاني :
* NVL & NVL2 : وهي تتعامل مع القيم الخالية التي لا توجد بها بيانات مثل COMM لا يوجد بها قيم والقيم الخالية تسمى NULL .
مثال على NVL :
SQL كودslect sal , comm , nvl(comm,0) from emp;
في هذا المثال نستعرض مرتبات الموظفين وعمولتهم وأعطينا القيمة صفر للموظفيبن الذين لا يأخذون عموله .
مثال على NVL2 :
SQL كودselect ename , comm , nvl2(comm,10,0( from emp;
في هذا المثال استخدمنا NVL2 وهي تستخدم لإعطاء قيمه لقيمه سابقة وايضا لقيم خالية ففي هذا المثال قمنا باستعراض اسماء الموظفين وعمولتهم وأيضا اعطينا للموظفين الذين يأخذون عملوة القيمة 10 ، والذين لا يأخذون أعطيناهم القيمة صفر .
سؤال : بماذذا تنفعنا ال NVL : بالطبع تنفعنا كثيرا فمثلا لو طلبنا منك أن تجمع لنا مرتبات الموظفين وعمولتهم .
سيكون الامر صعب جدا ، بل لن تنفذ العملية مع الموظفين الذين لا يأخذون مرتبات ويوجد في حقولهم قيم خالية ، لان محموع مرتب الموظف + قيمة خالية الناتج = بالطبع قيمة خالية .
اما اذا اعطينا للقيمة الخالية هذه مثلا الرقم 0 فاصبح بالتالي نستطيع الجمع والطرح وكل العمليات التي نريدها .
************************************************** ********************
* توضيح لبعض الرموز المستخدمة في الاوراكل عموما :ـ
'الدوت ' (.) تستخدم للفصل بين اسم الجدول واسم العامود .
SQL كودselect emp.ename from emp ;
الاندرسكور(_) تخدم للفصل بين الاسماء اذا كان اسم العامود أكثر من كلمة .
user_nameالفاصله (,) وتستخدم للاستعلام عن اكثر من عمود او جدول فيفصل بينهم بالفاصلة
SQL كودselect ename , sal from emp ;
سمي كولن ( وتستخدم لغلق أي كود في الاوراكل ومن دونهما لا يعمل الكود .
السنحل كوتيشن ( ' ' ) وتستخدم للاستعلام عن بيان حرفي داخل الداتا بيز أو ادخال بيان حرفي داخل الداتا بيز .