|

|
سلسله دروس PL/SQL:الدرس
الاول |

|
بسم الله
الرحمن الرحيم
المعاملات الحسابية المستخدمة
فيمايلي اغلب
المعاملات الحسابية المستخدمة بكثرة في لغة pl/sql
واذا كنت معتاد على لغة برمجة فلن تكون هذا الشي جديد عليك
+ الجمع
* الضرب
** الاس
- الطرح
/ القسمة
المعاملات العلاقية :
<
>
لايساوي
^ =
لايساوي
>
اكبر من
!=
لايساوي
<
اقل من
انواع البيانات شائعة الاستخدام
:
1- varchar2
هذا النوع متغير الطول ويشتمل على الاحرف
الابجدية والارقام
X varchar2(20)
حيث الموجود داخل القوسين هو length الطول
ومن الممكن اعطاءه قيمة ابتدائية
كمايلي
X
varchar2(20)='hamad'
2- number
يستخدم لتمثيل البيانات الرقمية
وتكون صيغة الاعلان كمايلي:
Num number(s)
S هي عدد الارقام(الخانات) وتاخذ قيمة بين
1 إلى 38
ويمكن ايضا تعريف اي متغير رقمي من النوع
العشري كمايلي:
Num number(s,p)
حيث s عدد خانات الرقم الصحيح وايضا
العشري
اما p فهي عدد المنازل(الخانات) بعد الفاصلة
مثال
Num number(12,2)
معنى هذا ان الرقم num مكون من 10 ارقام صحيحة وؤقمين بعد
الفاصلة وبذلك بكون المجموع 12
3- date :
يستخدم هذا المتغير لتخزين قيم
التواريخ مثل
Date_brith date;
في الوضع الافتراضي يعرض اوراكل قيمة التاريخ
بالشكل
DD-MON-YY
4- Boolean :
منطقي true او false
نبدأ الان بمكونات pl/sql :
برامج pl/sql تتم كتابتها في كتل من اوامر البرمجة تحتوي
على مقاطع منفصلة للاعلان عن المتغيرات واوامر البرامج ومعالجة الاستثناءت(الاخطاء)
.
ومن الممكن تخزبن الاجراء في قاعدة البيانات
كبرنامج فرعي له اسم محدد او كتابتها مباشرة في sql * plus ككتله مجهولة.
وكتلة البرنامج كمايلي:
سنبدا اولا كتابة الاجراء مباشرة في
sql * plus وهي كمايلي:
DECLARE
هنا توجد تعريفات المتغيرات والموشرات
BEGIN
جسم البرنامج
EXCEPTION
رموز معالجة الاخطاء
END:
مع ملاحظة مايلي:
ان قسم declare وقسم exception هما اختيارين اي لايشترط وجودهما
اي اذا كان لايوجد لديك تعريف متغيرات
لاتستخدم declare واذا كنت لان تتعامل مع الاخطاء لاتستخدم
exception
----------------------------------------------------------------------
طرق الاسناد
مثل اذا اردت ان تقول ان قيمة i=5 فيتم ذلك كمايلي:
i:=5;
يجب وضع النقطتين قبل =
سوف ناخذ مثال على ذلك
يوجد ضمن اوامر sql الامر DBMS_OUTPUT.PUT_LINE
يستخدم لكي تعرض النتيجة في sql * plus والصيغة العامة له :
DBMS_OUTPUT.PUT_LINE(massege)
حيث massage هي النص او الشي الذي تريد عرضة
تم شرح هذا الامر لكي نبدأ به ونستخدمه لفهم
اوامر ال pl/sql لكن في المستقبل سوف تعرف ان هذا الامر
لايهمك كثيرا.مثال :
نريد طباعة "ARABTEAM2000" على الشاشة sql * plus يتم ذلك كمايلي:
SET SERVEROUTPUT ON;
BEGIN
DBMS_OUTPUT.PUT_LINE('ARABTEAM2000');
End;
جرب هذا ولاحظ النتائج ولعلك
تتسال عن سبب وجود السطر الاول
السطر الاول يخبر sql * plus بأن يكتب كل مايعود به المخدم.
ويكفي كتابته مرة واحدة عندما
تدخل sql *
plus
مثال اخر باستخدام المتغيرات
Declare
i number(5);
BEGIN
i:=5;
DBMS_OUTPUT.PUT_LINE('i = ' ||
i);
END;
جرب هذا الكود ولاحظ النتائج
فائدة || الموجدة ضمن عملة
الطباعة هي للوصل بين التعبيرين
اوامر اللغة :
أ-
الشرط عبارة if then
تستخدم هذه العبارة مثل اي
العبارت الشرطية في لغة سي او سي++ او فيجوال بيسك وغيرها , ولها استخدمات عديدة
وسوف نعرف كيف نستخدمها مقدما مع حقول قواعد البيانات وذلك بعد اخذ
المؤشرات
الصيغة العامة لها
كمايلي:
IF conditonal
THEN
جواب الشرط
ELSE
جواب الشرط اذا كان خطأ
END IF
حيث conditional هي الشرط مثال على ذلك :
Declare
i number(5);
BEGIN
i:=5;
IF i=5 then
DBMS_OUTPUT.PUT_LINE('i = ' ||
i);
ELSE
DBMS_OUTPUT.PUT_LINE('i not eqal 5
');
END IF;
END;
الشرط باستخدام اكثر من شرط
Declare
i number(5);
BEGIN
i:=5;
IF i>1 then
DBMS_OUTPUT.PUT_LINE(i || ' >
1');
ELSIF i<1 then
DBMS_OUTPUT.PUT_LINE(i || ' <
1');
ELSIF i=1 then
DBMS_OUTPUT.PUT_LINE(i || ' =
1');
END IF;
END;
لكن لاحظ هنا فقط كتابة
elsif ولاتخطي فيها فهي ليست
elseif
اتمنى لكم التوفيق ارجو تطبيق
ماسبق لانه تمهيد مهم لما سوف يأتي
الدرس القادم مهم جدا جدا جدا
جدا سوف نشرح التكرار و cursors الموشرات وهي من اهم الاشياء
حمد المهندس
دعواتكم الصالحة
|