khaledmega بتاريخ: 30 سبتمبر 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 30 سبتمبر 2009 السلام عليكماخوانى الكرام ؛ اقسم بالله اكاد اطير فرحا من مشاركتكم لى فرحتى بأبني الجديد رغم عدم رؤيتنا لبعضنا البعض ؛ فهذه المحبة المتبادلة والأيخاء لله فى الله هي اعظم ما وجدته فى جنبات هذا المنتدي ؛ اما الاخ ياسر فربنا يقدرني واحقق لك امنيتك فهي امنيتي وادعوا الله ان يرزقنا واياكم الولد الصالح ان شاء الرحمن ؛والاخ سامح بكار كما عودتنا دائما فكلامك هو السكر ذاته وليس فتافيته ؛ فشكرا لك واعزك الله بالاسلام كما دعوت انت فى توقيعك ان شاء اللهالاخ احمد جمال بارك الله فيك وزادك من خيره من حيث لا تحتسبسمسم باشا لا نتمني سوى ان نراك باشا فى الاوراكل والمنتدي الاخ داتا بيز جعل الله ايامك كلها سعادة وفرحة ان شاء اللهاخي وحبيبي اشرف فتحي انت مش عارف اقولك ايه بس بالعند فيك سميته اسلام ؛ مش هطلب منك سوى دعواتكاستاذنا الجليل Amgad ؛ تثبيتك للموضوع لا أجد له كلام يكفيك شكرا ؛ ولكن ادعوا الله من كل قلبى ان يرزقك من بحور علمه حتى تستكفى ؛ وادعوه ان يجعلك نصرا لكل باب علم والف شكر مرة اخرى على تهنئتك وتثبيتك للموضوعاخيرا وليس اخرا ؛ ارجوا الا ننسي الدعاء للاستاذ / عادل الشهرى بصفته صاحب هذه المنارة العلميةشكرا لكم جميعا ؛ واعاننى الله على رد جمايلكم ايها الاحباباخوكمخالد الشاذلي ابو عمرو واسلام اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
zoma87 بتاريخ: 3 أكتوبر 2009 تقديم بلاغ مشاركة بتاريخ: 3 أكتوبر 2009 شرح اكثر من رائع جزاك الله خيرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
khaledmega بتاريخ: 5 أكتوبر 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 5 أكتوبر 2009 الفتـفوتـة الرابعــة خالد :- اولا السلام عليكم ؛ كنا اخر فتفوتة وقفنا فيها عند عملية الدمج ؛ النهاردة – اليوم – هناخد ان شاء الله فتفوتة جديدة وهي 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] 1 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
khaledmega بتاريخ: 6 أكتوبر 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 6 أكتوبر 2009 السلام عليكمالموضوع الملحق فى الرابط التالي هام جدا يرجي النظر اليهhttp://www.araboug.org/ib/index.php?showtopic=37117وشكراميجا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
aboabdo_maro بتاريخ: 7 أكتوبر 2009 تقديم بلاغ مشاركة بتاريخ: 7 أكتوبر 2009 بسم الله الرحمن الرحيم اولا ابلغ تحياتي لكل القائمين على أدارة هذا المنتدي الشامخ ؛ والذى طالما قلت عنه انه اهم بوابة علمية خاصة بالاوراكل وتعليمه .قد يستغرب البعض عن تسمية الموضوع بأسم فـــتــــافــيــت وقد لا يعرف بعض الاخوة فى دول اخرى معنى كلمة فـــتــــافــيــت ؛ و فـــتــــافــيــت هو مصطلح مصرى يطلق على الشيء الصغير والذى يصل حجمه مثل حبة السمسم او حبة العدس الصغيرة ؛ وقد اخترت هذا الاسم بالذات لما انوي القيام به بأذن الله من دردشة او فضفضة وباللغة المصرية العامية او الدارجة حول كورس الاوراكل كاملا ان شاء الرحمن ؛ يظل السؤال لماذا اخترت اسم فـــتــــافــيــت وذلك لانى ان شاء الله لن اقوم بالشرح بطريقة توحي بانه كورس ومذاكرة وشدة اعصاب خاصة للمبتدئين ؛ وانما سأقوم كما قلت بدردشة حول نقاط منفصلة فى شكل حوار بيني وبين طالب وسنقوم فى النهاية بتجميعها سويا فى شكل متكامل باذن الله ؛ بصراحة كنت عايز ابدء من 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] اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
aboabdo_maro بتاريخ: 7 أكتوبر 2009 تقديم بلاغ مشاركة بتاريخ: 7 أكتوبر 2009 فكرة ممتازة وموضوع قيم مفيد جدا لكل مبتدأ سواء كان طالب او محاضربارك الله فيك يا باشمهندس خالد ووفقك للأفضل اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
azizever83 بتاريخ: 8 أكتوبر 2009 تقديم بلاغ مشاركة بتاريخ: 8 أكتوبر 2009 الاخ خالد مجهود رائع وبارك الله فيك واسمح لي ان انظم الى هذه الدورة اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
BN_ALI بتاريخ: 8 أكتوبر 2009 تقديم بلاغ مشاركة بتاريخ: 8 أكتوبر 2009 بارك الله فيك وجزاك الله خيرمتابعين بشغف اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
khaledmega بتاريخ: 19 أكتوبر 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 19 أكتوبر 2009 الفتفوتة الخامسة خالد :- السلام عليكم ؛ كان اخر فتفوتة وقفنا عندها كانت الديستنكت ؛ وكانت مهمتها هي عدم تكرار القيم عند استعراضها ؛ النهاردة – اليوم – ان شاء الله هناخد فتفوتة جديدة وهي الاولويات فى العمليات الحسابية ؛ يمكن المصطلح جديد على البعض وكمان هيبقى جديد فى الفكر ايضا لكن هو بسيط ؛ تعالي نفهم الموضوع ببساطة طالب :- ياريت .خالد :- الامر ببساطة ان هناك اشكال محددة كلنا نعرفها فى العمليات الحسابية وهي الجمع والطرح والضرب والقسمة ؛ مفيش – لا يوجد – حاجة جديدة غيرهم ؛ لكن فى حقيقة الامر التعامل معهم مختلف فى حالة اذا ما استخدمناهم مع بعضهم البعض طالب :- ازاى يعني ؟؟خالد :- تعالي نشوف مثال عملى 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 وهذا هو المقصود بالترتيب من الاصغر للاكبر والعكس ؛ طيب لو عايزين نظهر البيانات مرتبة ولكن هي فى الاصل حروف قلك هيظهر اما ABCDEFFEDCBAطيب لوانت عايز من الصغير للكبير هيكون الشكل كالتالي : 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] 1 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amgad بتاريخ: 19 أكتوبر 2009 تقديم بلاغ مشاركة بتاريخ: 19 أكتوبر 2009 ابو عمرو واسلامالسلام عليكم ورحمة الله شكرا لك على الجهد المتميز ... والاسلوب المبسط فى العرض جزاك الله خيرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
جلال شواقفه بتاريخ: 20 أكتوبر 2009 تقديم بلاغ مشاركة بتاريخ: 20 أكتوبر 2009 شكرا لك على الدروس لا احلى ولا ابسط من هيك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
khaledmega بتاريخ: 20 أكتوبر 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 20 أكتوبر 2009 السلام عليكملا اجد كلمات تفي شكركم وخصوصا المشرفين الاجلاء ؛ ولا املك سوى ان ادعوا الله ان اظل عند حسن ظنكم وان يلهمني الله كل ما تحبونه ؛ شكر خاص للاستاذ عبداللطيف والاستاذ امجد والاستاذ الجبالي وشكر لكل الاخوة الذين أسعدوني بكلماتهم الجميلة وشكرام / خالد الشاذلي 1 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
@nana@ بتاريخ: 20 أكتوبر 2009 تقديم بلاغ مشاركة بتاريخ: 20 أكتوبر 2009 بجد مش عارفة اقول ايه واكيد لو قولت مش هيكفى بجد بجد شرح ممتاز وكمان بشكر حضرتك جدااا ع موضوع الغرفة المجانية ف وان سيليوشن اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mordor بتاريخ: 1 نوفمبر 2009 تقديم بلاغ مشاركة بتاريخ: 1 نوفمبر 2009 (معدل) بجد انا عمري مشفت طريقه بتشد انتباه الواحد ري طريقتك يا باشمهندس خالد انا معجب بيك علي المستوي العلمي والعملي جداربنا يوفقك في الشركه وتبقي من انجح الشركات في مصر في وقت قياسي ان شاء الله تم تعديل 1 نوفمبر 2009 بواسطة mordor اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
khaledmega بتاريخ: 17 نوفمبر 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 17 نوفمبر 2009 (معدل) الفتفوتة السادسة خالد :- السلام عليكم ؛ النهاردة – اليوم – ان شاء الله هنتكلم عن فلترة البيانات المرتجعة من قواعد البيانات ؛ وواضح من كلمة فلترة ان فى مواضيع هتتفتح بشكل مختلف عن اللى احنا نعرفه ؛ فعلى مدار الفتافيت اللي فاتت كنا بنتعلم ازاى نستعلم عن البيانات بشكل عام لكن النهاردة هنتعلم ازاى نرجع داتا محددة ومشروطة ؛ والشروط دي انت اللي بتحددها بنفسك كمان هنتعلم الصيغة لكل شرط مش بس كده ده كمان امتى احتاج الشرط طالب :- ده الموضوع كبير بقى !!خالد :- ابدا ؛ الموضوع بسيط واكتر من كلمة شيق ؛ لكن عايزك تفهم ان النهاردة هنبدء نتعلم اساسيات الالغاز فى الاوراكل وهديك مفاتيح الالغاز وانت وشاطرتك ؛ اتفقنا ؟طالب :- اتفقنا " 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] تم تعديل 17 نوفمبر 2009 بواسطة khaledmega 1 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
love_h بتاريخ: 17 نوفمبر 2009 تقديم بلاغ مشاركة بتاريخ: 17 نوفمبر 2009 الله يكرمك أستاد خالد على هالمجهود الرائع اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
rachid_to_dba بتاريخ: 3 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 3 ديسمبر 2009 السلام عليكم الحمد لله اني لحقت حالي قبل فوات الاوان الفتفوتة السادسة اخر فتوتة اظن اصدي ليسا ما عملتوش الفتفوتة السابعةشكرا كثير استاذي khaledmegaانا قريت كل الفتافيت ومستني البقية ان شاء الله، والحمد لله استوعبت ما فيها فشكرا الكتحياتي وسلامي للجميع اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
السيد النمر بتاريخ: 8 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 8 ديسمبر 2009 تسلم ايدك والله يا بشمهندس ، فكرة جميلة وجديدة جدا واتمنى ان حضرتك تكمل كل تراك الاوراكل بالشكل دا وان شايف ان الطريقة دي ممن تكون اقصر طريق لتعلم الأوراكل .أهنئ حضرتك على الفكرة مرة تانية وبالتوفيق اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Ahmed Elbatrawy بتاريخ: 13 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 13 ديسمبر 2009 بجد الله يباركلك يا خالد بيه هو ده كلام الناس الجامدينبرافو اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
yms12 بتاريخ: 8 فبراير 2010 تقديم بلاغ مشاركة بتاريخ: 8 فبراير 2010 جزاك الله خيرا وبارك لك في اولادك فعلا موضوع هام وشرح سلس بسيط ولكن لا اجد تكملة منذ فترة اي الباقي ولماذا التوقف ارجو ان يكون المانع خير اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mohamadalsaadany بتاريخ: 16 فبراير 2010 تقديم بلاغ مشاركة بتاريخ: 16 فبراير 2010 مجهود هائل ؛ الف شكر اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
AndreNo بتاريخ: 19 مارس 2010 تقديم بلاغ مشاركة بتاريخ: 19 مارس 2010 شكرآ لك عزيزيشرح كافي ووافي الله يسلمك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
um_malek بتاريخ: 27 مارس 2010 تقديم بلاغ مشاركة بتاريخ: 27 مارس 2010 thnxxxxx wallhy اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
scince بتاريخ: 26 أبريل 2010 تقديم بلاغ مشاركة بتاريخ: 26 أبريل 2010 مشكور أخي على المساهمة اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
فــادي بتاريخ: 16 مايو 2010 تقديم بلاغ مشاركة بتاريخ: 16 مايو 2010 يعطيك ربي الف الف عافيه وجعله الله في موازين حسناتكوربي احب الشرح بهذه الطريقه الجميله من جد ذووووووووووووق وروعه وكل شي في الدنيا هده من جمال ينقال في هده الفتافيت الرائعهيعطيك العافيه انا خلاص ابشرك فهمت نص SQL ولو تكمل راح نحترفتلميذك فادي اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.