الدوال و انواعها و كيفية التعامل معها في لغة SQL الدرس|7| - Programmer Tech

Programmer Tech

تعلم البرمجة - علوم الكمبيوتر - أمن المعلومات - القرصنة الأخلاقية

إعلان اعلى المقالة

الثلاثاء، 24 نوفمبر 2020

الدوال و انواعها و كيفية التعامل معها في لغة SQL الدرس|7|

 

الدوال في قواعد البيانات

هي عبارة عن أداة قوية و مفيدة عند إستخدام جملة SELECT فإن الدوال تعطيها مرونة و منطق


دوال الصف الواحد

هي عبارة عن دوال تتعامل مع بيانات صف واحد فقط و تكون نتيجتها قيمة واحدة وتستخدم في أي مكان من جملة SELECT.

أنواع دوال الصف الواحد

1 - دوال حرفية.
2 - دوال رقمية.
3 - دوال تاريخ.
4 - دوال التحويل.

الدوال الحرفية

هي الدوال التي تتعامل مع بيانات حرفية و تكون بياناتها إما رقماً او حرفاً و توجد عدة قيم لهذا الأمر سوف نذكرها وهي :

LOWER : تستخدم لتحويل جميع حروف عمود أو سلسلة إلى حروف صغيرة.
Select LOWER('GOOD by') from dual;
 
UPPER : تستخدم لتحويل جميع حروف عمود أو سلسلة إلى حروف كبيرة.
Select UPPER('GOOD by') from dual;
 
INITCAP : تستخدم لتحويل الحرف الأول فقط من عمود أو سلسلة إلى حرف كبير و باقي الأحرف تحولها إلى حروف صغيرة.
Select INITCAP('GOOD') from dual ;
 
CONCAT : تستخدم لربط عمودين أو سلسلتين معاً و هي مثل اداء اللابط ( || ).
Select CONCAT('GOOD' , 'BY') from dual;
 
SUBSTR : تستخدم لقطع جزء من عمود أو سلسلة تبدأ من الحرف رقم M و عدد الحروف المقطوعة N.
Select SUBSTR('GOOD BY',2,3) from dual;
 
LENGTH : تستخدم لإيجاد عدد حروف السلسلة أو العمود.
Select LENGTH('GOOD') from dual;
 
INSTR: تستخدم للبحث وتحديد مكان الحرف المطلوب داخل العمود او السلسة.
Select INSTR('GOOD','D') from dual;
 
LPAD : تستخدم لضبط أو إضافة بيانات لعمود أو سلسلة من ناحية اليمين و ذلك بملئ حرف معين من اليسار.
Select LPAD('AHMED',10,'*') from dual ;
 
RPAD : تستخدم لضبط أو إضافة بيانات لعمود أو سلسلة من ناحية اليسار و ذلك بملئ حرف معين من اليمين.
Select RPAD('AHMED',10,'*') from dual ;
 
TRIM : تستخدم لقطع حرف معين من بداية أو نهاية الكلمة فقط.
Select TRIM('S' FROM 'SAMI') from dual;
 
DUAL : هي عبارة عن جدول وهمي موجود داخل لغة SQL يستخدم لإجرء العمليات التي لا يدخل فيها أي جدول من داخل قاعدة البيانات.
SELECT LOWER(ename) , UPPER(job) , INITCAP(job) , CONCAT(ename, job)
FROM emp
WHERE sal=3000 ;
 


في هذا المثال يقوم بعرض أسماء الموظفين بأحرف صغيرة بإستخدام الدالة LOWER و عرض الوظيفة بحروف كبيرة بإستخدام الدالة UPPER و كذلك عرض الحرف الأول كبير و باقي الأحرف صغيرة في حقل الوظيفة بإستخدام الدالة INITCAP ثم تقوم الدالة CONCAT بدمج سلسلتين نصيتين إسم الموظف مع الوظيفة ليبدو و كأنة حقل واحد من جدول الموظفين FROM emp.
 

الدوال الرقمية

هي عبارة عن دوال تعمل مع البيانات الرقمية و تكون نتيجتها رقماً فقط, و لها بعض القيم و هي:

ROUND : تستخدم لقص عدد معين من الجزء العشري مع تقريب الأعداد إلى أقرب عدد عشري أو إلى عدد صحيح و n يبين عدد الأرقام بعد العلامة العشرية و توجد حالات للحرف n.
إذا كان (n=0) فإن التقريب يكون إلى اقرب عدد صحيح.
إذا كان (n<0) يكون عدد سالب فإن التقريب يكون قبل العلامة العشرية (الجزء الصحيح).
إذا كان (n>0) يكون عدد موجب فإن التقريب يكون بعد العلامة العشرية (الجزء العشري).

TRUNC:-تستخدم لقص جزء معين من العدد العشري بدون تقريب ولها حالات
إذا كان (n=0) فإانة يتم قص الجزء العشري كلة ويكون الناتج عدد صحيح.
إذا كان(n>0) يكون عدد موجب  فان القص يكون في الجزء بعد العلامة العشرية (الجزء العشري).
اذا كان (n<0) يكون عدد سالب فإن القص يكون قبل العلامة العشرية (الجزء الصحيح).

MOD : تستخدم لإيجاد باقي قسمة العدد m على العدد n.
SQL> SELECT TRUNC(45.923,0),TRUNC(45.923,2),TRUNC(45.923,-1),TRUNC(45.923,-2)
  2  FROM dual ;

في هذا المثال يوضح تأثير الدالة الرقمية ROUND على الأرقام و نجد أنه عندما كان n تساوي صفر تم قص الجزء العشري, و عندما كانت n تساوي 2 فإنه تم قص العدد العشري ليصبح رقمين فقط بعد العلامة العشرية, و عندما كان n تساوي 1- تم قص العدد 5 من الجزء قبل العلامة العشرية فكانت النتيجة 40., و عندما كانت n تساوي 2- تم قص العددين الصحيحين فأصبح صفر.
 

دوال التاريخ

هي عبارة عن دوال تتعامل مع البيانات من نوع تواريخ date, علماً بأن اوراكل قامت بتخزين التاريخ بالشكل التالي "DD-MON-YY", و يتوفر عدة دوال فرعية للتعامل مع التاريخ و هي :

SYSDATE : تستخدم هذه الدالة لعرض تاريخ النظام في الجهاز الحالي.
المثال :
SELECT SYSDATE FROM DUAL;
النتيجة :
25-01-2004
 
MONTHS_BETWEEN : تستخدم لإيجاد عدد الأشهر بين تاريخين.
المثال :
MONTHS_BETWEEN('01-SEP-95' , '11-JAN-94')
النتيجة :
19.6774194

ADD_MONTHS : تستخدم لإضافة عدد معين من الأشهر على تاريخ موجود.
المثال :
ADD_MONTHS('11-JAN-94' , 6)
النتيجة :
'11-JUL-94'

NEXT_DAY : تستخدم لإيجاد تاريخ يوم معين بعد اليوم الحالي.
المثال :
NEXT_DAY('01-SEP-95' , 'FRIDAY')
النتيجة :
'11-JUL-94'

LAST_DAY : تستخدم هذه الدالة لإيجاد آخر يوم في الشهر الحالي.
المثال :
LAST_DAY('01-SEP-95')
النتيجة :
'30-SEP-95'

ROUND : تستخدم لتقريب التاريخ لأقرب شهر أو سنه
المثال :
ROUND('25-JUL-95' , 'MONTH')
النتيجة :
01-AUG-95

TRUNC : تستخدم لقص التاريخ لأقرب شهر أو سنه
المثال :
TRUNC('25-JUL-95' , 'MONTH')
النتيجة :لا
'01-JUL-95'
 

دوال التحويل

هي عبارة عن دوال تقوم بتحويل البيانات من نوع إلى نوع آخر و هي :

TO_CHAR : تستخدم هذه الدالة لتحويل البيانات من نوع رقمي أو تاريخ إلى بيانات حرفية بشكل معين "FORMAT" حسب الطلب fmt.
SQL> SELECT sysdate,TO_CHAR(sysdate,'DD/MM/YYYY') 
 2 FROM dual ;

TO_DATE : تستخدم لتحويل البيانات الحرفية إلى بيانات من نوع تاريخ بشكل معين "FORMAT" حسب الطلب fmt.
SQL> SELECT TO_DATE( 'FEBRUARY 22, 1981' , 'MONTH DD, YYYY' )
 2 FROM dual 

TO_NUMBER : تستخدم لتحويل البيانات الحرفية إلى بيانات رقمية بشكل معين "FORMAT" حسب الطلب fmt. 
SQL> SELECT TO_NUMBER( HIREDATE ,'DD ,MONTH,YY' )
 2 FROM EMP
3 where sal>2000;
 

ليست هناك تعليقات:

إرسال تعليق

facebook

نموذج الاتصال

الاسم

بريد إلكتروني *

رسالة *