منتديات مصر اليوم
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.


منتديات ام الدنيا مصر
 
الرئيسيةأحدث الصورالتسجيلدخول

شرح مبسط للأوراكل- الاستعلام بـ (لغة SQL) الجزء الثاني

استعرض الموضوع التالي استعرض الموضوع السابق اذهب الى الأسفل
كاتب الموضوع رسالة
المدير
Admin
المدير


العمر : 37 تاريخ التسجيل : 11/10/2008 عدد الرسائل : 1089 الموقع : منتديات الاحصائيون العرب

شرح مبسط للأوراكل- الاستعلام بـ (لغة SQL) الجزء الثاني Vide
مُساهمةموضوع: شرح مبسط للأوراكل- الاستعلام بـ (لغة SQL) الجزء الثاني شرح مبسط للأوراكل- الاستعلام بـ (لغة SQL) الجزء الثاني I_icon_minitimeالأحد 12 أكتوبر - 14:11

تحدثنا في الموضوع السابق عن :
نقاط معينه تخص لغة الـ sql
منها...


الاستعلام وقواعد البينات
استخدامات الـSQL
اساسيات جملة الـSQL
تغير اسماء الاعمدة في جملة الـSQL
استخدامات التعابير الرياضه في جملة الـ SQL
اولويه استخدام العمليات الحسابيه داخل جملة الـSQL
استخدام معامل الضم في جملة الـ SQL
استخدام حروف نصية مع معامل الضم
عرض صفوف محددة بأستخدام امر الـWhere
معاملات مقارنة اخرى مع امر Where
استخدام اكثر من شرط في وقت واحد.


ا
للرجوع له ..
7
7

اضغط هنا

وسنتحدث الان عن :
(( الدوال- SQL Functions))
بشكل عام ..

ولكن قبل البدء في الدوال دعونا نتحدث بشكل سريع عن
الترتيب في هذه اللغه ...

الترتيب:
كما هو معروف اما تصاعدياً او تنازلياً
في عمليه الترتيب نستخدم الامر((order by))
نكتب هذا الامر بعد اسم العمود
وهنا يعطينا ترتيباً تصاعدياً( اي يفرز البيانات تصاعدياً)
اما في حالة الفرز التنازلي يضاف امر يسمى الـ (DESC) بعد الامر (order by)
( كما يمكننا في حالة الفرز التصاعدي اضافه الامر (ASC) بعد الامر (order by)

وللتوضيح لنأخذ الامثله التالية :

مثال -1- ( للترتيب التنازلي )
اكتب بلغة الـ SQL استعلام لعرض اسم الموظف والراتب مرتبة البيانات تنازليا حسب الراتب؟

الحل :

select ename,sal
from emp
order by sal DESC;l



توضيح الحل :
emp-----> كما اوضحنا سابقاً اسم العمود ( عمود الموظفين )
ename-----> اسماء الموظفين
sal---------> الراتب
order by sal DESC;l----> نوع الترتيب ( وتخصيصه- الراتب )
اذن....
طلبنا الاستعلام عن اسماء الموظفين + رواتبهم
من جدول الموظفين
مرتبه ترتيباً تنازلياً حسب الراتب ;


مثال -2- ( للترتيب التصاعدي )
اكتب استعلام بلغة الـ SQL لعرض اسم الموظف والراتب مرتبة البيانات تصاعديا حسب الراتب؟

الحل :


select ename,sal
from emp
order by sal;l



توضيح الحل :
emp-----> كما اوضحنا سابقاً اسم العمود ( عمود الموظفين )
ename-----> اسماء الموظفين
sal---------> الراتب
order by sal ;l----> نوع الترتيب ( وتخصيصه- الراتب )
اذن....
طلبنا الاستعلام عن اسماء الموظفين + رواتبهم
من جدول الموظفين
مرتبه ترتيباًتصاعدياً حسب الراتب;





اضاف الاخ Hish@m مشكور لامر الـGroup
وشرحه كان كالتالي :


اقتباس:




كاتب النص الاصلي : Hish@m
الامر group :

فائدته :

في حال اراد مستخدم قواعد البيانات ان يستعلم عن الاقسام مثلا في المؤسسة و من فيها من موظفين

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

يستخدم الامر group

مثال :

استعلم لي عن رقم مشروع و اسم المشروع و عدد من يعمل في هذه المشاريع مرتبة حسب رقم و اسم المشروع ؟

الحل :




SELECT PNUMBER,PNAME,COUNT
FROM PROJECT,WORKS_ON
WHERE PNUMBER = PNO
GROUP BY PNUMBER,PNAME;l




حيث ان:
PNUMBER هو رقم المشروع في الجدول PROJECT
و PNAME هو اسم المشروع في نفس الجدول
و PROJECT و WORKS_ON هي جداول في قاعدة البيانات

هنا في المثال

النتائج من هذا الاستعلام ستكون كالتالي

رقم المشروع اسم المشروع عدد الموظفين فيه


و مشكوورة على وقتك

هشام



واضاف لنا الامر :HAVING
وشرحه كان كالتالي :



اقتباس:


كاتب النص الاصلي : HiSh@m


الامر HAVING

وظيفته :

ياتي غالبا او دائما مع GROUP و هو لكي ناخذ من القروب جزء معين

مثلا : نريد ان نستعل عن الاقسام اللي عدد موظفيها فوق 20 موظف مرتبة في مجموعات ..

نستخدم HAVING

مثال
لكل مشروع يعمل به اكثر من 5 موظفين , اعرض لي رقم المشروع و اسمه و عدد موظفينه الذين يعملون فيه

الحل :


SELECT pnumber,pname,count(*)l
FROM project,works_on
WHERE pnumber=pno
GROUP BY pnumber,pname
HAVING count(*) > 5 ;l



هنا نفس السابق حيث انه في السؤال طلب الاستعلام عن رقم المشروع و اسمه و عدد الموظفين ووضعناها في الجملة SELECT
و اختارنها من الجداول اللتي هي موجودة فيها project,works_on
و ربطنا الجدولين بالامر pnumber=pno
و وضعنها في مجموعات باستخدما الامر GROUP BY
و استبعدنا اي مشروع عدد موظفينه اقل من 5 باستخدم الامر





اخ هشام ..تشكر على اهتمامك .. ومشاركتك
الي بالفعل اثلجة صدري ..
اما بالنسبه للامر ((order by ))
فأنا شرحته في نسختي الثانيه.. ولا انكر ان شرحك كان رائع فيه
لكن حبيت ان الموضوع يكون متكامل بدون تكرار .. تحياتي لك ،،،







والان لندخل بالدوال ((FUNCTIONS))

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

الدوال العددية ..
لناخذ اهمها وهي :
1-Round-------> وظيفتها تقريب الاعداد الكسريه الى اي قيمه عشرية تحدد للدالة
2-Trunc-------> وظيفتها قطع اي جزء عشري من الاعداد الكسرية بدون تقريب .
3- Mod--------> وظيفتها ايجاد باقي قسمة الاعداد الصحيحة.

امثلة عليها :

للداله (Round) :

Round(46.977.1)l


الناتج يكون :
46.98

للداله ( Trunc)

Trunc(46.977.1)l

الناتج يكون :
46.97

الداله (Mod)

Mod(1600.300)l

الناتج يكون :
1000

مثال اخر للتوضيح بشكل سريع :
اكتب استعلام لعرض اسماء ورواتب وعمولة الموظفين وباقي قسمة الرواتب والعمولات للموظفين الذين وظيفتهم 'salesman'؟

الحل :


select ename,sal,comm,mod(sal,com)l
from emp
where job= 'salesman';l




توضيح الحل :
1- اسماء الموظفين ونرمز لهم بالرمز ------->ename
2- رواتب الموظفين ونرمز له بالرمز --------> sal
3- عموله الموظفين ونرمز لها بالرمز -------> comm
4- باقي قسمة الرواتب والعمولات -----------> mod(sal,com)l
5- من جدول الموظفين ونرمز له بالرمز -----> emp
6- بشرط ! وهو ان نوجد باقي قسمة الرواتب والعمولات للمظفين الذين وظيفتهم 'salesman'; فقط !
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://www.bdr4.com

شرح مبسط للأوراكل- الاستعلام بـ (لغة SQL) الجزء الثاني

استعرض الموضوع التالي استعرض الموضوع السابق الرجوع الى أعلى الصفحة
صفحة 1 من اصل 1

صلاحيات هذا المنتدى: لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات مصر اليوم :: .:: البرامج ::. :: جميع انواع الدروس , برمجة , شروحات برامج ... -
Page Rank Button
©phpBB | Ahlamontada.com | منتدى مجاني للدعم و المساعدة | التبليغ عن محتوى مخالف | آخر المواضيع