صفحة 7 من 10 الأولىالأولى ... 2345678910 الأخيرةالأخيرة
النتائج 91 إلى 105 من 143

الموضوع: استفسارات دورة الاوراكل ,,, تجدونها هنا ......

  1. #91
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: استفسارات دورة الاوراكل ,,, تجدونها هنا ......

    السلام عليكم .... الاحمر لي .. والاسود للفاضلين الاعضاء ^^ ,,,,,

    سوف احاول حل الاسئلة التي اراها صعبة قليلا ...

    اخ ...






    واجب الدرس الأول

    ج1
    العلاقه واحد لواحد (الهارد ديسك ورقمه - السياره ورقم الشاسيه بتاعها - الإنسان و قلبه)
    جميل .. رائع .. صح
    معلش الأمثله متشابهه لأنىوجدت صعوبه فى إيجاد أمثله للعلاقات واحد لواحد


    العلاقه متعدد لمتعدد (الهارد والكمبيوتر - السياره و السائق - الدواء و المريض)

    صح ^^ ...


    العلاقهمتعدد لواحد (المبنى و الشارع - المدرسه و الفصول - المستشفىوالطبيب)
    بس ما بينت لي ..... المبنى يحيط به عدة شوارع .... والشارع الواحد على مبنى واحد ؟؟

    او العكس ؟؟؟؟ بعضهم لا يعرف !! ....

    اعد التفكير ^^


    ج2
    المفتاح الأجنبى يكون فى جدول المدينه و هو يساوى المفتاحالرئيسى فى جدول الدوله
    صح ..
    ج3
    المفتاح الرئيسى هو مفتاح يتواجد فى الجدولليميز محتويات الجدول بعضها عن بعض و يشترط فيه ألا يتكرر أو يكون فيه خانهفاضيه
    جميل
    المفتاح الأجنبى هو مفتاح أو ترقيم يتواجد فى أحد الجداول للربط بينهو بين جدول أخر لمنع حدوث مشاكل ناتجه عن تكرار تواجد البيانات و من الممكن أنيتكرر فيه ويكون هو نفس قيم المفتاح الرئيسى فى الجدول الأخر
    لا بأس ... ممتاز
    قواعدالبيانات هى عباره عن وسيله لجمع البيانات معاً حتى يسهل إستخراج البيانات المطلوبهمنها بسهوله

    نظام قواعد البيانات العلائقيه هو نظام للربط بين البيانات بحيثيتم التغلب على مشاكل تكرار البيانات و وكبر حجمها
    جميل
    ج4
    جدول المبنى وجدول الشارع

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

    كنت اتمنى لو رسمت جداول .. ولكن لا مشكلة ....
    .
    وجزاك الله خيراً أخى على الإهتمام و أتمنى ان تصحح لىاخطائى حتى استطيع تداركها إن شاء الله

    تسلم ^^





    =================
    اخي ....

    تحديات الدرس
    الثالث



    التحدى الأول :

    الفرق بينالصفات ذات القيم المتعدده و الصفات المركبه

    الصفات ذات القيم المتعدده multiple value attributes هىالتى منالممكن أن تحتوى الخانه على أكثر من عدد مثال خانه لهارد الكمبيوتر حيثمنالممكن أن يحتوى الحاسبعلى أكثر من هارد



    الصفات المركبه composite attributes وهى التى من الممكنان تنقسم الى كائنات اصغر منها مثل الحاسب الآلى من الممكن أن ينقسم الىهارد ديسكو بروسيسور وبورده


    حبيبي انت فكرت في الكيانات وليس الصفات ... ما رأيك ؟؟

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

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

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

    اسبوع عند هذه واسبوع عند تلك .... هنا نقول ان العمود يعتبر صفة متعددة ....
    ,’,’,’,’,’,’,’,’,’,’,’,’,’,’,’,’,’,’,’,’,’,’,’,’,’,’,’,’
    الصفات المركبة .... هي صفة واحدة تعتبر .. ولكن تتجزء لاكثر ..

    يعني مثلا عمود .(لاحظ انني اتكلم عن اعمدة وصفات .. وليست كيانات ) ...

    عمود عنوان .... ولكن هنا لا نريد سرد للعنوان ! نريد العنوان ان يتجزأ الى : دولة ... مدينة ... حي ... شارع .. رقم السكن ....

    هنا لم يصبح العمود الخاص بالعنوان صفة متعددة !! بل صفة مركبة !!

    حاول التفكير في العمودين !! بالرغم من انهما للعنوان ولكن مختلفين !!


    التحدى الثانى :
    للأسف لم استطع أن ارسمفسأشرح ما رسمته على الورق
    النموذج هو نموذج مبسط لهيئة مواصلاتصغيره



    المواصلات
    تتكون من

    الأتوبيس- الميني باس- الميكروباس







    الموظفون


    وهم
    السائق- الكومسرى- المدير







    الخطوط



    خط المدينه يمر فيه (أتوبيس- ميكروباس)
    خط مكه يمر فيه (أتوبيس- مينى باس)

    بهذا الشكل

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

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

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

    -
    علاقة كيان بنفسه هى علاقة المديربالسائق حيث أنهم موظفون فتكون العلاقه موظف يدير موظفصح
    -
    لم استطع التوصل الى صفهمركبه فى هذا المثال

    صفة مركبة ...... مثلا ... كيان الموظف .... اسمه ... او عنوانه ... او ..... طريقة الاتصال به (جوال , منزل , فاكس .....) ...

    او في كيان المركبات .... رقم السيارة مثلا (رقم الرخصة , رقم اللوحة ...... او ما شابه ... اعرف ان مثالي عبيط .. ولكن ... اهم شيء المفهوم )


    التحدى الثالث
    نعم إنتهت المشكله حيث أن من الممكنالآن أن نقوم بعمل تعديلات فى أى من الجداول سواء بالتعديل أو الإضافه أو الحزف دونحدوث مشاكل مثل (حزف طبيب لأنه غادر موقعه فيتم حزف وجود المستشفى من الأساس و هذاخلاف للمراد)

    إنتهى و أتمنى أن أكون فهمت ما طلبت و ان اكون طبقتجيداً

    جميل ... وفيت وكفيت .. ارجو ان تتعمق اكثر في المفهوم ,, ولا تنساه ^^




    == == == == == == == ==
    اخي ....

    تعديل بسيط فى علاقة خط المدينه بالأتوبيس


    خط المدينه هو الكيان الضعيفوليس الأتوبيس لأنه بدون وجود أتوبيسات و سائقين لا يوجد خط

    واللهاعلم

    هو على حسب المفهوم ... وعلى حسب الي بيهمنا اكثر ...

    لو تفكيرنا على إنشاء الخط او لا ... فالخط كيان ضعيف ... لانه لا وجود له ... ولا لزمه لوجوده اذا لم يوجد المركبة ...

    هو السوال .

    هل اذا انعدمت الخطوط ..... خلاص تنعدم المركبات ؟؟؟ يمكن المركبات تبقى ... وتمشي على اليابسة بدون خط ..!!

    هل اذا انعدمت المركبات ... خلاص تنعدم الخطوط ؟؟؟؟ يمكن يصير مافيه مركبات .. ويصير خط .. للمشاه ؟؟؟؟

    وصراحة انا ارى انه اذا انعدمت المركبات .. تنعدم الخطوط هي الاقرب ....

    يلزمنا نظام واضح نفكر فيه ..... لان كلا المفهومين صحيحين .. وكلاهما خاطئين ....




    إستفسار

    فى الدرس الرابع فى مثال العلاقه واحد لواحدذكرت إنها نادراً ما تكون و أن الأفضل هو عمل جدول واحد كما فى مثالك يجمع الموظفالمدير بالقسم الخاص به بالمستشفى

    لى ملاحظه فى حالة وجود جدول واحدللمديرين والأقسام عند حالة الحزف مثلاً لمدير رحل عن القسم فسيتم حزف القسم ايضاًبالتبعيه فهل هذا صحيح؟
    شي اكيد ... اذا فيه تبعية ... فسوف يكون هنالك حذف للاثنين .. وعلى حسب نظامنا .

    لو قال لنا الزبون الذي يريد البرنامج "يجب ان يكون للقسم مدير ... يجب ان يكون ... واذا لم يوجد مدير فلا وجود للقسم " هنا نضع تبعية .. هذا اذا اصلا اعتبرنا انه من الصحيح وضع المدراء والاقسام في جدول واحد ... وارى ان يتم فصلهما ... افضل ....


    أخيراً أريد التأكد من أن هذا المكان هو المكانالصحيح لعرض الإجابات و شكر





    == == == == == == == == == ==

  2. #92
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: استفسارات دورة الاوراكل ,,, تجدونها هنا ......


    اخي براين ...
    واجب الدرس الثاني :

    س1 :اضرب لي 3 امثلة لم اذكرهالدرجةالعلاقات (واحد لواحد ... و متعدد لمتعدد ... و متعدد لواحد اوواحدلمتعدد ) .

    ج 1 :

    § واحد لواحد : مثلالعاصمة و الدولة فالدولة بها عاصمة واحدة و العاصمة ، عاصمة لدولة واحدة فقط .

    § متعدد لمتعدد : مثل الموظف و الزبون في شركة فالموظفيتعامل مع أكثر من زبون و الزبون يتعامل مع أكثر من موظف .

    § واحد لمتعدد او متعدد لواحد : مثل الأم و أبنائها ( الأشقاء ) فالأم لها أكثر من أبن و الأبناء جميعا أمهم واحدة .
    جميل .. تمثيلك ... رائع .....


    س2:في رأيك ... عندنا جدولين .. ويلزمنا ان نربط بينهما ... هما جدول المدينةوجدول الدولة
    اين نضعالمفتاح الاجنبي ؟ في أيجدول ؟

    ج 2 : في جدول المدينة فالدولة الواحدة بها أكثر من مدينة أما المدينة فهيبدولة واحدة فقط .

    صح ...

    س3:اشرح لي مايليبطريقتكالخاصة وبفهمك .. ولا يهمني اذا كان صحيحام خاطيء:

    § المفتاح الرئيسي ماهو ؟ ولماذانستخدمه ؟ ومتى نعرف ما اذا كان هذا مفتاح اساسي اولا ؟

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

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

    هي نظامتخزين للمعلومات بشكل مرتبط لا تكرار فيه . ( أعرف أنه تعريف سئ ! )
    لا بل عكس ... جيد ....
    § نظام قاعدةالبيانات العلائقية ما هو ؟

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

    جميل ^^


    == == == == == == == == == ==
    براين ايضا ...
    تحديات الدرس الثالث
    :

    التحديالاول :اذكر لي ما الفرق بينالصفات ذات القيم المتعددة والصفات المركبة؟

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

    رائع .. جميل ..... فهمت عليك ^^ .....

    وياريت لو اتيت بامثلة اكثر ^^




    التحديالثاني :ارسم نموذج واحد انت تختاره (غير ما ذكرت ) وارجو ان تراعيفيهوجودمايلي :


    • صفات مركبة وصفات مشتقة.


    • اكثر من كيان و بينهم علاقات .


    • علاقة كيان بنفسه .


    • كيانات رئيسية وفرعية .
    في الصورة المرفقة
    ............

    اعتقد انني صححتك من قبل ..


    التحديالثالث :في الصورتين 53 و 63 ... قلنا انه اختفت مشاكل ... ما هي هذهالمشاكل ؟ أقنعني .... هلاختفت فعلا املا ....

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

    مممممممممممممم أظن هذا كافيا ......... إقتنعت ؟؟ لا لم اقتنع ......

    بل انبسطت ^^



    == == == == == == == == == ==
    برضو براين :

    تحديات الدرس الرابع
    :

    التحديالثاني : مارأيك ... لماذا انااقترحت عليك ان تضع المفتاح الاجنبي في جدول الاقسام ؟؟ وما رأيك انت ؟
    لأنه إذا وضعناه في جدول الموظفينفسوف يكونعندنا صفوف خالية لأنه ليس كل موظف يدير قسم و نحن لم نفصل جدولالموظفينالمديرين عن جدول الموظفين فهم في جدولواحد .

    التحدي الاول :لماذاالمفتاح الاجنبي لا يكون خاليا ؟؟


    في الدرس الخامس

    بالعقل ... جرب واعمل جدولين وانظر الى المشاكل لو جعلت المفتاح الأجنبي خالي ... انظر مالذي يحصل !!
    ...

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

    .............

    ممممممممممممممممم

    .......

    ..

    لا أعرف


    == == == == == == == == == ==
    براين ايضا :
    تحدي الدرس السادس
    :

    ((1+2)*(5-3) + 2 )/(1+2/2) = ???

    ((3)*(2)+2)/(1+1) =

    (6 + 2 )/(2) =

    (8)/(2) =

    4

    صح ,,,




  3. #93
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: استفسارات دورة الاوراكل ,,, تجدونها هنا ......

    تكملة لاخي براين :
    تحديات الدرس السابع
    :

    التحديالأول : أريد عرضكل أسماء الموظفين التي تحتويعلى حرفالـ T مرتين .. يعني لو أن احدهم يدعى بـ SCOTT فسوف يعرض ... فهو اسميحتويعلى الحرف T مرتين ..
    ولو ان احدهميدعى TRRRRRRRRT فسوف يعرض أيضا لأنه يحتويعلى الحرف T مرتين وهكذا,,,,,,



    أنا أقول :

    select enam from emp where enam like '%t%t%' ;


    رااائع ... بيرفكت ..... ^^
    التحديالثاني :
    ما الناتج من العمليات التالية؟

    صح و صحو صح و صح و خطأ = ؟؟؟( خطأ )

    لان الـ "و" يجب ان تكون جميعها صحيحة ....
    خطأ أوصح أو خطأ أو صح = ؟؟؟( صح )
    او يجب ان تحتوي على قيمة صحيحة واحدة على الاقل !!
    نفي نفي نفي نفي نفي الخطأ = ؟؟؟( صح )
    الحل .. مفصل :

    نفي (نفي (نفي (نفي (نفي الخطأ) ) ) )

    نفي (نفي (نفي(نفي(صح) ) ) )

    نفي (نفي (نفي (الخطأ ) ) )

    نفي ( نفي (الصح) ) )

    نفي (الخطأ )

    صح


    حل صح



    التحديالثالث :
    اريدعرض اسماء ورواتب الموظفين الذين راتبهم اكبر من 1000واقل من 5000بدون استخدام Between

    Select enam,sal from emp

    Where sal > 1000 and sal < 5000 ;

    صح ولكن أين اليساوي ؟ أي اكبر من او يساوي ... واصغر من او يساوي ... اوكيه ^^ ,.,.,.,.

    التحديالرابع:
    اريدعرض اسماء ورواتب الموظفين الذين اسمائهم KING أو SCOTT أو TIGER بدوناستخدام IN

    Select enam,sal from emp

    Where enam ='TIGER' or enam ='SCOTT' or enam ='KING' ;

    رائع ^^. ....

    التحديالخامس :
    هلتشاهد الصورة 47 ؟؟ وهي ثلاث شروط ... برأيكمالناتج اذا كان بينهم OR ؟؟ وما الناتج اذاكان بينهم AND

    إذا كان OR سيكون الناتج كل الأسامي دون تكرار أي :

    ALLEN , KING , BLAKE , FORD , WARD , SCOTT , JONES , ADAMS , TURNER , MILLER , MARTIN , CLARK , SMITH , JAMES .

    إذا كان
    AND سيكون الناتج الأسامي الموجودة فيالثلاث مربعات فقط أي المشتركة في الثلاث مربعات ، أي ADAMS فقط .


    صح ... جميل



    التحديالسادس :
    .... التحدي هو ان تشرح لي بمثال .. منعندك .. لو هناكANDوORوAND ... مالذي سوف يحدث اولا ؟؟ولماذا ؟

    سأفكر و أرسله فيما بعد

    ...............

    ................



    التحديالسابع :

    لماذا ظهرت النتيجة السابقة ؟؟لماذاKINGوWARDهما اللذان عرضافقط ؟؟

    يجب أن يكون الإسم من أربع حروف و هناك راتب إضافي

    أو

    أن يكون الراتب أعلى من 3000 و لا يوجد راتب إضافي

    هذه الشروط لا تتوافر الا في هذين الاثنينحيث WARD يتكوناسمه من 4 أحرف و لديه 500 راتب إضافي ، أما KING فراتبه أعلى من 3000 و ليس لديهراتب إضافي ( و اسمه مكون من اربع حروف صدفة فقط ) .

    صح ... ولو وضحت اكثر من ناحية البقية .... لكان افضل ....



    == == == == == == == == == ==

  4. #94
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: استفسارات دورة الاوراكل ,,, تجدونها هنا ......

    اخي هورساكا :
    تحديات الدرس الرابع


    التحدى الأول :لماذا المفتاحالاجنبي لا يكون خاليا ؟؟

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

    لكن هل تصدق ان الجدول الذي نعمل عليه والذي يسمى
    EMP ..... لا يحتوي علاقة مدير موظف !!

    ولو وجدت لما رأيت انه خالي ... بمعنى اخر ...
    MGR ....عمود به قيم خالية .. لو اعتبرناه مفتاح أجنبي ... لا يجوز ان يكون خاليا ....

    ولكن نضع مثلا نفس رقم الموظف !! ..... أي انه مدير نفسه ... وهي صحيحة .. هذا والله اعلم ,,,

    اذا لم يكن هنالك مدير لقسم ما .... عادي .... يكون الصف هنالك زائد في جدول الأقسام .. وحتى يأتي موظف .. نضيف له عادي ... الخوف ليس من الاباء الذين لا يملكون ابناء ... بل الخوف في الابناء اليتامى ... هنا المشكلة .. فعدم وجود مدير للقسم مع وجود المفتاح الأجنبي (رقم القسم) في جدول الموظفين .. لابأس به .. ولا يوجد تلك المشاكل ....
    .
    التحدى الثانى :مارأيك ... لماذا انا اقترحت عليك ان تضع المفتاح الاجنبي في جدول الاقسام ؟؟ وما رأيك انت؟
    لن تفرق والله اعلم لو وضعناها فى جدول الموظفين حيث لو ترك الموظفالقسم سيكون مدير قسم أخر مثلاً و فى نفس الوقت سيكون للقسم مدير أخر

    لا لا .. هذا اذا افترضنا ان علاقة القسم والمدير ... واحد لمتعدد !!

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

    وعلاقة موظف- قسم .. وهي علاقة "عمل "...

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

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

    وهو رقم القسم .. لماذا نضيف رقم قسم اخر طالما ان المدير يعمل تحت قسم 10 مثلا ويدير القسم 10 !!

    يعني بالعقل بالمنطق ... هذا غباء ... خلاص ... يصير
    D_no مفتاح أجنبي للعلاقتين ... وبلاش نضيف مفتاح أجنبي ...

    ولكن لا ادري هل هذا يجوز او لا ...

    طيب ... المسئلة ليست هنا !!

    المسئلة هي :

    لو انه يجب ان نضع المفتاح الأجنبي ... أين نضعه ؟؟ في جدول الموظفين في حالتنا هذه او في جدول الأقسام ؟؟

    صراحة لو وضعتها في جدول الموظفين ... فكر قليلا .... لنسميه
    mgr_dept_no ..... أي يدير القسم رقم كذا .....

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

    في الحقيقة نضعه في حالتنا هذه بالذات ... في جدول الأقسام ....

    اذا لم تفهم .. جرب واعمل الجدولين وضع قيم من رأسك ... وجرب ضع المفتاح الأجنبي في جدول الأقسام .. فماذا يحدث .. وضع المفتاح لاجنبي في جدول الموظفين .. ماذا يحدث !!




    == == == == == == == == == ==
    الاخ هورساكا :

    قال الاخ برايني :
    تحديات
    الدرس الرابع :

    التحديالثاني : مارأيك ... لماذا انا اقترحت عليك ان تضعالمفتاح الاجنبي في جدول الاقسام ؟؟ وما رأيك انت ؟
    لأنه إذاوضعناه في جدول الموظفينفسوف يكون عندنا صفوف خالية لأنهليس كل موظف يدير قسم و نحن لم نفصل جدول الموظفينالمديرين عن جدول الموظفين فهم في جدول واحد .



    بعدقراءة رد الأخ brainy أظن ان معه حق فى حالة عدم فصل جدول الموظفين عن جدولالمديرين والتى هى حالتنا هنا فجوابه اصح

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

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


    == == == == == == == == == ==
    الاخ براين :

    تحديات الدرس الثامن
    :

    التحديالأول :



    لو كتبنا الأمر التالي ....



    select initcap(upper(lower('HI My friends ^^'))) from dual ;



    مالذي سوف ينتج ؟؟؟؟

    ولماذا نتج ما نتج ؟؟ مع تفصيل شرحك ,,,,



    ياسلام على رأيك ^^ .... وحدة وحدة ...

    في رأيي نمشي معاه واحدة واحدةيعني نقول :

    Select initcap(upper('hi my friends ^^')) from dual ;

    يعني حذفنا أكثر دالة داخلية اللي هيه lower و نضع مكانها اللي هترجعه ، ثم نحذف الدالة اللي بعدها ، يعني 'upper' و نضعمكانها اللي هترجعه ، كده :
    يا سلام ... اكثر دالة داخلية .... وهي التي في الاعمق ....
    Select initcap('HI MY FRIENDS ^^') from dual ;

    تمام ؟ و بعدين هنبقى وصلنا للدالة الليبرة يعني initcap و نضع مكانها النتيجة النهائية اللي فيرأيي هتكون كده :

    Initcap ('HI MY FRIENDS ^^')

    ---------

    Hi My Friends ^^


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

    يا سلام .. رائع ... ممتاز .. اعجبتني وما زلت .. جزيت الف الف خير .. ماشاء الله عليك ...



  5. #95
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: استفسارات دورة الاوراكل ,,, تجدونها هنا ......

    التحدي الثاني
    :



    محترف ؟؟ ذكي ؟؟عبقري ؟؟ تحب التحديات ؟؟
    تحدي للمحترفين فقط !! اكرر للمحترفين ,,...

    اريد ان اعرض أسماء الموظفين
    وأريد عرض أسماءالموظفين ماعدا الحرفالأخير مقصوص منه
    وأريد عرض الحرف الأخيرمن أسماء الموظفين

    في عمود واحد يدعى all_of_them !!



    انا فكرت ....
    ثم فكرت أيضا .....
    وأيضا فكرت ..............

    ...
    ثم وصلت إلى هذه النتيجة :




    Select Substr ( ename , 0 , length ( ename ) - 1 ) || ' + ' || Substr ( ename , length ( ename ) – 1 , 1 ) || ' = ' || ename "All_of_Them" from emp ;

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


    All_of_Them

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

    SMIT + T = SMITH

    ALLE + E = ALLEN

    WAR + R = WARD

    JONE + E = JONES

    MARTI + I = MARTIN

    BLAK + K = BLAKE

    CLAR + R = CLARK

    SCOT + T = SCOTT

    KIN + N = KING

    TURNE + E = TURNER

    ADAM + M = ADAMS



    All_of_Them

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

    JAME + E = JAMES

    FOR + R = FORD

    MILLE + E = MILLER



    14 rows selected.


    يعني حل رائع جدا .. ولكن غلطة صغيرة ....

    اليك الحل ... بالتعديل البسيط :

    SQL> Select Substr ( ename , 0 , length ( ename ) - 1 ) || ' + ' || Substr ( ename , length ( ename ), 1 ) || ' = ' || ename "All_of_Them" from emp ;

    ياسلام .. رائع ... ^^ اسعدني تفكيرك كثيرا
    ..






    التحدي الثالث :

    هو كيف جاء هذا الكسر ..؟؟ولماذا جاء ؟؟وما هو هذا الكسر اصلا ؟؟؟؟؟ فسر !!

    بما أن شهر أكتوبر ( شهر 10 ) يتكون من 31 يوم

    وبما أن الدالة تحسب الفرق بين التواريخ بالأشهر

    إذا ستعتبر الفرق يساوي

    1 + 1/31 =

    1 + 0.03225806451612903…. =

    1. 03225806451612903


    يا سلام عليك .. رائع .

    هو الفرق يوم وشهر ...


    قلنا شهر يعني 1

    واليوم هو 1/31 من الشهر ..

    صح .... رائع .. يعني 1 شهر + 1/31 شهر .. = العدد الذي ظهر امامنا ...

    رائع ... ماشاء الله عليك ^^


    == == == == == == == == == ==
    الاخ براين :

    يقول هورساكا :
    تحديات الدرس الرابع

    التحدى الأول :لماذا المفتاح الاجنبي لا يكون خاليا ؟؟

    لأن المفتاحالأجنبى يكون للربط بين جدولين فإذا كان فارغاً لم يكن ربط حقيقى و ايضاً من صفاتالمفتاح الأجنبى أنه يؤخذ من قيم المفتاح الرئيسى لجدول أخر و من المعروف انالمفتاح الرئيسى لا يكونخالياً


    ويعلق الاخ براين على كلامه :

    أخي horoska لا أعتقد أنالسبب هو أن المفتاح الرئيسي لا يكون خاليا ، يعني ممكن يكون المفتاح الرئيسي ليسبه قيم خالية لكن المفتاح الأجنبي فيه قيم خالية ما المشكلة ؟؟ مثلا المفتاحالرئيسي به القيم 1 2 3 4 5 6 7 8 و الأرقام 1 3 5 هي خاصة مثلا بالمديرين فحيننربط ، سنحتاج هذه الثلاثة أرقام فقط و الباقي لن نحتاجه ، و ممكن تكون في خانةمثلا لا نحتاج فيها هذا الربط فتصبح خالية و هذا لن يؤثر على المفتاح الرئيسي فهومحتفط بقيمه كما هو . يعني إذا عبرنا رياضيا نقول : مجموعة قيم المفتاح الأجنبيتنتمي إلى مجموعة قيم المفتاح الرئيسي فيمكن أن تكون أصغر منها ، تساويها أو خالية، معرفش وصلت ولا لا .

    هذا رأيي و لا أدري صح أم خطا

    الكلمة فيالاخر لأستاذنا
    لما يفضى كده ان شاء الله

    .....

    نسيت السوال ...

    اها .. طبعا كلامك يا هورساكا جميل ... يعني كيف يكون المفتاح الرئيسي خالي ؟

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

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

    كلاكما لم يوضح مالمشكلة !
    !



    قلت يا هورساكا ... سوف يلغى الرابط ... كلامك صحيح ... يجب ان يكون هنالك قيمة .... ولم توضح لي المشاكل التي سوف تنتج جراء القيم الخالية ....

    مثلا .... القسم الموظف .. طبعا المفتاح الأجنبي في جدول الموظفين ...

    لو كان احدهم رقم قسمه خاليا ... يعني بالعقل هل يوجد موظف بالدنيا لا يعمل ولا ينتمي الى قسم او تخصص ؟؟

    تقنيا سوف تولد ماذا ؟ الصفوف اليتيمة ..

    الان الجدول الذي به المفتاح الأجنبي يسمى بالابن ....

    والجدول الذي به المفتاح الأساسي لذلك المفتاح الأجنبي يسمى الاب ....

    اذا كان اب .. لا يوجد له ولد .. في حالتنا لا مشكلة .... لا يلزم له رعاية ...

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

    المهم جدول الأقسام الاب .. وجدول الموظفين الابن ...

    لو ابن مالوش اب .... خالي المفتاح الأساسي .... هذه هي الحالة التي ندرسها ..

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

    == == == == == == == == == ==

  6. #96
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: استفسارات دورة الاوراكل ,,, تجدونها هنا ......

    الاخ هورساكا :
    تحدى الدرس السادس


    ((1+2)*(5-3) + 2 )/(1+2/2) =4

    صح ^^


    == == == == == == == == == ==
    الاخ هورساكا ايضا :
    تحديات الدرس
    السابع
    التحدى الأول
    select name from emp
    where name like '%T%T%' ;

    رائع ^^
    التحدى الثانى
    صح و صح و صح و صحو خطأ = خطأ

    خطأ أو صح أو خطأ أو صح = صح

    نفي نفي نفينفي نفي الخطأ = صح


    جميل ^^


    اليك التحدي الثالث :
    اريد عرضاسماء ورواتب الموظفين الذين راتبهم اكبر من 1000 واقل من 5000 بدون استخدام Between
    select ename sal from empl
    where sal<5000 and sal>1000 ; (
    ينفع؟where 5000>sal>1000)
    جميل ^^ .. بس ما ينفعش كلامك الثاني لان اللغة مصممة كما رأينا ... أي ان where 5000>sal>1000 صحيح رياضيا خاطئ في هذه اللغة ...


    التحدي الرابع :
    اريد عرض اسماء ورواتب الموظفين الذين اسمائهم KING أو SCOTT أو TIGER بدون استخدام IN
    select ename sal from empl
    where ename like 'KING' OR 'SCOTT' OR 'TIGER' ;


    جميل ... ^^ .. بامكانك تقول .. يساوي وليس
    like


    التحدي الخامس :
    هل تشاهدالصورة 47 ؟؟ وهي ثلاث شروط ... برأيك مالناتج اذا كان بينهم OR ؟؟ وما الناتج اذاكان بينهم AND
    إذا كان بينهم AND سيكون الناتج ADAMS فقط
    إذاكان بينهم OR سيكون الناتج مجموع الأسماء كلها فى الشروطالثلاثه


    جميل ^^


    التحدي السادس ....
    ا... لتحدي هو انتشرح لي بمثال .. من عندك .. لو هناك AND و OR و AND مالذي سوف يحدث اولا ؟؟ ولماذا؟؟
    أظن والله أعلم أن الذى سيحدث أولاً هى AND الأولى ثم AND الأخيره ثم OR والله أعلم
    صحيح ... انا لا اذكر من له الاولوية .. هل الـ "و" ... او الـ "او" ؟؟

    اعتقد الـ "و" هاه ؟

    اذا الـ "و" هو ذو الافضلية ... وهذا ما عتقده .... فان حلك صحيح ... بس ياريت لو اعطيتني مثال من رأسك ....

    يعني مرة ثانية .. الـ
    and الاولى التي تواجهنا ... ثم and الاخيرة ... ثم OR .....


    التحدي السابع ....
    لماذا ظهرت النتيجةالسابقة ؟؟ لماذا KING و WARD هما اللذان عرضا فقط ؟؟
    اتحداك ان تقنعنيلماذا .. أقنعني بطريقتك .. وسوف أحاول فهمك !!
    ( sal>3000 and comm is null )
    or
    (ename like '____' and comm is not null )

    ظهرت النتيجه بعرض KING و WARD فقط لأن (أحدهما أو كلاهما راتبهأكبر من 3000 و يأخذ مرتب إضافى فى نفس الوقت) و ( احدهما أو كلاهما أسمه من اربعأحرف ولا يأخذ مرتب إضافى)
    أى أن الناتج هو كل موظف راتبه أكثر من 3000بشرط أن يكون له راتب إضافى بالإضافه الى كل موظف يتكون أسمه من أربع أحرف بشرط ألايكون له راتب إضافى


    فيه خطأ ..

    عرضا لانهما توفرت فيهما الشروط ....

    كنج .... راتبه فوق الثلاث الاف .. و مرتبه الاضافي خالي ......

    لذلك فهو جدير بالعرض ....

    الاخر وارد ...... لا يملك راتب فوق الثلاث الاف .. وليس مرتبه الاضافي خالي ....

    لم يستوجب الشروط ...... ولكن هنالك شروط في الكفة الثانية ... كفة "او" .....

    وهي ... اسمه اربع حروف ...

    ويملك مرتب اضافي ...

    اذا مش فاهمين .... اعملو هيك :

    كنج :
    Sal >3000 = true

    Comm is null = true

    Ename like'____' = true

    Comm is not null = false
    الان نستبدل ..... بالقيم ....


    (sal >3000 and comm is null ) or (ename like '____' and comm is not null)

    = (true and true ) or ( true and false )

    = ( true ) or ( false )

    = true

    اذن ... نعرضه .....

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






    == == == == == == == == == ==
    ويبدأ الاخ براين :

    تحديات
    الدرس التاسع :

    التحديالاول ...

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

    10.25عشرة دولاراتوربع ...

    20.5عشرون دولارونصف ...

    1000000.945مليون دولار وتسع مئة وخمسةواربعون من العشرة ...

    يوجد جدوليدعى بـBANKمثلا .....

    اريد عرض النتائج بهذهالصورة


    $0,00,00,10.25


    $0,00,00,20.5


    $1,00,00,00.945



    وهلمجر !!

    فرضت أن الجدول Bank به عمود يدعى acc فيه أرصدة الموظفين فيكونالأمر كالتالي :

    Select to char(acc , '$0,00,00,00.999') from bank ;




    رااائع ... جميل ....




    التحدي الثانييقول ...


    كود:

    select to_char(sysdate,'ddsp/mmsp "or" ddth/mmth "or" ddspth "from" mmspth "month" ') from dual ;





    يوجدكلمةmonth ... الم يكن من المفترض ان تتحول الى شهر؟؟؟

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

    three/one or 03rd/01st or third from first month

    لماذا لم تتحولكلمةmonthالى الشهر فيتاريخsysdateأي لماذا لم تتحولالىJanuaryمثلا؟؟؟



    لأنها موضوعة بداخل علامةالتنصيص الثنائية التي تعني إعرض ما بداخل العلامة كما هو فأي شئ يكون مكتوببداخلها يعرض كما هو تماما حتى و لو كان من الكلمات المحجوزة .


    ياسلاااام .... حلو ... جميل ...

    حتى لو كانت الكلمات المحجوزة .. ماهي الكلمات المحجوزة ؟؟ هي كلمات معروفة لدى
    SQL أي اذا شافها يعمل عمل معين ...

    ولا يجوز ان نسمي جداولنا , ومتغيراتنا , وامورنا .... باسماء محجوزة .... مثل هذه الاسماء
    SELECT

    ومثلها في مثالنا السابق ....... يعني انتبهو ...

    قلنا ان التنصيص .. يعني " اعرض كما هي عليه ..."

    ياسلام عليك ..






  7. #97
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: استفسارات دورة الاوراكل ,,, تجدونها هنا ......

    التحدي الثالث
    !!


    كود:

    select round (to_date('16/12/2006','dd/mm/yy'),'month') from dual;





    مالنتيجة المتوقعة ولماذا؟؟



    النتيجة ستكون 1/1/2007 لأن اليوم أكبر من 15 إذا يقرب التاريخ إلى الشهرالتالي ، و بما أن الشهر الحالي هو ديسمبر أي آخر شهر في السنة إذا سيقرب التاريخإلى الشهر الأول في العام 2007 و هو أول شهر بعد الشهر الثاني عشر في العام 2006 .




    رائع .. جميل .... تعجبني ^^




    التحديالرابع ...
    ..
    اريد الجملةNO MANAGER !! اذا كان القيمة خاليةفيعمودmgr
    وكتبنا هذه الجملة والتي كانتخطأ

    كود:


    select ename,NVL(mgr,'NO MANAGER') from emp where ename ='KING';



    نريد التصحيح ,,,


    ممممممممم

    صعب .............

    جاري التفكير ...


    ^^ ... اليك الحل بكل بساطة ....

    select ename, NVL(to_char(mgr) , 'NO MANAGER') from emp where ename ='KING';


    حولت عمود المدير .. الى نص .... وعملنا اللازم ^^

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

    التحديالخامس :

    كود:

    select sum(sal+comm) from emp ;





    كانت نتيجتها اقل من مجموعالرواتب .. وهي من المفترض ان تكوناكثر !!

    فسر لي .. لماذا ظهرت النتيجة اقل؟؟

    واخبرني مالحل .. وماالعمل ؟؟ ما الجملة البديلة؟؟



    ظهرت نتيجة أقل لأن الدالة sum حسبت الرواتب الكليةللموظفين الذين يمتلكون قيم غير خالية في رواتبهم الإضافية فقط ، أي الموظفينالثلاث الذين يمتلكون رواتب إضافية و الموظف الذي راتبه الإضافي يساوي صفر . وأعتقد لحل هذه المشكلة ممكن كتابة هذا الأمر :

    Select sum(sal) + sum(comm) from emp ;
    صحيح .....

    والمشكلة الأساسية ... هي ان الدالة تتجاهل القيم الخالية ..... ولا تدخلها في الحسبة ... يعني ...

    لاحظ معي ... احدهم راتبه 1000 و راتبه الاضافي خالي ...

    1000 + خالي = خالي ....

    والاخر مثله خالي ... وثالث خالي ... فدالة الجمع ... ذكية .... اذا وجدت خالي ... تجعله اوتوماتيكي صفرا !! لو يوجد دالة ضرب ..... فسوف تجعله واحد ...

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

    والواحد عنصر محايد في عملية الضرب ولا يؤثر في البقية ...



    == == == == == == == == == ==
    ويرجع الاخ براين :
    أعتقد أني عرفت حل التحدي الرابع

    ليس صعبا !!!

    التحديالرابع ...

    .. اريد الجملة NO MANAGER !! اذا كان القيمة خالية فيعمود mgr

    وكتبنا هذه الجملة والتي كانتخطأ

    كود:



    select ename,NVL(mgr,'NO MANAGER') from emp where ename ='KING';


    نريد التصحيح ,,,

    نحول الرقم إلى نص حتي نضع نص أيضا في المدخل الثاني :



    select ename,NVL(to_char(mgr,'9999'),'NO MANAGER') from emp where ename ='KING';

    جميل ياهذا ^^


    == == == == == == == == == ==
    الاخ هوروساكا :
    تحديات الدرس الثامن
    :

    select initcap(upper(lower('HI My friends ^^'))) from dual ;
    مالذي سوف ينتج ؟؟؟؟
    سيتم تنفيذ الداله initcap لأن أولاًسيتم أخذ ال lower case للجمله ثم يتم أخذ ال upper للجمله و أخيراً يتم تنفيذ ال initcap على الجمله لأنها أخر داله و هو ما يظهر بالنتيجه
    جميل ... والنتيجة هي للدالة initcap ..... ارجو ان يكون هذا ما تقصده ..
    التحدىالثانى
    select concat(concat(concat (substr(ename,1,length(ename)-1),'+'),concat(substr(ename,length(ename),1),'=')),ename)all_of_them from emp;
    حل أخر
    select concat (substr(ename,1,length(ename)-1),'+')||concat(substr(ename,length(ename),1),'=')||ename as all_of_them from emp;


    يااااسلام ... حلول راائعة ... ماشاء الله ... جميل ^^ ... جميل تلاعبك باللغة يا هذا ....
    التحدى الثالث
    لأنه قام بقسمة اليوم الزائد علىشهر (على 30) فنتج هذا الكسر حيث أن البرنامج يقوم بتحويل الايام و السنين الى شهورو الدليل انه يتم تحويل كل سنه الى 12 شهر



  8. #98
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: استفسارات دورة الاوراكل ,,, تجدونها هنا ......


    التحدى الرابع
    select TRUNC((months_between(sysdate,hiredate))/12,0) as years,trunc((trunc(((months_between(sysdate,hiredate))/12)-(TRUNC((months_between(sysdate,hiredate))/12,0)),2))*12,0)
    as months,trunc((((trunc(((months_between(sysdate,hiredate))/12)-(TRUNC((months_between(sysdate,hiredate))/12,0)),2))*12)-(trunc((trunc(((months_between(sysdate,hiredate))/12)-(TRUNC((months_between(sysdate,hiredate))/12,0)),2))*12,0)))*30,0)as days ,hiredate,sysdate from emp;

    طبعاً واضح إنى عملت جملهكبييييييييييييره قوى بس ده اللى قدرت عليه لما حاولت لوحدى
    لكن لما لاحظت إنكإستخدمت الداله mod بكل بساطه لم اصدق نفسى على كل الوقت الضائع


    الأعوام و الشهور عملتهامثلك بالظبط تقريباً ولكن فى الأيام أنظر الفارق

    طريقتك فى الايام
    TRUNC( MOD(months_between(sysdate,hiredate)*31,31),0) days
    معكوكتى
    ,trunc((((trunc(((months_between(sysdate,hiredate))/12)-(TRUNC((months_between(sysdate,hiredate))/12,0)),2))*12)-(trunc((trunc(((months_between(sysdate,hiredate))/12)-(TRUNC((months_between(sysdate,hiredate))/12,0)),2))*12,0)))*30,0)



    لكنىلم أفهم لماذا ضربت فى 31 ثم سويت mod مع 31 مره أخرى أرجو الشرح


    انت اشرح لي مالذي عملته !! ^^

    لست بفائق ان اتتبع طريقتك الجميلة والذكية ^^

    انصحك بنصيحتين ... فكر بسهولة ... وفكر بصعوبة ^^ ......

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

    واذا لم يكن لديك ادوات تعرفها .. فكر بصعوبة .... انت فكرت بصعوبة لانك تملك اداة لا تعرف أين تستخدمها وهي
    mod

    جميل حلك ^^ ولكن ..... خطأأأأأأأأأأأأأأ ^^

    فقط الايام خطأ ^^

    جرب ... مايلي ...

    تاريخ اليوم مثلا 23/02/2006 ... الفرق بينه وبين التاريخ التالي : 22/02/2006

    هو يوم .. والمفترض ان يكون الحل هو واحد ... انظر بعد التجارب .... :
    SQL> select TRUNC( MOD(months_between(sysdate,'22/02/06')*31,31),0) days from dual ;



    DAYS

    ----------

    1
    انظر طريقتك .... :
    SQL> select trunc((((trunc(((months_between(sysdate,'22/02/06'))/12)-(TRUNC((months_between(sysdate,

    '22/02/06'))/12,0)),2))*12)-(trunc((trunc(((months_between(sysdate,'22/02/06'))/12)-(TRUNC((months_b

    etween(sysdate,'22/02/06'))/12,0)),2))*12,0)))*30,0)as days from dual ;



    DAYS

    ----------

    0
    لا حول ولا قوة الا بالله ^^

    طبعا .. انا لا اريد ان احاول بطريقتك .. ليست لانها خاطئة ... اعتقد والله اعلم بامكاني ان اوجدها .... بدون
    mod

    لكن بما اننا نملكها ... فلنشرح الجواب ...

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

    الشهر الواحد كم سنة ؟؟ لا تضحك يا هذا ... انظر الى الاجابة

    الشهر الواحد = 1/12 سنة ..

    الست اشهر = 6/12 سنة ... أي نصف سنة ...

    قال لك مثلا ..... 11 شهر .... كم يساوي سنة ؟؟

    11/12 .... ويطلع كسور .. طبعا لا نريد عرض الكسور في مثالنا .... اذن 0 سنة واحدى عشر شهرا ....

    أي في النهاية ... هو طلب السنين ... = صفر سنة

    لو 13 شهر ... أي واحد سنة .... (وشهر)

    مالذي عملته ؟؟ قسمت على اثنى عشر .... واخذت العدد الصحيح ....

    في دالة
    trunc .... نأخذ العدد الصحيح اذا قلنا احد الامرين ...

    Trunc(any , 0)
    او
    Trunc(any)
    انظر السنين كيف حلها :
    TRUNC((months_between(sysdate,hiredate))/12,0)
    بعد ايجاد الفرق .. وليكن 13 شهر .... نقسم على اثنى عشر .. اذن .... سنة .... !!

    طيب ... الباقي ماهو ؟؟؟ شهر صح ؟؟؟ اذن نأتي بالشهر كما يلي :
    trunc(
    (trunc(((months_between(sysdate,hiredate))/12)-(TRUNC((months_between(sysdate,hiredate))/12,0)),2))*12,0)

    أي نحسب الفرق بين التاريخين وهو .. 13 شهر ..

    اخذنا منها كم سنة ؟؟ سنة واحدة(12 شهر)

    كم بقي ؟ شهر واحد ....

    انظر الى ناتج البنفسج اذا كان الفرق في الشهور = 13

    كم ناتجه ؟ نعم .... ناتجه هو ......
    1.08333333

    الان في الاخصر ... كم الناتج ؟؟ 13/12 =
    1.08333333

    لكن في الاخضر الغينا الكسور .... ويصير الناتج 1 ....

    ياسلام .. الفرق بين البنفسج والاخضر هو .... 0
    .08333333

    وهو عدد السنين المتبقية .... أي
    0.08 سنة (لاننا قسمنا سابقا على 12) ولقد قربنا لكسرين اثنين فقط وفقا للاصفر ...

    من سنة الى شهر كيف نحول ؟؟؟ نضرب في 12 وكانت النتيجة هي : 0.99999996

    ومع التقريب بدون كسور (للون الاسود) ..... فيصبح النتيجة النهائية = 1


    الايام ....
    TRUNC(
    MOD(months_between(sysdate,hiredate)*31,31),0)

    يكون في علمك ... لا ادري كيف عملت هذه ...

    الافكار لا تبقى في الرأس صدقني .
    .

    سوف اتذكر ......
    ......
    ..... لماذا عملت حينها هذه الحركة ؟؟ ....؟؟؟؟؟
    ........
    اها .... مثلا شهر ويوم ... أي بمعنى اخر ...
    1.03225806 شهر

    انظر الى الاخضر ... ضربنا الفرق ..... في 31 لتحويله الى ايام ..

    اي مثلا شهر ويوم ... او
    1.03225806 شهر ... اصبحو الان : 31.9999999 بمعنى اخر 32 يوم ..

    الان ... باقي قسمة 32 على 31 هي واحد .....

    الان لماذا عملنا هكذا ؟ لو الفرق سنة وشهر ويوم .....

    أي
    13.0322581 شهر .....

    ( 13.0322581
    شهر = سنة وشهر ويوم ..... )

    نقصنا 12 شهر للسنة الواحدة....

    نقصنا 1 شهر .. للشهر الواحد... الان ذهب 13 شهر بالتمام .... صح؟

    بقي 0
    .0322581 شهر .... لليوم الواحد

    وقد استخدمنا دالة باقي القسمة ... حولنا
    13.0322581 شهر الى 404.000001 يوم .... لماذا هذا التحويل ؟ لأننا نريد استخلاص الايام ....

    الان ... نقسم 404 على 31 ... لكي ننتج عدد الشهور الفائتة ... وبعد القسمة نوجد الباقي ...

    الباقي كان واحد ... يعني 403 يوم ... نقصناهم كسنة واحدة وشهر واحد .... أي 13 شهر ... وبقي من 404 كم ؟ واحد

    الفكرة النهائية .. هي اننا نريد تنقيص عدد الشهور والسنين ... لكي نعرف كم الايام ..

    اعرف ان شرحي طويل وغير مفهوم .. لكن اذا اردت ان احاول معك مرة ثانية بطريقة اخرى ... كلمني ...






    بالمناسبهكان الدرس شيقاً جداً خصوصاً مع وجود تحديات رائعه تدعو للتفكير
    وجزاك اللهخيراً

    شكرا لك

    بالمناسبه انا أعتبرت إن كل شهور السنه 30
    يوم إفتراضياً
    ما قسمتش شهورالسنه على 30 و 31 و 29 لأنى الصراحه مش حافظهم

    عادي ... اهم شي انك فاهم ^^


    == == == == == == == == == ==
    الاخ هوروساكا
    فى الدرس التاسع هناك شىء لم افهمه و هو إستخدام الدبل كوتيشن
    "

    حيثقمت أنت بحل أحد الأمثله هكذا

    select to_char(hiredate,'DAY "OF" MONTH YYYY "IN" HH:MI:SS AM') from emp ;

    فى حين قمت أنا بعملهاهكذا

    select to_char(hiredate,'day'),('of'),to_char(hiredate,'month'),to_char(hiredate,'year'),('in'),to_char(hir edate,'hh:mi:ssam')from emp;

    فكانت طويله شويه بدون إستخدام " فأنا أريدمعرفة متى نستخدم هذه العلامه


    حبيبي ... كلا الطريقتين صحيحتين ...

    فكرة علامة التنصيص الثنائية " ... هي ماذا ؟؟

    عرض الجملة كما هي عليه .... صح ؟

    نستخدمها متى ؟ داخل النص الذي بين علامة التنصيص الاحادية
    '

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

    على فكرة .. لا داعي ان تستخدم الاقواس في عرض النصوص ... انظر الى الحل مرة ثانية ..
    SQL> select to_char(hiredate,'day'),'of',to_char(hiredate,'month'),to_char(hiredate,'year'),' in',

    to_char(hiredate,'hh:mi:ssam')from emp;



    تحديات الدرس التاسع


    التحدى الأول
    select to_char(sal,'$00,00,00,00.999')from bank;


    نسيت السوال .. ولكن صحيح ^^

    التحدى الثانى
    select to_char(sysdate,'ddsp/mmsp "or" ddth/mmth "or" ddspth "from" mmspth "month" ') from dual ;
    يوجد كلمة month ... الم يكن من المفترض ان تتحول الى شهر ؟؟؟
    النتيجة كانت هكذا .....
    three/one or 03rd/01st or third from first month
    لماذا لم تتحول كلمة month الى الشهر في تاريخ sysdate أي لماذا لم تتحولالى January مثلا ؟؟؟
    الإجابه لأنها كانت بين " " فكتبها كما هى

    ياسلام .. رائع


    التحدىالثالث
    select round (to_date('16/12/2006','dd/mm/yy'),'month') from dual;
    مالنتيجة المتوقعة ولماذا ؟؟
    1/1/2007
    لأن 16-12 أكبر من 15-12 فهىفى الشهر التالى و الذى يكون يناير العام القادم
    صحيح .. وقل اننا نلعب في مجال الشهور !! كما رأينا في المدخل الثاني من الدالة ... صح ؟
    التحدى الرابع
    select ename,NVL(to_char(mgr),'NO MANAGER') from emp where ename ='KING';


    صح ^^ !!

    التحدىالخامس
    فسر لي .. لماذا ظهرت النتيجة 7800 دولار ؟؟ مع العلم ان دالة SUM دالةذكية !!
    واخبرني مالحل .. وما العمل ؟؟ ما الجملة البديلة ؟؟
    لانها أخرجتنتيجة الموظفين الذين لهم رواتب إضافيه فقط حيث أن فى حالة عدم و جود راتب إضافىتكون قيمة (null)
    والجمله البديله هى
    select sum(sal + NVL(comm,0))from emp;

    ممتاز ..... جميل ..... او كما اقترح اخوك .. براين وقال :
    select sum(sal)+sum(comm) from emp ;


  9. #99
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: استفسارات دورة الاوراكل ,,, تجدونها هنا ......

    تحديات الدرس العاشر

    التحدى الأول
    select job,decode(job,('PRESIDENT'),'A',
    ('ANALYST'),'B',
    ('MANAGER'),'C',
    ('CLERK'),'D',
    ('SALESMAN'),'E')as dark from emp;
    جميل ..... ممتاز ...


    التحدى الثانى
    Any_column number(10,9)
    اما لووضعت :
    Any_column number (9,10)
    فمالذي سوف يحدث ؟؟
    سيقوم بإدخالالبيانات البعد العشريه فقط 0.01 مثلاً
    ممممم

    انا اخبرك ...

    سوف يكون اكبر قيمة تستطيع وضعه هي 0.09

    ولو وضعنا مثلا 0.1

    يقول " القيمة اكبر من مجال العمود"

    طيب ....

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

    SQL> create table sss

    ( a number (5,4) , b number(5,5) , c number(4,5) );



    Table created.



    SQL> insert into sss

    values (9 , 0.9 , 0.09 );


    1 row created.
    وقد اضفت فيه .. اكبر قيمة ممكنة لكل عمود ... جرب لو تضع اكبر من هذه القيم .. ولو بجزء يسير .....


    التحديالثالث

    اريد ان اعمل جدول يسمى بـ annual_emp_30

    وبه الحقول التالية

    Eno

    Ename

    Sal

    Annual_sal

    The_date



    الـ Eno هو نفس الحقل الذي يدعى بـ empno في جدول الموظفين

    الـ annual_sal هوعبارة عن sal*12

    الـ the_date هو نفسه الـ hiredate في جدول الـ emp

    الجدول به نفس سجلات جدول الموظفين ولكن ليس كل السجلات !! بل فقط سجلاتموظفي القسم 30 .....

    ماهو السؤال ؟؟؟ أعطيني يا نظر عيني الامر اللازملعمل هذا الجدول ولكن بطريقتين مختلفتين !! انا ذكرت طريقة واحدة .. وتوجد طريقةاخرى قد درسناها منذ زمن !! ماهي ؟

    create table annual_emp_30 (Eno,Ename,Sal,Annual_sal,The_date)as select empno,ename,sal,sal*12,hiredate from emp where deptno=30;
    في الحقيقة لا اذكر لماذا قلت ذلك ... ولكن .... سوف اعمل طريقة اخرى مختلفة قليلا عن طريقتك :

    SQL> create table annual_emp_30 as

    select empno eno , ename , sal , sal*12 annual_sal ,

    hiredate the_date from emp where deptno=30
    ;


    التحدى الرابع
    على مستوىالجدول
    select*from all_tab_comments where owner='SCOTT' and TABLE_NAME='EMP';
    or
    select * from user_tab_comments where TABLE_NAME='EMP';
    على مستوى العمود
    select * from user_col_comments where COLUMN_NAME='EMPNO';

    جميل ^^...

  10. #100
    التسجيل
    07-03-2004
    المشاركات
    51

    مشاركة: استفسارات دورة الاوراكل ,,, تجدونها هنا ......

    أخى جافا بدأت اراجع الدروس السابقه ولكنى لاحظت إختفاء الصور فى الصفحه الثانبه فأتمنى أن تقوم برفعهم مره أخرى

    وشكراً

  11. #101
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: استفسارات دورة الاوراكل ,,, تجدونها هنا ......

    اقتباس المشاركة الأصلية كتبت بواسطة horsaka
    أخى جافا بدأت اراجع الدروس السابقه ولكنى لاحظت إختفاء الصور فى الصفحه الثانبه فأتمنى أن تقوم برفعهم مره أخرى

    وشكراً
    اهلا اخي ....
    بس ياريت تقلي ايت صور . في اي درس ؟؟
    وكم ارقام الصور ..
    تسلم لي اخي ... شكرا لك

  12. #102
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: استفسارات دورة الاوراكل ,,, تجدونها هنا ......

    اقتباس المشاركة الأصلية كتبت بواسطة horsaka
    معذرة اخى جافا لم أفهم هذه الجمله
    ANY تعنى :'أو' صحيح؟
    بمعنى اصغر من 1000 أو 2000 أو 3000
    أى انه سيعرض كل من يملك راتب أصغر من 3000 دولار وليس 1000 كما قلت
    بمعنى لو قلنا
    sal>ALL(1000,2000,3000) تعنى أن المرتب يجب أن يكون أكبر من الثلاث قيم يعنى أكبرمن 3000
    Sal >ANY(1000 , 2000 , 3000 ) أكبر من أى قيمه منهم يعنى أكبر من 1000 على الاقل

    هل ما فهمته صحيح؟
    اهلا يا صاحبي ^^
    ANY تعني "اي من" ...
    وكما قلت انت ..
    تعني اصغر من 1000 او 2000 او 3000 كما قلت .. اذا اصغر من 3000 .. خلاص ... هو في حسبتها !!
    وتعني اكبر من 1000 او 2000 او 3000 ... يعني لو اكبر من 1000 يعني خلاص .. نحسبه !!

    صحيح كلامك

  13. #103
    التسجيل
    07-03-2004
    المشاركات
    51

    مشاركة: استفسارات دورة الاوراكل ,,, تجدونها هنا ......

    شكراً على إهتمامك بالرد والتصحيح

    بقى لى تحديات ثلاث دروس سأكملها وأنا أراجع الدروس إن شاء الله

    لى إستفسار بسيط
    متى تنوى أن تكمل بمشيئة الله؟

    والسلام عليكم ورحمة الله وبركاته

  14. #104
    التسجيل
    26-07-2005
    الدولة
    Australia
    المشاركات
    3,368

    مشاركة: استفسارات دورة الاوراكل ,,, تجدونها هنا ......

    اقتباس المشاركة الأصلية كتبت بواسطة horsaka
    شكراً على إهتمامك بالرد والتصحيح

    بقى لى تحديات ثلاث دروس سأكملها وأنا أراجع الدروس إن شاء الله

    لى إستفسار بسيط
    متى تنوى أن تكمل بمشيئة الله؟

    والسلام عليكم ورحمة الله وبركاته
    السلام عليكم ^^

    اخي غدا ستجد الدرس الجديد ان شاء الله ^^ ....
    وسوف ابدأ بالـ PLSQL

    شكرا لك ^^ على اهتمامك الدائم اخي ^^

  15. #105
    التسجيل
    01-03-2006
    المشاركات
    12

    مشاركة: استفسارات دورة الاوراكل ,,, تجدونها هنا ......

    أخي الكريم لا أعرف كيف أشكرك ...................

    أثقل الله ميزان حسناتك و تقبل عملك ....... لقد ساعدتني كثيراً... فجزاك الله عني خيراً....

    لقد عثرت علي هذة الدورة الكنز منذ حوالي أسبوع و بدأت أتابع الدروس بنهم و أنا أدعو لك مخلصاً من

    قلبي ........... لقد بدأت رحلة في مجال إحتراف قواعد البينات منذ فترة وبصراحة حضرتك أفدتني كثيراً ........

    هذة مجرد محاولة شكر لأن من لم يشكر الله لم يشكر الناس .............

    أخي الكريم لا حرمنا الله منك لدي همة عالية لأكمل معك إن قبلت ..........

    بصراحة لدي أسئلة كثيرة ..... يا تري فاضل إية ..... هل ممكن أنهي هذة الدورة في هذا الترم الأخير

    لي بالكلية لتكون عونا لي علي باقي طموحي ......

    ثم هل بعد الدروس الماضية نحن مؤهلون لإجتياز إمتحان أوراكل الأول 007



    علي فكره أنا أحس مع كل زملاء الدورة ..... رغم أني لا أراهم أو أعرفهم برابطة قلبية.........

    جمعنا الله معكم في الفردوس الأعلي

صفحة 7 من 10 الأولىالأولى ... 2345678910 الأخيرةالأخيرة

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •