شبكة ابوشمس لوحة تحكم العضو تسجيل عضوية جديده   البحث في المنتدى


الشركة اليمنية لخدمات الويب


العودة   منتديات ابوشمس > >

 
قديم 2012-03-06, 07:30 PM   #1
.:: نور الشمس ::.
الصورة الرمزية nens

nens غير متواجد حالياً
بيانات اضافيه
 تاريخ التسجيل: 11 - 7 - 2010
 رقم العضوية : 41373
 مشاركاتي : 185
 أخر زيارة : 2013-02-08 (09:41 PM)
 بمـــعــدل : 0.12 يوميا
 زيارات الملف الشخصي : 1493
 فترة الأقامة : 1534 يوم
 معدل التقييم : nens جديد
لوني المفضل : Cadetblue
M72 دروس في الاوراكل



-


دروس الاوراكل


استعراض البيانات في أوراكل جزء 2 استخدام الشرط

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

دروس الاوراكل

تعالوا ننفذ المثال السابق بطريقة كتابة المقارنة
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
دروس الاوراكل
أرجو التدقيق في طريقة كتابة الشرط فنجد اسم الحقل الذي يحتوي اسماء العاملين و هو JOB ثم علامة المقارنة وهي هنا = ثم القيمة المطلوبة و هي هنا وظيفة CLEARK مع ملاحظة علامات التحديد ' ' حول القيمة النصية فقط .
دروس الاوراكل


تدريب (2) - مطلوب أسماء ووظائف العاملين الذين تزيد رواتبهم عن 3000
دروس الاوراكل
تدريب (3) - مطلوب أسماء ووظائف العاملين الذين تزيد رواتبهم عن أو تساوي 3000
دروس الاوراكل
ارجو ملاحظة الفرق بين التدريب الثانى و الثالث من حيث وضع علامة = أو عدم إستخدامها حيث يؤثر ذلك على الناتج كما ترى الفرق بين التدريبين.
تدريب (4) - مطلوب أسماء العاملين الذين تزيد رواتبهم عن أو تساوي 1000 في وظيفة salesman
دروس الاوراكل
في هذا التدريب تم استخدام شرط مركب من شرطين بسيطين و لكن الشرط أن يتحقق كل منهما و لذلك نستخدم المعامل AND
تدريب (5) - مطلوب أسماء العاملين و أقسامهم الذين يعملون بالقسمين 10 أو 20 مع ترتيب الأقسام
دروس الاوراكل
لاحظ هنا كلمة أو في الطللب و هي تعني أن يتحقق أي شرط من الشرطين و ليس كلاهما معا كما بالمثال السابق و لهذا إستخدمنا المعامل OR.
تدريب (6) - مطلوب أسماء العاملين ورواتبهم بين 1000 و 2000

دروس الاوراكل

تدريب (7) - مطلوب أسماء العاملين وتاريخ بداية العمل بعد أو يساوي التاريخ 1-1-1983
دروس الاوراكل

تدريب (8) - مطلوب أسماء العاملين ورواتبهم و العمولة بحيث أن العمولة ليست لاشئ ( لا شئ تختلف عن الصفر كما ذكرنا من قبل)
دروس الاوراكل
تدريب (9) - مطلوب أسماء العاملين ورواتبهم و العمولة إذا كان لهم عمولة
دروس الاوراكل
تدريب (10) - مطلوب أسماء العاملين و الذين تبدأ أسماؤهم بالحرف A
دروس الاوراكل

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






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


من مواضيع nens
دروس اوراكل
دروس في الاوراكل
دروس في الاوراكل
دروس في الاوراكل
مجموعه كتب اوراكل
قديم 2012-03-07, 01:03 AM   #2
الـمــديـر الـعــــام
شمعة تحترق لتضئ لكم الطريق
الصورة الرمزية !!abushams!!

!!abushams!! غير متواجد حالياً
بيانات اضافيه
 تاريخ التسجيل: 12 - 4 - 2007
 رقم العضوية : 1
 مشاركاتي : 41,543
 أخر زيارة : 2014-08-08 (11:41 PM)
 بمـــعــدل : 15.27 يوميا
 زيارات الملف الشخصي : 13751
 فترة الأقامة : 2720 يوم
 معدل التقييم : !!abushams!! جديد
 الدولة : قلب حبيبي
 الجنس ~ : Male
لوني المفضل : Green
افتراضي رد: دروس في الاوراكل







استعراض البيانات في أوراكل – جزء 3 – إستخدام الدوال

* * * * *الدوال * * * * *
الدوال أو كما يسميها البعض الوظائف كما يطلقون عليها فانكشن من الكلمة الإنجليزية لها function وهي وظائف تضاف مع الأوامر لتحقيق هدف ما.
الوظائف(الدوال) موجودة في جميع لغات البرمجة و لها إستخدامات و فوائد هامة كثيرة كما سوف نرى.
لتوضيح الامر نذكر المثال التالي :
إذا طلب منك عدد العاملين المسجلين بقاعدة البيانات سيكون الرد الامر بسيط سوف استخدم الامر SELECT و سوف يظهر عدد السجلات بعد استعراض جميع السجلات
و لكن أقول لك إذا كان عدد السجلات كبيرا جدا بالالاف و ربما عشرات و مئات الالاف فسوف يكون الامر صعب جدا.
و أصعب من ذلك ما هو مجموع رواتب العاملين ... ستعجز عن الرد و لو استخدمت الطريقة اليدوية لا أدري كم من الوقت يكفيك للرد و غيرها الكثير ...
الحل بسيط و هو استخدام الدوال و هي تتشابه كثيرا في معظم لغات البرمجة.

تتميز الوظائف بالشكل المتميز التالي

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

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

الوظائف العددية(الرقمية) - Number Functions
وهذه الوظائف لن نخوض فيها كثيرا لخصوصيتها لمن يتعاملون معها و هم يعرفون المعنى الرياضي لها و لكن سأشرح منها ما أرى إحتياج العامة له
(ABS(n : لحساب القيمة المطلقة للعدد n
كما توجد جميع دوال حساب المثلثات مثل SIN / COS / وغيرها الكثير
(LN(n: حساب اللوغاريتم الطبيعي
(SQRT(n : حساب الجذر التربيعي
(ROUND(n,m : وتسمى دالة التقريب العشري وتعمل على تقريب الكسور العشرية للعدد n بالطول m.
*** إذا كانت m هي الرقم 2 و تعني أن يتم تقريب الأعداد بعد العلامة العشرية إلى رقمين.
*** إذا كانت m هي صفر و تعني تقريب جميع الكسور العشرية و يصبح العدد صحيح بدون كسور عشرية.
*** إذا كانت m هي واحد و تعني أن يتم تقريب الكسور العشرية إلى رقم واحد فقط بعد العلامة العشرية.
و الأمثلة التالية توضح ذلك :
ملحوظة هامة :
نحتاج لأمر إستعراض البيانات وهو الأمر SELECT و لكن مع هذا الأمر يجب ذكر إسم الجدول المطلوب الحصول على البيانات منه و هنا ليس لدينا جدول محدد للعمل عليه. و لذا سوف نستخدم إضافة جديدة مع الأمر وهي الجدول الوهمي أو الإفتراضي DUAL. و سنرى طريقة الإستخدام في الأمثلة التالية. لتطبيق هذه الأمثلة
****************

=============================================
(TRUNC(n,m : وتسمى دالة الإستبعاد حيث تبقي على العدد بدون التقريب
*** هذه الدالة تختلف قليلا عن ROUND حيث تقوم بحذف الكسور دون تقريب و المثال التالي يوضح ذلك
حيث الرقم 4 كما هو و لم يتم تقريب الرقم 6 إليه أنظر المثال السابق و لاحظ الفرق.


==================================
الوظائف الحرفية (النصية) Character Functions
INITCAP(string) تحويل الحرف الأول من الكلمة إلى حروف كبيرة


LOWER(string) : تحويل الحروف الكبيرة إلى حروف صغيرة
**** وهذه الدالة مع الدالة التالية هامة جدا عند إستقبال بيانات من مستخدم ربما يقوم بخلط الحروف الكبيرة و الصغيرة معا عند إدخال البيانات باللغة الإنجليزية.



UPPER(string) : تحويل الحروف الصغيرة إلى حروف كبيرة

LENGTH(string) : إيجاد عدد الحروف التي يتكون منها النص
لاحظ في هذا الأمر أنه تم إحتساب المسافات كحروف



TRIM(string) : حذف المسافات الزائدة يمين و يسار النص




*** لاحظ أن طول النص قد قل بعدد المسافات يمينا و يسارا و انتبه لطريقة إستخدام وظيفتين معا من حيث فتح و إغلاق الأقواس و عدد الأقواس المفتوحة و المغلقة

LTRIM(string) : حذف المسافات الزائدة يسار النص



RTRIM(string) : حذف المسافات الزائدة يمين النص


CONCAT(string1,string2) :
إضافة النص الأول إلى النص الثاني ليتكون نص جديد من لصق النصين جنبا إلى جنب.
لاحظ إلتصاق الإسم مع الوظيفة و لكن ليبدو النص بشكل جيد نحتاج مسافة للفصل بين الإسم و الوظيفة
و المشكلة هنا أن هذه الوظيفة لها معاملان فقط و لكن الحل بسيط و هذا يوضح أننا نحتاج للتفكير لإيجاد الحلول و لذلك سنستخدم الدالة مرتين في الأولى نضيف مسافة للإسم و المرة الثانية نضيف لها الوظيفة ليصبح بينهما مسافة كما بالمثال التالي. إنتبه دائما لإستخدامات الأقواس لأنها غالبا سبب حدوث الأخطاء






(SUBSTR(string1,start,length : نقوم بقص جزء من النص بداية من الرقم start بالطول length



*************************************************
وظائف التحويل (CONVERSION FUNCTIONS):
*** هذه الوظائف تستخدم للتحويل من أحد أنواع البيانات الى نوع آخر ( إن أمكن ذلك).
*** لماذا كلمة إن أمكن ذلك : يمكن تحويل عدد الى نص. يمكن تحويل تاريخ الى نص ولكن ......
*** هل يمكن تحويل أى نص إلى تاريخ !!!! هل يمكن تحويل أى نص إلى عدد رقمي !!!!
*** يمكن تحويل النص لتاريخ إذا كان على شكل تاريخ أو وقت فقط.
*** يمكن تحويل نص إلى رقم يستخدم في الحساب إذا كان بشكل عددي فقط.
*** مثال للتوضيح : إذا كان لدينا حقل يحتوي العمر هذا الحقل يمكن أن يكون عدد و يمكن أن يكون نص.
*** : إذا كان لدينا حقل يحتوي تاريخ الميلاد يمكن تحويله الى نص
*** و لكن لدينا حقل يحتوي الوظيفة في هذه الحالة لا يمكن تحويله الى عدد و لايمكن تحويله الى تاريخ.

***( TO_CHAR(arg تستخدم هذه الدالة لتحويل التاريخ أو الوقت أو الاعداد الى نص.
*** أمثلة :

***( TO_NUMBER(arg تستخدم هذه الدالة لتحويل النص بين القوسين إلى قيمة عددية يمكن إستخدامها فى عمليات حسابية.
*** TO_DATE(arg) تستخدم هذه الدالة لتحويل النص بين القوسين إلى تاريخ.
================================================== ======
وظائف التاريخ و الوقت :
*** SYSDATE
**من الوظائف الهامة حيث تستخدم لمعرفة التاريخ و الوقت.

*** (MONTHS_BETWEEN(d1,d2 *** لحساب عدد الشهور بين تاريخين.

الوظائف الإحصائية (Aggregate Function):
******************************************
*** من أهم الوظائف التى نحتاج إليها كما سنرى بالأمثلة التالية :
****() COUNT : تستخدم لإيجاد عدد السجلات
*** مثل عدد العاملين بأحد الفروع أو عدد العاملين براتب 1000 مثلا و هكذا كما سنرى بالأمثلة :

و الآن هناك إضافة جديدة و هامة جدا و هي ما عدد العاملين في كل قسم.
هنا نحتاج لإضافة جديدة للأمر SELECT و هي الإختيار GROUP BY و هي إضافة للأمر و تعني تقسيم البيانات إلى مجموعات طبقا للحقل الذي يتم تحديده و من ثم إيجاد العدد لكل مجموعة. و بنفس الطريقة يمكن إيجاد المجموع و المتوسط و أكبر و أصغر عدد للدوال الأخرى.
مثال توضيحي ما هو عدد العاملين بكل قسم من الأقسام. يمكن تكرار الأمر COUNT عدة مرات بعدد الأقسام و لكن يكون من الصعب جدا تنفيذ ذلك مع عدد كبير من الأقسام. و لهذا نحتاج للإضافة الجديدة GROUP BY.
و الآن لإيجاد عدد العاملين بكل قسم نستخدم الأمر التالي ثم نقوم بالتوضيح :



كما ترى لقد قام الأمر آليا بتقسيم الأقسام إلى مجموعات و قام بإيجاد عدد العاملين بكل مجموعة.
و الآن لمزيد من التوضيح ما عدد العاملين بكل وظيفة :




----() SUM : إيجاد المجموع مثل مجموع مرتبات العاملين أو مجموع درجات طابب و غيرها .....

بنفس الطريقة السابقة يمكننا إيجاد مجموع مرتبات العاملين بكل قسم :




مع رجاء ملاحظة أنه في حالة COUNT لم يكن من المهم ذكر إسم الحقل لأن العدد يكون للسجلات أما في حالة الدوال الباقية مثل SUM / MIN / MAX / AVG يجب تحديد الحقل المطلوب إيجاد المجموع أو المتوسط أ, أكبر أو أصغر قيمة له بين قوسي الدالة كما بالمثال التالي :

### ()AVG : لإيجاد المتوسط الحسابي مثل متوسط أعمار العاملين أو متوسط درجات الطلاب و غيرها .



***() MAX : لإيجاد أكبر رقم مثل أكبر درجة من درجات الطلاب لمعرفة المتفوقين أو راتب أكبر عامل



حاول التدريب على الإختيار GROUP BY لإيجاد أكبر و أصغر مرتب بكل قسم.
===() MIN: إيجاد أصغر رقم و هي عكس الدالة السابقة.



***************************************
هذه ليست كل الوظائف و لكن أهم الوظائف الموجودة و هناك المزيد ربما نتعرض له إذا دعت الحاجة لإستخدامه




 

الكلمات الدلالية (Tags)
مطلوب, المركب, المقارنة, الصدمات, الشرط, العالمين, سجلات, operator, salesman, وظيفة

شباب التغيير rss aboshams froums جديد البرامج والانترنت والكمبيوتر وبرامج الصيانه والحماية rss abishams froums جديد الاناشيد الاسلامية الام بي ثري و mp3 جديد ساحة الجرافكس والتصميم والفوتوشوب والسويتش ماكس

الساعة الآن 11:12 PM.

Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.