شرح sql بالعربي – الدوال الدرجية في sql

الكاتب بتاريخ عدد التعليقات : 2
شرح sql  بالعربي – الدوالة الدرجية في sql

الدوال الدرجية في sql  هي التي تأخذ معاملاً وحيداً وتعيد قيمة وحيدة.
تختلف الدوال الدرجية من نظام ادارة قواعد بيانات الى آخر ، لذا سنركز على اهم الدوال الدرجية التي حددها المعيار SQL99 اضافة الى بعض الدوال الاخرى الهامة.


نصنِّف التوابع الدرجية إلى أربعة أصناف أساسية هي التالية:
الدوال الرقمية: وهي التوابع الخاصة بالعمليات على الأرقام، مثل تابع التقريب إلى أقرب فاصلة عشرية
دوال سلاسل المحارف: وهي التوابع الخاصة بالعمليات على سلاسل المحارف، مثل تابع تحديد طول سلسلة محرفية
 دوال التاريخ والوقت: وهي التوابع الخاصة بالعمليات على التاريخ والوقت، مثل تابع حساب الزمن الفاصل بين تاريخين.
 دوال التحويل: هي التوابع الخاصة بعملية تحويل مُعامل الدخل من نمط بيانات إلى نمط آخر.

اولا الدوال الرقمية :
هي الدوال الخاصة بالعمليات على القيم الرقيمة ومن اهمها مايلي:
Floor( ) يقرب معامل الدخل الى اقرب عدد صحيح اصغر من معامل الدخل .
Ceiling( ) يقرب معامل الدخل الى اقرب عدد صحيح اكبر من معامل الدخل .
Round( ) يقرب معامل الدخل ذو الفاصلة العشرية الى اقرب عدد صحيح او حقيقي بدقة محددة.
Abs( ) يعيد القيمة المطلقة لمعامل الدخل .
Sin( ), Cos( ), Tan( ) Atan( ),  تحسب قيم ظل وظتا وجا وجتا الخاصة بمعامل الدخل .
SQRT( ) يعيد قيمة الجذر التربيعي لمعامل الدخل .
RAND( ) يعيد رقم عشوائي بين 0و1 ويستخدم معامل الدخل كأساس لتوليد الرقم العشوائي.

امثلة :
نتناول فيما يلي امثلة عن استخدام الدوال الدرجية الرقيمية في انظمة ادارة قواعد البيانات المختلفة :
الدالة floor
لكي نقرب الى اصغر عدد صحيح لدرجة الطالب 66.6   نكتب التعليمة كالتالي
Select floor(studentMark) from marks
ستظهر النتيجة 66 فقط بدون الفاصلة

الدالة Ceiling لنقرب درجة الطالب الى الرقم الصحيح الاعلى سنكتب التالي
Select ceiling(studentMark) from marks
ستظهر النتيجة 67

الدالة Round
إذا كان المطلوب تدوير عدد ما إلى رقم بعدد خانات عشرية محدد نستطيع استخدام الدالة Round  كما يلي :
Select round(studentMark, 1) from marks
تظهر قيم الخرج كقيم ذات خانة عشرية واحدة. فإذا كانت علامة طالب 66 ستظهر القيمة ضمن نتيجة الاستعلام 66.0 وإذا كانت 66.55 ستصبح 66.5

ملاحظة
لا يتعرف نظام إدارة قواعد البيانات Access على الدوال floor  و ceiling لكن يمكن الوصول لنفس النتائج باستخدام دالة INT بدلا عن Floor .
في Oracle  نستخدم Ceil بدلا عن Ceiling

دوال السلاسل الحرفية :
هي الدوال الحرفية الخاصة بالعمليات على السلاسل الحرفية ومن اهمها ما يلي :
Left() وهي الدالة التي تعيد جزء من السلسلة من بدايتها حتى عدد معين من الحروف.
Right() وهي الدالة التي تعيد جزء من السلسلة من نهايتها حتى عدد معين من الحروف.
Substr() وهي الدالة التي تعيد جزء من السلسلة من موقع محدد فيها وبطول محدد من الحروف.
Length() هي الدالة التي تعيد طول السلسلة الحرفية .
Concat() وهي الدالة التي تستخدم لدمج اكثر من سلسلة حرفية .
Upper() / Lower() وهي الدالة التي تحول جميع حروف السلسلة الى احرف كبيرة او صغيرة .
Trim() وهي الدالة التي تلغي الفراغات من بداية السلسلة ونهايتها .
Instr() وهي الدالة التي تستخدم لتحديد موقع سلسلة جزئية ضمن سلسلة رئيسية .

وفيما يلي بعض الامثلة :
فإذا أردنا كتابة الاستعلام الذي يعيد أول 50 محرفًا من قيم الحقل Title في الجدول News يمكننا استخدام الصيغة التالية:
Select left(title, 50) from News
اذا أردنا كتابة الاستعلام الذي يعيد سلسلة محارف بطول 5 محارف اعتبارًا من قيم الحقل Title مبتدئًا من المحرف رقم 10 نكتب الصيغة التالية:
Select substr(title, 10, 5) from News

اذا أردنا كتابة الاستعلام الذي يعيد أطوال سلاسل المحارف الخاصة بالحقل Title نستخدم الصيغة:
Select length(title) from News

ملاحظات:
لا يستخدم نظام إدارة قواعد البيانات Oracle  الدوال ،Right و Left  ويتم الاستعاضة عنها باستخدام التابع Substr .
يستخدم نظام Ms-Access ونظام SQL-Server الصيغة Len بدلا من الدالة Length لحساب طول السلسلة.
كما يستخدم نظام Ms-Access Lcase و Ucase بدلا من Lower و Upper .
نظام SQL-Server و Charindex و DB2  يستخدمو الدالة Posstr لتحديد اول موقع ظهور لسلسلة بدلا من الدالة Instr .

الى الملتقى دمتم بخير

2 تعليقات على موضوع "شرح sql بالعربي – الدوال الدرجية في sql"

شكرا جزيلا ...رائع ...

العفو ...لقد سررنا بمرورك الرائع وتعليقك المشرف لنا ...

لا تبخل علينا باقتراحك او قم بمشاركة الموضوع ليستفيد الاخرين ايضاً شكرا لزيارتك عزيزي الزائر
الإبتساماتإخفاء