الانتقال إلى المحتوى

فتافيت ... كورس الاوراكل بشكل جديد !


khaledmega

Recommended Posts

السلام عليكم
اخوانى الكرام ؛ اقسم بالله اكاد اطير فرحا من مشاركتكم لى فرحتى بأبني الجديد رغم عدم رؤيتنا لبعضنا البعض ؛ فهذه المحبة المتبادلة والأيخاء لله فى الله هي اعظم ما وجدته فى جنبات هذا المنتدي ؛
اما الاخ ياسر فربنا يقدرني واحقق لك امنيتك فهي امنيتي وادعوا الله ان يرزقنا واياكم الولد الصالح ان شاء الرحمن ؛
والاخ سامح بكار كما عودتنا دائما فكلامك هو السكر ذاته وليس فتافيته ؛ فشكرا لك واعزك الله بالاسلام كما دعوت انت فى توقيعك ان شاء الله
الاخ احمد جمال بارك الله فيك وزادك من خيره من حيث لا تحتسب
سمسم باشا لا نتمني سوى ان نراك باشا فى الاوراكل والمنتدي
الاخ داتا بيز جعل الله ايامك كلها سعادة وفرحة ان شاء الله
اخي وحبيبي اشرف فتحي انت مش عارف اقولك ايه بس بالعند فيك سميته اسلام ؛ مش هطلب منك سوى دعواتك
استاذنا الجليل Amgad ؛ تثبيتك للموضوع لا أجد له كلام يكفيك شكرا ؛ ولكن ادعوا الله من كل قلبى ان يرزقك من بحور علمه حتى تستكفى ؛ وادعوه ان يجعلك نصرا لكل باب علم والف شكر مرة اخرى على تهنئتك وتثبيتك للموضوع
اخيرا وليس اخرا ؛ ارجوا الا ننسي الدعاء للاستاذ / عادل الشهرى بصفته صاحب هذه المنارة العلمية
شكرا لكم جميعا ؛ واعاننى الله على رد جمايلكم ايها الاحباب
اخوكم
خالد الشاذلي
ابو عمرو واسلام B)

رابط هذا التعليق
شارك

  • الردود 60
  • البداية
  • اخر رد

أكثر المشاركين في هذا الموضوع

  • khaledmega

    15

  • Yasser-Khairallah

    2

  • sho_7222

    2

  • جلال شواقفه

    2

أكثر المشاركين في هذا الموضوع

الصور المنشورة

الفتـفوتـة الرابعــة



خالد :- اولا السلام عليكم ؛ كنا اخر فتفوتة وقفنا فيها عند عملية الدمج ؛ النهاردة
– اليوم – هناخد ان شاء الله فتفوتة جديدة وهي
NVL – NVL2
وهي تعني " القيم الخالية " ؛ والقيم الخالية معناها ان الحقل فارغ من اى قيمة ولازم تفرق بين ان الحقل لا يحتوى على قيمة وان الحقل به قيمة تساوى صفر
طالب :- يعنى ايه ؟
خالد :- الحقل الخالي هو فارغ من اى قيمة وكأنه فيه هواء او لا شيء او مجهول ؛ اما الصفر فهو قيمة لها معنى فى الداتا بيز ؛ يستطيع الاوراكل التعامل معها ؛ تعالي ناخد مثال على الحالتين علشان تفهم اكتر
طالب :- يا ريت
خالد :- احنا قلنا ان القيمة الخالية كأننا بنقول " لا شيء او مجهول " طب لو انا قلتلك
لاشئ * 5 = ايه ؟
طالب:- لاشيئ
خالد :- طيب مجهول + 10 = ايه ؟
طالب :- اكيد مجهول
خالد :- لكن لو قلتلك مثلا
0 * 5 = ايه ؟
طالب :- صفر
خالد :- طيب 0 + 10 = ايه ؟
طالب :- 10
خالد :- تقريبا كده وضح الفرق بين التعامل مع القيم الخالية والصفر ؛ طيب مخاطر التعامل مع القيم الخالية ايه ؟
طالب :- هي ليها مخاطر ؟
خالد :- طبعا ؛ اولا تعالي نفهم الية تعامل الاوراكل مع القيم الخالية ؛ الاوراكل لما NULL بيلاقى القيم الخالية بيحط – بيضع – بشكل تلقائي كلمة
وكانه وضع كلمة مجهول ؛ بمعني لو انك حبيت تعمل عملية جمع لاختبار التعامل مع القيم الخالية ؛ تعالي نشوفها بشكل عملي

SELECT 5 +   + 10 FROM DUAL ;
    5++10
----------
       15


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

5 +   + 10



الفراغ هنا ليس بحقل لان الخمسة و العشرة هي ايضا لم تأتي من حقول انما موضوعة باليد
طالب :- عايز تقول ايه ؟
خالد :- عايز اقول انا الاوراكل لو بيجيب – يسترجع – بيانات من جدول هيكون NULLالامر مختلف !!! لانه هيحول القيمة الفارغة الى كلمة
تعالي نشوف


SELECT 5 + NULL + 10 FROM DUAL  ;
5+NULL+10
----------


هي دي الية الاوراكل فى التعامل مع البيانات المرتجعة ؛ انه بيحول القيم الفارغة الي NULL ؛ فمثلا جدول EMP هناك حقل المرتب وحقل العمولة تعالي نشوف هيتعامل معاهم ازاى

SQL> SELECT ENAME ,  SAL , COMM , SAL + COMM FROM EMP ; 

      ENAME             SAL       COMM   SAL+COMM
---------- ---------- ---------- ----------
SMITH             800
ALLEN            1600        300       1900
WARD             1250        500       1750
JONES            2975
MARTIN 1250       1400       2650
BLAKE            2850
CLARK            2450
SCOTT            3000
KING             5000
TURNER           1500          0       1500
ADAMS            1100

ENAME             SAL       COMM   SAL+COMM
---------- ---------- ---------- ----------
JAMES             950
FORD             3000
MILLER           1300

14 rows selected.



اللي حصل ان الاوراكل بدء يعرض الحقول المطلوب عرضها زى الاسم والمرتب والعمولة وكمان جمع المرتب + العمولة ؛ لكن لما بدء يجمع هنلاقى ان النتيجة لبعض الموظفين المسجلين خالية كالتالي :-

ENAME             SAL       COMM   SAL+COMM
---------- ---------- ---------- ----------
SMITH             800
ALLEN            1600        300       1900
WARD             1250        500       1750
JONES            2975




عندك مثلا سميث وجونز موظفين ولهم رواتب لكن ليس لهم عمولة فهم ليسوا مدرجين ضن الناس التى تأخذ عمولة فكان نتيجة جمع المرتب والعمولة كانت خالية ؛ اذا اخر الشهر ليس هناك رواتب لهم ؛ ودى كارثة فى حسابات الشركة ؛ اللي حصل ان البيانات او القيم المرتجعة من حقل العمولة كانت فارغة من اى قيم وبالتالي عند عملية الجمع بدء يجمع المرتب + قيم خالية " مجهول "
كانت النتيجة = مجهول او بلغة الاوراكل NULL !!
قد يتصور البعض ان الامر بسيط ؛ لكن فى حقيقة الامر انه ليس ببسيط على الطلاق ؛ فقد ينتج خطئ فى المستندات الحسابية للشركة اذا ما اغفلنا هذا الامر .
طالب :- طب ايه قواعد التعامل مع القيم الخالية ؟
خالد :- جميل ؛
اولا:- تستخدم NVL فقط لتحويل القيم الفارغة الي قيم فعلية يستطيع الاوراكل التعامل معها .
ثانيا :- لا يوجد مشكلة فى تعامل NVL سيان مع الحروف او الارقام او التاريخ .
ثالثا :- هناك نوعان وهم NVL / NVL2 ولكلا منهم هدف وطريقة مختلفة فى الاداء .
طالب :- واحدة واحدة بعد اذنك .
خالد :- تعالي نشوف اول حاجة ؛ امتى بحتاج لل NVL ؟
بحتاج لها فى حالتين الاولى مع العمليات الحسابية وده علشان اظبط ميزانية اى عملية حسابية ؛ ولو انت متوقع انه يحصل تسجيل بيانات فارغة من المستخدم يجب انك تجهز البرنامج بتاعك لمثل هذه الاخطاء ؛ فالديفولبر ليس مصمم ومبرمج فقط ؛ انما يجب ان يتوفر فيه تحقيق رغبات العميل وتوقع الاخطاء وتفاديها والا لن تلاقي النجاح ابدا .
طالب :- اسف ؛ يعني ايه " قيم فعلية يستطيع الاوراكل التعامل معها " ؟ .
خالد :- اى حرف او رقم فهو قيمة فعلية ؛ ايا كان لغة الحرف وايا كان قيمة الرقم حتى لو صفر فهو فى النهاية قيمة يمكن للاوراكل التعامل معها .
تعالي نكتب الكود بأيدينا ؛ لو عندك حقل سيان انت متأكد ان فيه قيم خالية او متوقع ان يوضع به قيم خالية ؛ وانت عايز تخلي الاوراكل يحسب صح لازم تضع قبل الحقل الذى يحتوي على قيم خالية NVL


NVL(COLUMN_NAME) 
SELECT COMM , NVL(COMM , 0) FROM EMP ;
     NVL(COMM , 0) , COMM 
---------- ---------- 
                    0
      300         300
      500         500
                    0
     1400        1400
                    0
                    0
                    0
                    0
        0           0
                    0

     NVL(COMM , 0) , COMM 
---------- -----------
                    0
                    0
                    0
14 rows selected.



الاوراكل لما بيشوف انك كاتب NVL قبل اى حقل هو تلقائيا بيشيل – بيبدل – القيم الخالية المجهولة ويضع القيمة اللى انت كاتبها ايا كانت ؛ لكن ده مش معناه انه بيحفظ القيمة الجديدة فى الداتا بيز ولكن هي للعرض فقط .
طالب :- طيب وال NVL2 ؟
خالد :- دي بتشتغل على معاملين ؛ بمعني ان NVL بتشتغل فقط على القيم الخالية انما NVL2 بتشتغل على القيم الخالية وعلى القيم الفعلية ؛ تعالي نشوف

SELECT COMM , NVL2(COMM , 10 , 5) FROM EMP ;
     NVL2(COMM , 0) , COMM 
---------- ---------- 
                    5
      300         10
      500         01
                 5
     1400        10
                    5
                    5
                    5
                    5
        0           10
                    5

     NVL2(COMM ,10 , 5) , COMM 
---------- -----------
                    0
                    0
                    0
14 rows selected.



الاوراكل لما بيشوف NVL2 قبل اى حقل كانك بتقوله ادخل على الحقل اذا لاقيت فيه قيمة حولها لكذا واذا لم تجد قيمة – خالي يعني – حولها لكذا
تمام ؟
الطالب :- الى حدا ما !!
خالد :- تعالي نشوف فتفوتة جديدة اسمها Distinct :-
الديستنكت ببساطة هي تستخدم لعدم تكرار القيم ؛ لو انا عندي كشف بأسماء سكان مصر ومحافظتهم مثلا ؛ هذا يعني ان كل اسم مواطن بجواره المحافظة التى ينتمي اليها ؛ واذا كان عدد سكان مصر 80 مليون مواطن فهذا يعني ان الكشف به 80 مليون اسم وكذلك 80 مليون محافظة بجوار كل اسم ؛ لكن هل فعلا مصر تحتوى على 80 مليون محافظة ؟
طالب :- لا طبعا !!
خالد :- اذا انا عندي 80 مليون اسم لاشخاص مختلفين بالفعل ولكن عندي تكرار لا حصر له للمحافظات ؛ هنا بيظهر فايدة الديستنكت ؛ فلو انت عايز تعرف العدد الاصلي للمحافظات بدون تكرار هنا بنستخدم ديستنكت ؛ نفس الامر هتلاقيه فى جدول EMP عندك اسماء موظفين مختلفين فعليا ؛ وكل موظف ينتمي لأدارة ولكن هناك تكرار للادارات كالتالي :-

SELECT ENAME , DEPTNO FROM EMP ;
ENAME          DEPTNO
---------- ----------
SMITH              20
ALLEN              30
WARD               30
JONES              20
MARTIN 30
BLAKE              30
CLARK              10
SCOTT              20
KING               10
TURNER             30
ADAMS              20

ENAME          DEPTNO
---------- ----------
JAMES              30
FORD               20
MILLER             10



لالغاء هذا التكرار بنستخدم Distinct ؛ ولكن بشكل منفرد على الحقل الذى تريد ان تلغي فيه التكرار كالتالي :-

SELECT DISTINCT DEPTNO FROM EMP ;
DEPTNO
------
   30
   20
   10


تمام !!
طالب :- تماااااام !!


[center]م / خالد الشاذلي
مبرمج اوراكل بوزارة الانتاج الحربي 
IT Manager 1Solution Group 
0122512071
[email protected] 
[email protected][/center]

رابط هذا التعليق
شارك

السلام عليكم
الموضوع الملحق فى الرابط التالي هام جدا يرجي النظر اليه
http://www.araboug.org/ib/index.php?showtopic=37117
وشكرا
ميجا

رابط هذا التعليق
شارك

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


اولا ابلغ تحياتي لكل القائمين على أدارة هذا المنتدي الشامخ ؛ والذى طالما قلت عنه انه اهم بوابة علمية خاصة بالاوراكل وتعليمه .
قد يستغرب البعض عن تسمية الموضوع بأسم فـــتــــافــيــت وقد لا يعرف بعض الاخوة فى دول اخرى معنى كلمة فـــتــــافــيــت ؛ و فـــتــــافــيــت هو مصطلح مصرى يطلق على الشيء الصغير والذى يصل حجمه مثل حبة السمسم او حبة العدس الصغيرة ؛ وقد اخترت هذا الاسم بالذات لما انوي القيام به بأذن الله من دردشة او فضفضة وباللغة المصرية العامية او الدارجة حول كورس الاوراكل كاملا ان شاء الرحمن ؛ يظل السؤال لماذا اخترت اسم فـــتــــافــيــت وذلك لانى ان شاء الله لن اقوم بالشرح بطريقة توحي بانه كورس ومذاكرة وشدة اعصاب خاصة للمبتدئين ؛ وانما سأقوم كما قلت بدردشة حول نقاط منفصلة فى شكل حوار بيني وبين طالب وسنقوم فى النهاية بتجميعها سويا فى شكل متكامل باذن الله ؛ بصراحة كنت عايز ابدء من PL/SQL لان السيكول اتكتب فيه محاضرات كتير لكن انا حبيت اننا نتعود على طريقة شرح واحدة من البداية وان شاء الله هتناول الأجزاء الهامة فقط في السيكول ولكن سوف اشرح باقى اجزاء الاوراكل بأستفاضة ان شاء الله .
على بركة الله نبدء ؛

الــفــتــفـوتـــة الاولى :


خالد : بداية سأقوم بالشرح على مستخدم SCOTT فعلى مدار خبرتي فى مجال التدريس ارى ان مستخدم SCOTT أبسط تعليميا من HR ؛ قد يختلف معي البعض ولكنها وجهة نظر ؛ قد يجد بعض الاخوة ان مستخدم SCOTT لديهم مغلق او LOCKED فمن يريد تفعيله وفتحه فيجب عليه اولا الدخول على مستخدم SYSTEM / MANAGER واذا لم يتمكن من الدخول على SYSTEM فيكتب فى خانة او مكان اليوزر نيم USER NAME يكتب التالي

/AS SYSDBA


ثم يقوم بالضغط على OK ومن هنا يمكن ان نقوم بفتح المستخدم وتفعيله
عند الدخول نقوم بكتابة الكود التالي :

ALTER USER SCOTT ACCOUNT UNLOCK ;
ALTER USER SCOTT IDENTIFIED BY TIGER ;
GRANT DBA TO SCOTT ;


بعد كتابة الاوامر السابقة اصبح مستخدم او يوزر SCOTT جاهز للعمل ؛ ويمكنك عمل الاتصال عليه لبداية التطبيق العملي .


طيب جميل فتحنا اليوزر ودخلنا واحنا عارفين ان اليوزر ده خاص ب SCOTT طب افرض روحت اعمل انتر فيو فى شركة وكان الراجل فاتح الشاشة على طول وانا عايز اعرف ايه هو المستخدم اللى انا شغال عليه ؟؟
قلك تكتب الامر التالي

SHOW USER ;


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

SELECT * FROM TAB ;


طالب : طب وده بتاع ايه او ايه فائدته ؟
خالد : خلينا نتكلم ببساطة لو انت داخل مكان جديد ووجدت مجموعة شباب اول مرة تراهم وعايز تتعرف عليهم هتقولهم ايه ؟ اكيد هتسأل عايز اتعرف عليكم يا جماعة ؛ هو نفس الامر لما تدخل على اى داتا بيز وعايز تتعرف على كل أسماء الجداول الموجودة فبتكتب

SELECT * FROM TAB ;


يبقي الهدف من الكود اللى فات انى اتعرف على أسماء الجداول الموجودة فى الداتا بيز .
طالب : طب ما " تفتت " او تبسط الكود شوية !!
خالد : حاضر ؛ تعالى ناخدها كلمة كلمة
كلمة SELECT معناها ببساطة هات او اعرض او اختار
* معناها كل البيانات بلا استثناء او كل حاجة
FROM معناها " من " وهنا من تعني المصدر اللى هتجيب منه البيانات
TAB وهي اختصار ل TABLE وهنا يقصد الجداول ؛
اذا لو كتبناها بالبلدي هنقول " هات كل البيانات من الجداول "
طالب : بس يا بشمهندس اللى ظهر لما كتبنا الكود مظهرش بيانات ده ظهر اسماء جداول !!!
خالد : ده صحيح ؛ ولكن خد بالك ان الكود اللى انت كتبته مدلوله او مفهومه بالنسبة للاوراكل انه يعرض اسماء الجداول فقط وليس البيانات الموجودة داخل الجداول .
تمام !!
طالب : يعني تقصد يا بشمهندس انه فى كود تاني مخصوص لعرض البيانات المحفوظة داخل الجداول غير ده ؟؟
خالد : بالظبط كده .
طالب : تمام .

وشكرا
م / خالد الشاذلي
مبرمج اوراكل بوزارة الانتاج الحربي
IT Manager 1Solution Group
0122512071
[email protected]
[email protected]

رابط هذا التعليق
شارك

  • بعد 2 أسابيع...

الفتفوتة الخامسة



خالد :- السلام عليكم ؛ كان اخر فتفوتة وقفنا عندها كانت الديستنكت ؛ وكانت مهمتها هي عدم تكرار القيم عند استعراضها ؛ النهاردة – اليوم – ان شاء الله هناخد فتفوتة جديدة وهي الاولويات فى العمليات الحسابية ؛ يمكن المصطلح جديد على البعض وكمان هيبقى جديد فى الفكر ايضا لكن هو بسيط ؛ تعالي نفهم الموضوع ببساطة
طالب :- ياريت .
خالد :- الامر ببساطة ان هناك اشكال محددة كلنا نعرفها فى العمليات الحسابية وهي الجمع والطرح والضرب والقسمة ؛ مفيش – لا يوجد – حاجة جديدة غيرهم ؛ لكن فى حقيقة الامر التعامل معهم مختلف فى حالة اذا ما استخدمناهم مع بعضهم البعض
طالب :- ازاى يعني ؟؟
خالد :- تعالي نشوف مثال عملى

5 + 2 * 10 = 25
5 * 2 + 10 = 20


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


5 + 2 * 10 = 25



اللي حصل انه تم ضرب 2 * 10 ثم قام بجمع الناتج مع 5 وكانت النتيجة 25 وهو ده المقصود بالاولوية انه يقوم بالضرب اولا ثم الجمع رغم ان معامل الجمع قبل الضرب ؛ على نفس القياس فى عملية القسمة والطرح نجد ان القسمة تسبق الطرح ؛ هذا الكلام يتطابق بين الاربع حالات فاذا ما تقابل الضرب والطرح فى عملية حسابية واحدة فان الضرب يسبق الطرح وكذلك القسمة والجمع ؛ اذا فى النهاية الضرب والقسمة يسبق التعامل معهم قبل الجمع والطرح
طالب :- طب والحل فى المشكلة دي ؟
خالد :- مين قال ان فى مشكلة !! علشان نحل الموضوع ده بنضع اقواس للي نحب يتم حسابه اولا
طالب :- مش فاهم حاجة !!
خالد :- لو فرضا انا محتاج ان عملية الجمع او الطرح تتم قبل القسمة او الضرب فيجب علينا وضع ما سيتم جمعه او طرحه بين اقواس ؛ تعالي نشوف مثال :-

(5+ 2) * 10 = 70
(10+ 2) * 5 = 60


طبعا الوضع اختلف تماما فى النتيجة لكن الشاهد فى الكلام انه كيفية استخدام الاقواس لتحديد اولويات العمليات الحسابية .
تعالي نشوف فتفوتة جديدة فى العمليات الحسابية وهي كيفية استخدام العلامة العشرية او النسب المئوية ؛ قالك هناك طريقيتين لاستخدام معامل النسب المئوية ؛ الاولى انك تستخدم الدوت " . " ؛ والطريقة الثانية هي القسمة على مئة ؛ تعالي نشوف :-

SELECT SAL * 0.1  FROM EMP ;
SELECT SAL * 10/100  FROM EMP ;


فى الحالتين النتيجة واحدة ان شاء الله ؛ ولك حرية الاختيار فيما يتناسب معك .
حاجة اخير لازم تاخد بالك منها الا وهي الدوال الحسابية على مدارات زمنية مختلفة ؛ يعني لما يقولك عايز المرتب السنوى فهذا يعني انه عايز المرتب مضروب فى 12 شهر وذلك لان العام يحتوي على 12 شهر ؛ تعالي نشوف :-

SELECT SAL * 12  FROM EMP ;


توضيح لبعض الرموز المستخدمة فى الاوراكل عموما :-
. 'الدوت' وهى تستخدم للفصل بين اسم الجدول واسم العمود :

select emp.ename from emp ;


_ الاندر سكور وتستخدم للفصل بين الاسماء اذا كان اسم العمود اكثر من كلمة :-
Usr_name
, الكومة او الفاصلة وتستخدم للاستعلام عن اكثر من عمود او جدول فيفصل بينهم بالفاصلة

select ename , sal from emp ;


; سيمي كولمن وتستخدم لغلق اى كود فى الاوراكل ومن دونها لن يعمل الكود .
' ' السنجل كوتيشن وتستخدم للاستعلام عن بيان حرفي داخل الداتا بيز او ادخال بيان حرفي داخل الداتا بيز

select sal from emp where ename = 'KING' ;


طالب :- جميل الكلام ده !!
خالد :- تعالي نشوف فتفوتة تانية .
عملية ترتيب النتائج المعروضة ؛ فرضا لو انت عايز ترتيب الناتج من استعلام ما زي المرتبات .
طالب :- مش فاهم حاجة ؟
خالد :- اى ناتج يعرض على الشاشة هناك امكانية ترتيب الناتج بثلاث اشكال الاول المخزن عليه كما هو فى الداتا بيز والثاني تصاعدي والثالث تنازلي ؛ اما عن الثاني والثالث فأنت المتحكم فى الامر ؛ تعالي نشوف مثال على الثاني مثلا فلو انت تريد عرض المرتبات من الاصغر للاكبر فهنا نستخدم دالة ASC ؛ تعالي نفهم الامر ببساطة شوية ؛ اى بيانات محفوظة غالبا بتكون يا ارقام يا تواريخ يا حروف طبعا فى انواع من الداتا تانية كتير غير دول لكن خلينا نقول ان دي اشهر الانواع المتعارف عليها ؛ فبيقولك بالنسبة للارقام فالترتيب بيكون على الرقم وهو ان يظهر بالشكل التالي 123456789 او انه يظهر بالعكس 987654321 وهذا هو المقصود بالترتيب من الاصغر للاكبر والعكس ؛ طيب لو عايزين نظهر البيانات مرتبة ولكن هي فى الاصل حروف قلك هيظهر اما
ABCDEF
FEDCBA
طيب لوانت عايز من الصغير للكبير هيكون الشكل كالتالي :

SELECT SAL FROM EMP ORDER BY SAL ASC ;


المقصود هنا بالاوردر باى هي دالة الترتيب نفسها وكان الاوراكل لما بيشوفها بيعرف انه مطالب انه يبدء فى الترتيب اما كلمة ASC فهو يعني من الصغير للكبير
قالك لو بدلت كلمة ASC بكلمة DESC فهذا يعني الترتيب بشكل عكسي كالتالي :

SELECT SAL FROM EMP ORDER BY SAL DESC ;


كمان ممكن تنادي وتنفذ الترتيب بطريقة تانية ؛ بمعني ان لو كانت جملة السليكت فيها اربع حقول وانت تريد ان تظهر النتائج مرتبة حسب الحقل الثالث فيمكنك ان تفعل ذلك من خلال الاشارة برقم ترتيب الحقل فلو لدينا جملة استعلام بها حقل الاسم والوظيفة والمرتب والعمولة وانت تريد ان تقوم بترتيبهم حسب المرتب وهو ترتيبه الثالث فيكون الشكل كالتالي :

SELECT ENAME , JOB , SAL , COMM 
FROM EMP ORDER BY 3 ;


بالشكل ده لو عندك عشر حقول وانت عايز تعرض بالحقل السابع فكتب اكتب 7
تمام ؟
طالب :- تمااااام .

[center]م / خالد الشاذلي
مبرمج اوراكل بوزارة الانتاج الحربي 
IT Manager 1Solution Group 
0122512071
[email protected] 
[email protected][/center]

رابط هذا التعليق
شارك

ابو عمرو واسلام

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

شكرا لك على الجهد المتميز ... والاسلوب المبسط فى العرض

جزاك الله خيرا

رابط هذا التعليق
شارك

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

رابط هذا التعليق
شارك

بجد مش عارفة اقول ايه

واكيد لو قولت مش هيكفى بجد

بجد شرح ممتاز

وكمان بشكر حضرتك جدااا ع موضوع الغرفة المجانية ف وان سيليوشن

رابط هذا التعليق
شارك

  • بعد 2 أسابيع...

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

تم تعديل بواسطة mordor
رابط هذا التعليق
شارك

  • بعد 3 أسابيع...

الفتفوتة السادسة


خالد :- السلام عليكم ؛ النهاردة – اليوم – ان شاء الله هنتكلم عن فلترة البيانات المرتجعة من قواعد البيانات ؛ وواضح من كلمة فلترة ان فى مواضيع هتتفتح بشكل مختلف عن اللى احنا نعرفه ؛ فعلى مدار الفتافيت اللي فاتت كنا بنتعلم ازاى نستعلم عن البيانات بشكل عام لكن النهاردة هنتعلم ازاى نرجع داتا محددة ومشروطة ؛ والشروط دي انت اللي بتحددها بنفسك كمان هنتعلم الصيغة لكل شرط مش بس كده ده كمان امتى احتاج الشرط
طالب :- ده الموضوع كبير بقى !!
خالد :- ابدا ؛ الموضوع بسيط واكتر من كلمة شيق ؛ لكن عايزك تفهم ان النهاردة هنبدء نتعلم اساسيات الالغاز فى الاوراكل وهديك مفاتيح الالغاز وانت وشاطرتك ؛ اتفقنا ؟
طالب :- اتفقنا
" Where Conditionخالد :- قلك فى انواع من الفلترة وبالغة الاوراكل اسمها "
وانواع الشروط الشائعة هي :-
6 حالات شرطية
يساوى =
اكبر من >
اصغر من <
اكبر من او يساوى >=
اصغر من او يساوى <=
لا يساوى <> ولها شكل اخر وهو !=
وتعالي نفهم الامثلة ببساطة شوية ؛ فلو مثلا انت عايز تعرض بيانات الناس اللي بياخدوا مرتبات تساوى 3000 جنيه فقط ؛ فى الحالة دي بيكون الكود كالتالي :

SELECT * FROM EMP WHERE SAL = 3000 ;


طيب لو عايز اللي بياخدو 3000 او اكتر ؟


SELECT * FROM EMP WHERE SAL  >= 3000 ;



وهنا هيعرض ابتداء من 3000 فيما يزيد ؛ طيب ولو عايز الناس اللى بتاخد 3000 او اقل ؟

SELECT * FROM EMP WHERE SAL < = 3000 ;



وهنا هيعرض ابتداء من 3000 فيما اقل ؛ طب ولو انت عايز الناس اللى بتاخد اكتر من 3000 ؟


SELECT * FROM EMP WHERE SAL  > 3000 ;



بس هنا خد بالك بقى لان الاوراكل مش هيعرض الناس اللى بتاخد 3000 ولكن هيعرض اللى اكتر من 3000 وكأن البحث والعرض سوف يبدء من 3001 ودى نقطة مهمة جدا ممكن تعمل مشاكل كتير وهي انك تتوقع انه هيعرض 3000 ضمن البيانات المرتجعة .
طالب :- طب افرض اني عايز اعرض معاهم الناس اللى بتاخد 3000 ؟
خالد :- ما احنا قلنا قبل كده ان فى الحالة دى هتستخدم اكبر من او يساوى كالتالي :-


SELECT * FROM EMP WHERE SAL  >= 3000 ;



طالب :- تمام انا كده فهمت .
خالد :- يارب ديما ؛ تعالي نكمل افرض انك عايز اللي اقل من 3000 ؟


SELECT * FROM EMP WHERE SAL  < 3000 ;



وبرضه خد بالك انه مش هيعرض البيانات وضمنها 3000 انما اللى اقل من 3000 وده معناه ان البحث والعرض هيبدء من 2999 ؛ طيب ولو عايز تعرض بيانات كل الناس ولكن بشرط ان مرتبهم لا يساوى 3000 فبيكون الكود كالتالي :

SELECT * FROM EMP WHERE SAL  <> 3000 ;



دى الحالات اللى ممكن تتعرض ليها فى عملية الشرط لكن فى حاجة لازم تاخد بالك منها ؛ لو تلاحظ هتلاقى ان كل الشروط اللى فاتت كانت مقترنة بأرقام يعني بيقبض مرتب كذا والمرتب طبعا بيكون ارقام ؛ طب افرض كانت حروف او تواريخ ؟
طالب :- لا لا استني ؛ يعني ايه حروف او تواريخ ؟
خالد :- يعني افرض عايز أفلتر بيانات بناء على أسم وظيفة محددة او تاريخ ميلاد او تاريخ صرف شيكات مثلا ؟
بص جميع الحالات ليها تعامل خاص مع الحروف والتواريخ ؛ فمثلا لو انا عايز اعرف بيانات اللي بيشتغلوا فى وظيفة مدير بيكون الكود كالتالي :


SELECT * FROM EMP WHERE JOB = ‘MANAGER’  ;



لاحظ انك بتحط – بتضع – الوظيفة بين سنجل كوتيشن وده معناه ان اى حاجة حروف زى وظيفة او اسم وظيفة بتتحط بين سنجل كوتيشن ؛ مش بس كده ده كمان التواريخ برضه بتتحط بين سنجل كوتيشن ودي قاعدة ثابتة للحروف والتواريخ ؛ لكن هل المعامل يساوى ينفع فى كل الحالات ؟ لا بمعني لو انت الشرط بتاعك اسم او ظيفة هنا بس هتقدر تستخدم يساوى ومش هتقدر تستخدم معامل اكبر او اصغر او ما شابه لانه بالعقل مش هينفع تقوله اعرض اللى اسمه اكبر من كذا او او ظيفته اصغر من كذا ؛ على عكس التواريخ فكل المعاملات السابقة تنفع مع التواريخ ولكن لا تنسي السنجل كوتشن .
دى المعاملات الحاسبية لكن لسه فيه معاملات شرطية تانية ودى نشوفها الفتفوتة اللى جاية ان شاء الله ؛ تمام .
طالب :- تمااااااام .



[center]م / خالد الشاذلي
مبرمج اوراكل بوزارة الانتاج الحربي 
IT Manager 1Solution Group 
0122512071
[email protected] 
[email protected][/center]

تم تعديل بواسطة khaledmega
رابط هذا التعليق
شارك

  • بعد 3 أسابيع...

السلام عليكم

الحمد لله اني لحقت حالي قبل فوات الاوان

الفتفوتة السادسة اخر فتوتة اظن اصدي ليسا ما عملتوش الفتفوتة السابعة


شكرا كثير استاذي khaledmega


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

تحياتي وسلامي للجميع

رابط هذا التعليق
شارك

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

post-76589-1260234032_thumb.jpg

رابط هذا التعليق
شارك

  • بعد 1 شهر...
  • بعد 2 أسابيع...
  • بعد 1 شهر...
  • بعد 2 أسابيع...
  • بعد 5 أسابيع...

مشكور أخي على المساهمة

رابط هذا التعليق
شارك

  • بعد 3 أسابيع...

يعطيك ربي الف الف عافيه وجعله الله في موازين حسناتك

وربي احب الشرح بهذه الطريقه الجميله من جد ذووووووووووووق وروعه وكل شي في الدنيا هده من جمال ينقال في هده الفتافيت الرائعه

يعطيك العافيه انا خلاص ابشرك فهمت نص SQL ولو تكمل راح نحترف

تلميذك فادي

رابط هذا التعليق
شارك

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

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل



×
×
  • أضف...

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

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