مشاهدة النسخة كاملة : الدرس الثامن استعراض البيانات في أوراكل مع الشرط



skybird6114
10-17-2011, 01:31 PM
إستعراض السجلات من الجداول (مع التحديد)
(ملحوظة هامة – أرجو الانتباه للعلامة ' حيث أنها لا تظهر بالموضع الصحيح ببعض المنتديات)
لقد خصصت درسا كاملا لهذا الموضوع لأهميته الكبيرة حيث أن معظم العمل في الحقيقة يعتمد على موضوع تحديد الهدف من البيانات و يقصد بالتحديد هنا و ضع شرط على البيانات المطلوب عرضها .. كلام جديد تعالى معي إلى التفسير و سيتضح كل شئ.
حتى الآن كنا نستعرض جميع السجلات الموجودة في الجدول و هذه ليست الحقيقة في الحياة العملية ... هل في أي مكان يكون الاستعلام ماهي جميع السجلات الموجودة في الجدول ؟ هذا غير واقعي حيث أن الجداول في الحياة الحقيقية ربما تحتوي آلاف بل ربما ملايين من السجلات
و لكن ما يحدث في الواقع هو طلب سجل أو عدة سجلات محددة بشرط ... و الشرط المطلوب يمكن أن يكون بسيطا أو شرطا مركب .. تعالوا نبدأ بالشرح النظري هنا ثم نطبق بأمثلة عملية
الشرط البسيط :
مطلوب عرض سجلات أسماء العاملين الذين تزيد رواتبهم عن 2000
هنا لانريد عرض كل السجلات بل سجلات الذين تزيد رواتبهم عن 2000 فقط ..... هنا وضعنا تحديد هذا التحديد هو ما نسميه الشرط
الشرط له طريقة يكتب بها ليستطيع الكمبيوتر التعامل معه و هي كالتالي :
{field name} {operator} {value}
field name هو إسم الحقل المطلوب منه الشرط و هذه بسيطة في هذا المثال هو حقل الراتب sal.
value و هي القيمة المطلوبة من حقل الإستعلام و القيمة المطلوبة هي 2000.
و الآن ماهو OPERATOR
Operator هو عبارة عن رمز أو علامة للمقارنة أو للتحديد ... و الجدول التالي لبعض علامات المقارنة المشهورة ووظيقة كل منها.

http://farm7.static.flickr.com/6222/6249420315_232840d805_m.jpg

تعالوا ننفذ المثال السابق بطريقة كتابة المقارنة
sal > 2000 كما ترى إسم الحقل يليه علامة المقارنة يليه القيمة المطلوب البحث عنها
مثال آخر للتوضيح : مطلوب العاملين في وظيفة salesman
job = 'SALESMAN'
إنها نفس الطريقة مع ملاحظة وضع علامات للتحديد حول القيمة إذا كان الحقل نصي (text)
الشرط المركب :
بكل بساطة الشرط المركب هو شرط يتكون من أكثر من شرط بسيط و بينهما علامة منطقية لتحديد العلاقة بين الشروط و نوضح هذا الكلام الغامض بمثال يجمع المثالين السابقين معا لتوضيح المفهوم .
مطلوب سجلات العاملين براتب أكبر من 2000 وفي وظيفة salesman
هنا مطلوب شرطين و ليس شرط واحد و سيكون شكل الشرط المركب كالتالي :
{condition} {logical operator} {condition}
condition هنا هو الشرط البسيط و علامة المقارنة المنطقية logical operator و لها عدة علامات منها التالي :
AND : وهي المطلوبة في حالتنا هذه و تعني إعرض البيانات التي تحقق كلا من الشرطين معا .. أي إعرض بيانات العاملين في وظيفة salesman وفي نفس الوقت رواتبهم تزيد عن 2000 و سنكتبها كالتالي :-
sal > 2000 AND job='SALESMAN'
OR : وتعني عرض السجلات التي تحقق أي من الشرطين في الشرط المركب
مثال : إعرض سجلات العاملين في وظيفة salesman و أيضا وظيفة clerk
job='SALESMAN' OR job='CLERK'
هنا سيتم عرض سجلات العاملين في كلا الوظيفتين
في الحقيقة علامات المقارنة كثيرة و أريد أن نبدأ التطبيق العملي و ربما في مراحل متقدمة نتعرض للعلامات الأخرى و لكن ٍاضيف أيضا علامتين أخريين هنا أرى أنه من الأهمية أن نذكرهما الآن
الأولى BETWEEN
مثال للتوضيح : مطلوب العاملين براتب بين 2000 و 3000
sal BETWEEN 2000 AND 3000
كما يمكننا كتابتها هكذا و تعطي نفس الحل
sal >= 2000 AND sal <=3000
الثانية : LIKE و يستخدم معها العلامتين % أو _
% وتعني أي عدد من الحروف أما العلامة _ فتعني حرف و احد فقط و للتوضيح
مطلوب أسماء العاملين التى تبدأ بحرف A
ENAME LIKE 'A'%
سيتم عرض جميع العاملين الذين تبدأ أسماؤهم بالحرف A مثل ALI / ADAM / AMIN و غيرها إن وجدت.
مثال آخر يقابلنا كثيرا في الحياة مطلوب عامل إسمه سامي و في اللغة الإنجليزية ربما تكتب بطرق مختلفة مثل SAMI أو SAMY أو SAME و للحصول على هذا الأسم كمثال يمكننا إستخدام العلامة _.
ENAME LIKE 'SAM'_
سأكتفي بهذا القدر من الشرح النظري و نبدأ التطبيق العملي
نبدأ التطبيق العملي بإضافة جزء جديد إلى الأمر SELECT وهو الجزء الإختياري WHERE
SELECT {options} FROM {table name} WHERE {condition}
و نبدأ ببعض الأمثلة للتطبيق كما فعلنا في الدرس السابق
تدريب -1 مطلوب أسماء العاملين ورواتبهم في وظيفة CLERK
http://farm7.static.flickr.com/6234/6249420359_f3ba1eede3.jpg
أرجو التدقيق في طريقة كتابة الشرط فنجد اسم الحقل الذي يحتوي اسماء العاملين و هو JOB ثم علامة المقارنة وهي هنا = ثم القيمة المطلوبة و هي هنا وظيفة CLEARK مع ملاحظة علامات التحديد ' ' حول القيمة النصية فقط .
تدريب (2) - مطلوب أسماء ووظائف العاملين الذين تزيد رواتبهم عن 3000
http://farm7.static.flickr.com/6211/6249420431_8453e20621.jpg
تدريب (3) - مطلوب أسماء ووظائف العاملين الذين تزيد رواتبهم عن أو تساوي 3000
http://farm7.static.flickr.com/6097/6249949024_cd4a62e254.jpg
ارجو ملاحظة الفرق بين التدريب الثانى و الثالث من حيث وضع علامة = أو عدم إستخدامها حيث يؤثر ذلك على الناتج كما ترى الفرق بين التدريبين.
تدريب (4) - مطلوب أسماء العاملين الذين تزيد رواتبهم عن أو تساوي 1000 في وظيفة salesman
http://farm7.static.flickr.com/6227/6249420469_65a506f085_z.jpg
في هذا التدريب تم استخدام شرط مركب من شرطين بسيطين و لكن الشرط أن يتحقق كل منهما و لذلك نستخدم المعامل AND
تدريب (5) - مطلوب أسماء العاملين و أقسامهم الذين يعملون بالقسمين 10 أو 20 مع ترتيب الأقسام
http://farm7.static.flickr.com/6152/6249949152_1063ba5437_b.jpg
لاحظ هنا كلمة أو في الطللب و هي تعني أن يتحقق أي شرط من الشرطين و ليس كلاهما معا كما بالمثال السابق و لهذا إستخدمنا المعامل OR.
تدريب (6) - مطلوب أسماء العاملين ورواتبهم بين 1000 و 2000

http://farm7.static.flickr.com/6115/6249420551_5abdf7cbc5_z.jpg
تدريب (7) - مطلوب أسماء العاملين وتاريخ بداية العمل بعد أو يساوي التاريخ 1-1-1983
http://farm7.static.flickr.com/6151/6249420581_a95343cdb7_z.jpg
تدريب (8) - مطلوب أسماء العاملين ورواتبهم و العمولة بحيث أن العمولة ليست لاشئ ( لا شئ تختلف عن الصفر كما ذكرنا من قبل)
http://farm7.static.flickr.com/6231/6249420655_3b404b1a04.jpg
تدريب (9) - مطلوب أسماء العاملين ورواتبهم و العمولة إذا كان لهم عمولة
http://farm7.static.flickr.com/6214/6249949284_93e7c41e93_z.jpg
تدريب (10) - مطلوب أسماء العاملين و الذين تبدأ أسماؤهم بالحرف A
[IMG]http://farm7.static.flickr.com/6169/6249420707_aafba4b1a3.jpg[/IMG

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

A7med Baraka
10-17-2011, 03:09 PM
جزاك الله كل خير على المجهود الرائع