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] 1 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.