الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

الدرس الخامس

Featured Replies

بتاريخ:

بسم الله الرحمن الرحيم


أخوانى فى الله .... فى البدايه اود ان اعتذر عن غيابى هذا و لكن اسألكم المعذره لأنى فى غايه الأنشغال فكما تعلمون لا رحمه فى العمل . و ان شاء الله سوف اعوض هذا الوقت فى الدروس القادمه..

توقفنا فى الدرس الماضى فى منتصف الفصل الثالث فى كتاب اوراكل وسوف نستكمل اليوم باقى الفصل و سوف ارفق اسئلة الأمتحان التى جاءت على هذا الفصل فقط لتتعلم كيفية الأجابه على مثل هذه الأسئله الخبيثه...

بسم الله نبدأ .

الدوال التحويليه Conversion Functions
------------------------------------------------------------------------

يوجد نوعين من التحويلات بالبيانات كما يلى:
1- التحويل التلقائى Implicit Data Type Conversion
2- التحويل الأجبارى Explicit Data Type Conversion

أما فى النوع الأول فتقوم اوراكل بهذا التحويل تلقائيا وهذا مثال لتحويل ال char الى number



Select last_name , job_id
From employees
Where salary = '24000';


هنا تم وضع الرقم بين single question و بهذا فهو char و ليس number ومع ذلك تظهر النتيجه صحيحه و هذا يدل على انه تم التحويل التلقائى من chat الى number ..

أما النوع الثانى فهو يحتوى على اكثر من داله تقوم بتحويل البيانات كما يلى:

1- التحويل من date الى char أو من number الى char To_char
2- التحويل من char الى number To_number
3- التحويل من char الى date TO_Date
سوف نقوم بالتركيز على الداله to_char فأنا اراها هامه جدا بالمقارنه بباقى الدوال

*** صيغه كتابة الداله فى حاله التاريخ:
---------------------------------------------------




TO_CHAR(date, 'format_model')




** format_model مدرج بالدرس جدول يحتوى على كافة ال format_model التى يجوز استخدلمها مع الداله.
** لابد من وضع ال format_model بين single question .

مثال:
كما نعلم ان طريه كتابة التاريخ او ظهورها كما يلى DD-MON-YY و الأن نريد ان نظهر التاريخ فى هذه الصيغه : ( 10-October-Monday-2007 ) مثلا هنا يتحتم علينا استخدام الداله TO_Char كما يلى:



Select to_char(sysdate,'dd-Month-Day-yyyy') as today
From dual;


انظر الى النتيجه و سوف تعرف اهميه هذه الداله ...

مثال أخر:



SELECT last_name,
TO_CHAR(hire_date, 'fmDD Month YYYY')
AS HIREDATE
FROM employees;


لاحظ فى ال format model وجود العامل fm الذى يمنع الزيرو على الشمال او المسافات التى ليس لها اى معنى.


** *** صيغه كتابة الداله فى حاله الأرقام :
--------------------------------------------------------



TO_CHAR(number, 'format_model')



** ** format_model مدرج بالدرس جدول يحتوى على كافة ال format_model التى يجوز استخدلمها مع الداله.
** لابد من وضع ال format_model بين single question .

مثال:



SELECT TO_CHAR(salary, '$99,999.00') SALARY
FROM employees
WHERE last_name = 'Ernst';




هناك بالكتاب جزء لشرح النظام RR و ال YY و كلنا نعلم مشكله عام 2000 التى حدثت بالتاريخ و التى جعلت اوراكل تعمل بالنظام RR

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

ننتقل الأن الى الدوال المركبه Nesting Functions

مثال



SELECT last_name,
UPPER(CONCAT(SUBSTR (LAST_NAME, 1, 8), '_US'))
FROM employees
WHERE department_id = 60;



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

*** الداله NVL
----------------------
تعتبر من الدوال الهامه جدا فهى تقوم بتحويل ال Null value الى قيمه فعليه سواء كانت رقم او تاريخ او char .. كما يلى مثلا




– NVL(commission_pct,0)
– NVL(hire_date,'01-JAN-97')
– NVL(job_id,'No Job Yet')





SELECT last_name, salary, NVL(commission_pct, 0),
(salary*12) + (salary*12*NVL(commission_pct, 0)) AN_SAL
FROM employees;


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

أخر جزء فى هذا الدرس هو Conditional Expressions
-----------------------------------------------------------------

الكل يعلم او يسمع عن الداله IF فهى مستخدمه فى كل لغات البرمجه نظرا لأهميتها الكبيره و انا ارى انه لأ غنى عنها .. و لكن لا يمكن استخدام هذا الدله فى لغة ال SQL و لكن يمكن استخدامها فى لغة PLSQL لأنها لغة برمجه .. اذا لابد من بديل يحل محل جمله IF فى لغة ال SQL و هذه البدائل هى الدوال الأتيه:
– CASE expression
– DECODE function

مثال
اريد ان اعطى حوافز للموظفين و لكن بناءا على الوظيفه . فاذا كانت الوظيفه مثلا IT_PROG يتم ضرب المرتب فى رقم محدد و هكذا ..



SELECT last_name, job_id, salary,
CASE job_id WHEN 'IT_PROG' THEN 1.10*salary
WHEN 'ST_CLERK' THEN 1.15*salary
WHEN 'SA_REP' THEN 1.20*salary
ELSE salary END "REVISED_SALARY"
FROM employees;



و هناك دالة أخر و هى نفس داله case و لكن بدل كلمه when و then يتم وضع ( , ) فقط كما يلى :



SELECT last_name, job_id, salary,
DECODE(job_id, 'IT_PROG', 1.10*salary,
'ST_CLERK', 1.15*salary,
'SA_REP', 1.20*salary,
salary)
REVISED_SALARY
FROM employees;




هذا و بالله التوفيق ..

الدرس القادم فى غاية السهوله و غاية الأهميه و هو
Group Functions
الواجب حل التمارين من 10 الى الأخر .. و سوف ارسل الحل بعد يومين منعا للغش :)
المرفقات اسئلة امتحان 007 على هذا الفصل فقط.

Single_Row_Funtion.pdf

بتاريخ:

معاك دائما ان شاء الله
ومستنينك على احر من الجمر
شكرا لك وبارك الله لك بعلمك وعملك

بتاريخ:

يااعيني عليك .. :)

الله يعطيك العافيه ..

بتاريخ:

جزاك الله كل خير يا بشمهندس سامح ، جهودك مباركة ان شاء الله وربنا يوفقك
تحياتي

بتاريخ:

السلام عليكم و رحمة الله و بركاته ..
جزاك الله خير يا استاذنا الفاضل سامح..

أسجل متابعتي و شكري لك على هذا الجهد الرائع..

وفقك الله لكل خير ..

[جاري حل الأسئلة]

  • بعد 2 أسابيع...
بتاريخ:

مشكوووووووووووووووووووووووووووووووور

  • بعد 3 سنة...
بتاريخ:

جزاك الله خيرا يا بشمهندش
وغفر لوالدتك ولجميع المسلمين

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.