دروس PL / SQL: كل ما تحتاج لمعرفته حول PL / SQL



يغطي البرنامج التعليمي PL / SQL كل الشرح التفصيلي لجميع المفاهيم الضرورية المطلوبة لإتقان برمجة PL / SQL مع أمثلة مختلفة

PL / SQL هي لغة إجرائية تتغلب على أوجه القصور التي تواجهها لغة الاستعلام الهيكلية . إنه امتداد لـ SQL ويمكننا حتى استخدام استعلامات SQL دون أي متاعب في أي تطبيق أو برنامج PL / SQL. في هذا البرنامج التعليمي لـ PL / SQL ، سنتعرف على المفاهيم الأساسية لـ PL / SQL بالتفصيل. يتم تناول الموضوعات التالية في هذه المقالة.

ما هو PL / SQL؟

إنها تعني امتداد اللغة الإجرائية إلى لغة الاستعلام الهيكلية . أنشأت Oracle PL / SQL التي توسع بعض قيود SQL لتوفير حل أكثر شمولاً لبناء تطبيقات المهام الحرجة التي تعمل على oracle .





تعليمي logo-pl / sql - edureka

الميزات

  • يوفر PL / SQL وظائف اللغة الإجرائية مثل اتخاذ القرار والتكرار وما إلى ذلك.

  • باستخدام أمر واحد ، يمكن لـ PL / SQL تنفيذ عدد من الاستعلامات.



  • يمكننا أيضًا إعادة استخدام وحدات PL / SQL مثل الوظائف والمشغلات والإجراءات وما إلى ذلك المخزنة في قاعدة البيانات بعد الإنشاء.

  • يحتوي PL / SQL أيضًا على استثناء معالجة كتلة يعالج الاستثناءات في PL / SQL.

  • يمكن أيضًا إجراء تدقيق شامل للأخطاء باستخدام PL / SQL



  • التطبيقات المكتوبة بلغة PL / SQL محمولة إلى أجهزة وأنظمة تشغيل أخرى بشرط أن تكون أوراكل جاهزة للعمل.

PL / SQL مقابل SQL

SQL PL / SQL
SQL هو استعلام واحد يُستخدم لإجراء عمليات DDL و DMLPL / SQL عبارة عن كتلة من الأكواد المستخدمة لتحديد برنامج أو إجراء / وظيفة بأكملها ، إلخ
إنه لا يحدد حقًا كيف يجب القيام بالأشياء ، بل يحدد ما يجب القيام بهيحدد PL / SQL كيفية عمل الأشياء
ينفذ بيان واحدينفذ مجموعة من البيانات دفعة واحدة.
يستخدم SQL بشكل أساسي لمعالجة البياناتمن ناحية أخرى ، يتم استخدام PL / SQL لإنشاء التطبيقات
لا يمكن أن تحتوي على تعليمات PL / SQLنظرًا لأنه امتداد SQL ، يمكن أن يحتوي على كود SQL فيه

هياكل الكتل في PL / SQL

ينظم PL / SQL عادةً التعليمات البرمجية في كتل. يُعرف مقطع التعليمات البرمجية بدون اسم باسم كتلة مجهولة. يُعرف باسم الكتلة المجهولة لأنه لم يتم حفظها في قاعدة بيانات oracle. دعونا نلقي نظرة على كتلة مجهولة في PL / SQL.

[إعلان] عبارات الإعلان [بدء] عبارات التنفيذ [استثناء] عبارات الاستثناء END /

بالنظر إلى الرسم البياني الموضح أعلاه ، يمكننا أن نرى أن بنية الكتلة مقسمة إلى أربعة أجزاء ، أي الإعلان والبدء والاستثناء والنهاية. دعونا نحاول فهم كيفية عمل بنية الكتلة في PL / SQL. من بين كل هذه الأقسام ، قسم التنفيذ إلزامي والباقي كلها اختيارية.

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

  • ابدأ الكلمة الأساسية تستخدم لقسم التنفيذ. إنه إلزامي ويحتوي على جميع البيانات التي تحتاج إلى التنفيذ. هذه الكتلة هي المكان الذي يتم فيه تعريف منطق الأعمال ، يمكننا استخدام كل من العبارات الإجرائية أو عبارات SQL في هذه الكتلة.

  • ال استثناء تستخدم الكلمة الأساسية لقسم الاستثناء. يحتوي على كافة بيانات الاستثناء.

  • النهاية تشير الكلمة الأساسية إلى نهاية الكتلة ، بينما تشير الشرطة المائلة للخلف '/' إلى الأداة التي تستخدمها (Oracle Database Tool) لتنفيذ كتلة PL / SQL.

فيما يلي مثال بسيط لإظهار كيف يمكننا استخدام كود PL / SQL.

نهاية البداية /

الآن بعد أن عرفنا كيف تعمل بنية الكتلة في PL / SQL ، دعنا نفهم الجوانب المختلفة لـ PL / SQL مثل الإعلان عن المتغيرات وتسميتها وتعيينها.

متغيرات PL / SQL

المتغير في PL / SQL هو في الأساس اسم يختلف أو موقع تخزين مؤقت يدعم نوع بيانات معين. دعونا نلقي نظرة على كيفية استخدام المتغيرات في برنامج PL / SQL.

كيفية التصريح عن مجموعة ديناميكية في جافا

قواعد التسمية المتغيرة

يتبع PL / SQL القواعد التالية لتسمية المتغيرات.

  • لا يمكن أن يكون المتغير أكثر من 31 حرفًا

  • يجب أن يبدأ اسم المتغير بحرف ASCII. نظرًا لأن PL / SQL حساس لحالة الأحرف ، سيكون الحرف الكبير والحرف الصغير متغيرات مختلفة.

  • بعد الحرف الأول ، يجب أن يكون هناك حرف خاص ($ ، _) أو أي رقم.

اصطلاحات التسمية

استخدم اصطلاحات التسمية التالية المدرجة أدناه لاستخدام المتغيرات.

اختصار نوع البيانات
الخامس_فاركار 2
ن_رقم
رالطاولة
صصف
د_تاريخ
ب_منطقي

إعلان

دعونا نحاول فهم كيفية عمل إعلان المتغير في PL / SQL

يتضمن التصريح اسم المتغير متبوعًا بنوع البيانات ومفصولاً بفاصلة منقوطة. فيما يلي مثال يوضح كيف يمكنك التصريح عن متغير في PL / SQL.

إعلان v_name VARCHAR (25) n_age NUMBER (3) BEGIN NULL END

يمكنك أيضًا إضافة طول نوع البيانات كما فعلنا في المثال أعلاه.

المراسي

تشير نقطة الارتساء أساسًا إلى استخدام الكلمة الرئيسية٪ TYPE التي تهدف إلى تعريف متغير بنوع البيانات المرتبط بنوع بيانات العمود لعمود معين في الجدول.

ألق نظرة على مثال لفهم هذا. لنفترض أن لدينا طاولة موظفين ، يمكننا استخدام المراسي بالطريقة التالية.

DECLARE v_name EMPLOYEE.NAME٪ TYPE n_age EMPLOYEE.AGE٪ TYPE BEGIN NULL END /

مهمة

التخصيص المتغير سهل للغاية ، يمكننا استخدام عامل التعيين لتعيين قيم لمتغير. يوضح المثال التالي كيف يمكننا تعيين قيم لمتغير.

DECLARE v_name VARCHAR (20) n_course VARCHAR (10) BEGIN v_name = 'edureka' v_course = 'sql' END /

التهيئة

يمكننا تهيئة قيمة للمتغير في قسم التصريح أيضًا. يوضح المثال التالي كيف يمكننا تهيئة القيم إلى متغير.

DECLARE v_name VARCHAR (20) = 'edureka' n_course VARCHAR (10) = 'sql' BEGIN NULL END /

الآن بعد أن عرفنا كيف يمكننا العمل مع المتغيرات ، دعونا نحاول فهم كيفية استخدامنا للوظائف في PL / SQL.

الوظيفة في PL / SQL

الوظيفة في PL / SQL هي أساسًا كتلة مسماة تُرجع قيمة. يُعرف أيضًا باسم روتين فرعي أو برنامج فرعي ، يوضح بناء الجملة التالي كيف يمكننا استخدام الوظائف في PL / SQL.

إنشاء [OR REPLACE] FUNCTION function_name [(parameter_1 [IN] [OUT] data_type، parameter_2 [IN] [OUT] data_type، parameter_N [IN] [OUT] data_type] RETURN return_data_type IS BEGIN BEGIN BEGIN BEGIN

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

  • في - المعلمة IN هي معلمة للقراءة فقط.

  • خارج - إنها معلمة للكتابة فقط

  • في خارج - المعلمة IN OUT هي معلمة للقراءة والكتابة.

فيما يلي مثال بسيط لإظهار كيفية استخدامنا للوظائف في PL / SQL.

إنشاء أو استبدال الوظيفة try_parse (iv_number في VARCHAR2) رقم الإرجاع هو BEGIN RETURN to_number (iv_number) EXCEPTION عندما يقوم الآخرون بإرجاع NULL END

استدعاء وظيفة

دعنا نحاول استدعاء الوظيفة التي قمنا بها في كتلة مجهولة في المثال التالي.

ضبط الخادم على الحجم 1000000 DECLARE n_x number n_y number n_z number BEGIN n_x: = try_parse ('256') n_y: = try_parse ('29 .72 ') n_z: = try_parse (' pqrs ') DBMS_OUTPUT.PUT_LINE_OUTP (n_x. n_y) DBMS_OUTPUT.PUT_LINE (n_z) END /

يمكننا استدعاء الوظيفة في عبارة SELECT أيضًا. الآن بعد أن عرفنا كيف يمكننا استخدام الوظائف في PL / SQL ، دعونا نحاول فهم كيفية عملنا مع الإجراءات في PL / SQL.

إجراء PL / SQL

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

دعونا نلقي نظرة على مثال بسيط لفهم كيفية عمل الإجراء في PL / SQL

إنشاء أو استبدال الإجراء ، Adjust_salary (in_employee_id في EMPLOYEES.EMPLOYEE_ID٪ TYPE ، in_percent IN NUMBER) هو BEGIN - تحديث راتب الموظف تحديث الموظفين تعيين الراتب = الراتب + الراتب * in_percent / 100 حيث الموظف = in_employee_id END

في المثال أعلاه ، لدينا معلمتان ، يقوم الإجراء بضبط الراتب بنسبة معينة وتقوم الكلمة الأساسية UPDATE بتحديث القيمة في معلومات الراتب.

عنوان الإجراء

يسمى المقطع قبل الكلمة الأساسية IS عنوان الإجراء. فيما يلي بعض المؤشرات التي يجب أن يكون المرء على دراية بها أثناء العمل مع الإجراءات.

  • مخطط - إنه الاسم الاختياري للمخطط الذي ينتمي إليه الإجراء.

  • اسم - اسم الإجراء الذي يجب أن يبدأ بفعل.

  • المعلمات - إنها قائمة اختيارية للمعلمات.

  • معتمد - وهي تحدد ما إذا كان سيتم تنفيذ الإجراء بامتياز المستخدم الحالي أو المالك الأصلي للإجراء.

هيئة الإجراء

كل ما يأتي بعد الكلمة الأساسية IS يسمى جسم الإجراء. لدينا بيانات الإعلان والاستثناء والتنفيذ في جسم الإجراء. على عكس الوظيفة ، يتم استخدام الكلمة الأساسية RETURN في إجراء لإيقاف التنفيذ وإعادة عنصر التحكم إلى المتصل.

استدعاء إجراء

دعونا نرى كيف يمكننا استدعاء إجراء في PL / SQL.

اسم الإجراء EXEC (param1، param2 & hellipparamN)

يمكننا استدعاء الإجراءات بدون معلمات بمجرد استخدام الكلمة الأساسية EXEC واسم الإجراء. الآن بعد أن عرفنا كيف يمكننا العمل مع الإجراءات ، دعونا نحاول فهم كيفية استخدام الكتل المتداخلة في PL / SQL.

كتلة متداخلة

الكتلة المتداخلة ليست سوى مزيج من واحد أو أكثر من كتل PL / SQL للحصول على تحكم أفضل في التنفيذ ومعالجة استثنائية للبرنامج.

فيما يلي مثال بسيط للكتلة المتداخلة.

def __init __ (ذاتي)
تعيين الخادم على الحجم 1000000 DECLARE n_emp_id EMPLOYEES.EMPLOYEE_ID٪ TYPE: = & emp_id1 BEGIN DECLARE n_emp_id staff.employee_id٪ TYPE: = & emp_id2 v_name الموظفون. للموظف '|| n_emp_id ||' هو '|| v_name) EXCEPTION WHEN no_data_found THEN DBMS_OUTPUT.PUT_LINE (' الموظف '|| n_emp_id ||' غير موجود ') END END /

تُعرف كتلة PL / SQL الخارجية في المثال أعلاه بالكتلة الأصلية أو كتلة التضمين ، ومن ناحية أخرى تُعرف الكتلة الداخلية بالكتلة الفرعية أو الكتلة المغلقة.

ليس من الجيد استخدام المتغيرات التي لها نفس الأسماء في كلتا الكتلتين لأنه أثناء التنفيذ سيتجاوز متغير الكتلة الفرعية متغير الكتلة الأصل. يحدث ذلك لأن PL / SQL يعطي الأولوية الأولى للمتغير داخل الكتلة الخاصة به.

تسمية الكتلة

يمكننا التغلب على هذه المشكلة من خلال تسمية الكتلة التي تساعدنا في الإشارة إلى المتغيرات داخل الكتل باستخدام التسمية.

فيما يلي مثال بسيط لإظهار كيف يمكننا استخدام تسمية الكتلة.

 <>نعلن ... ابدأ ... النهاية

يساعد استخدام تسمية الكتلة في تحسين قابلية قراءة الكود ، والحصول على تحكم أفضل والإشارة إلى الكتل. الآن بعد أن عرفنا كيف يمكننا العمل مع الكتل المتداخلة ، دعونا نحاول فهم كيفية عمل IF STATEMENT في PL / SQL.

بيان IF

يحتوي PL / SQL على ثلاثة بيانات IF

  • اذا ثم - إنها أبسط عبارة إذا كان الشرط صحيحًا ، فسيتم تنفيذ التعليمات ، وإذا كان الشرط خاطئًا ، فلن يفعل شيئًا.

  • إذا- ثم- ELSE- في هذا ، يتم إضافة بند ELSE لتسلسل بديل من العبارات.

  • إذا- ثم- ELSEIF - يسمح لنا بتنفيذ شروط اختبار متعددة في تسلسل.

إذا كان بناء الجملة

إذا كان الشرط ينتهي بعد ذلك التسلسل_من_البيانات

بناء الجملة IF-THEN-ELSE

إذا كان الشرط بعد ذلك التسلسل_of_if_statements ، وإلا فإنه سيتم إنهاء تسلسل_من_البيانات_السابقة

بناء جملة IF-THEN-ELSEIF

إذا كان الشرط 1 ثم تسلسل_من_بيانات 1 شرط ELSIF 2 ثم تسلسل_من_بيانات 2 أخرى تسلسل_من_بيانات 3 النهاية إذا

الآن وقد انتهينا من استخدام عبارة IF ، فلنلقِ نظرة على عبارة CASE في PL / SQL.

بيان CASE

تساعد عبارة CASE بشكل أساسي في تنفيذ سلسلة من العبارات بناءً على المحدد. المحدد ، في هذه الحالة ، يمكن أن يكون أي شيء ، يمكن أن يكون متغيرًا أو دالة أو تعبيرًا بسيطًا. فيما يلي مثال بسيط لإظهار بناء جملة جملة CASE في PL / SQL.

[<>] حالة [صحيح | المحدد] عند التعبير 1 ثم تسلسل_الحسابات 1 عند التعبير 2 ثم تسلسل_البطاقات 2 ... عند التعبير N ثم تسلسل_بيانات_البيانات N [عدا ذلك تسلسل_من_البيانات N + 1] نهاية الحالة [اسم_المسمية]

في الصيغة أعلاه ، بعد الكلمة الأساسية CASE يأتي المحدد. سيقوم PL / SQL بتقييم المحدِّد مرة واحدة فقط لتحديد العبارة التي يجب تنفيذها.

يليه المحدد الكلمة WHEN. إذا كان التعبير يلبي المحدد ، فسيتم تنفيذ العبارة المقابلة بعد ذلك.

الآن بعد أن عرفنا كيف يمكننا استخدام جملة CASE ، دعونا نحاول فهم كيف سنستخدم عبارات الحلقة في PL / SQL.

بيان الحلقة

عبارة الحلقة في PL / SQL هي عبارة تكرارية تسمح لك بتنفيذ سلسلة من العبارات عدة مرات. فيما يلي مثال بسيط لإظهار بناء جملة جملة حلقة في PL / SQL.

LOOP التسلسل_البيانات_الحلقة النهاية

يجب أن يكون هناك عبارة واحدة قابلة للتنفيذ على الأقل بين الكلمة الأساسية LOOP و END LOOP.

حلقة مع بيان الخروج

تسمح لك العبارات EXIT و EXIT when بالخروج من الحلقة. تُنهي عبارة EXIT WHEN الحلقة بشكل مشروط بينما يُنهي EXIT التنفيذ دون قيد أو شرط.

LOOP ... الخروج عندما ينتهي الشرط LOOP

تسمية الحلقة

يتم استخدام تسمية الحلقة لتأهيل اسم متغير عداد الحلقة عند استخدامه في حلقة متداخلة. فيما يلي بناء جملة تسمية الحلقة.

 <>LOOP تسلسل_من_بيانات تسمية نهاية الحلقة

الآن بعد أن عرفنا كيف يمكننا استخدام عبارات الحلقة ، دعونا نلقي نظرة على عبارات حلقة while لفهم أفضل.

بينما بيان التكرار

يمكننا استخدام جملة WHILE loop عندما لا يتم تحديد عدد عمليات التنفيذ حتى يبدأ التنفيذ. يتم استخدام بناء الجملة التالي لعبارة WHILE loop في PL / SQL.

بينما الشرط LOOP التسلسل_of_statements END LOOP

الشرط في بناء الجملة هو قيمة منطقية أو تعبير يتم تقييمه ليكون إما TRUE أو FALSE أو NULL. إذا كان الشرط صحيحًا ، فسيتم تنفيذ العبارات ، وإذا كانت FALSE ، يتوقف التنفيذ وينتقل عنصر التحكم إلى العبارة التالية القابلة للتنفيذ.

الآن بعد أن عرفنا كيف يمكننا استخدام تعليمة WHILE loop ، دعونا نلقي نظرة على تعليمة حلقة FOR.

لبيان الحلقة

تسمح لنا عبارة حلقة FOR في PL / SQL بتنفيذ سلسلة من العبارات لعدد محدد من المرات. فيما يلي بناء الجملة لاستخدام جملة حلقة FOR في PL / SQL

FOR loop_counter IN [REVERSE] low_bound .. أعلى_bound LOOP التسلسل_of_statements END LOOP

ينشئ PL / SQL متغيرًا محليًا loop_counter تلقائيًا بنوع بيانات صحيح للحلقة حتى لا تضطر إلى التصريح عنه صراحة. الجزء السفلي .. المرتفع هو النطاق الذي تتكرر فيه الحلقة. أيضًا ، يجب أن يكون لديك عبارة واحدة قابلة للتنفيذ على الأقل بين الكلمات الأساسية LOOP و END LOOP.

الآن بعد أن عرفنا كيف يمكننا استخدام عبارات الحلقة في PL / SQL ، دعنا نلقي نظرة على معالجة استثنائية في PL / SQL.

معالجة استثنائية

في PL / SQL يتم التعامل مع أي نوع من الأخطاء كاستثناء. يمكن التعامل مع استثناء كشرط خاص يمكن أن يغير أو يغير تدفق التنفيذ. في PL / SQL ، هناك نوعان من الاستثناءات.

  • استثناء النظام - يتم رفعه بواسطة وقت تشغيل PL / SQL عندما يكتشف خطأ.

  • استثناء محدد بواسطة المبرمج - يتم تحديد هذه الاستثناءات من قبل المبرمج في تطبيق معين.

تحديد استثناء

يجب التصريح عن استثناء في PL / SQL قبل أن يتم رفعه. يمكننا تحديد الاستثناء باستخدام كلمة EXCEPTION كما فعلنا في المثال أدناه.

ما هو علم البيانات المستخدم
EXCEPTION_NAME EXCEPTION

لرفع استثناء ، نستخدم الكلمة الأساسية RAISE.

RAISE EXCEPTION_NAME

كان هذا كل شيء عن PL / SQL ، آمل أن يكون هذا المقال قد ساعدك في إضافة قيمة إلى معرفتك. لمزيد من المعلومات حول SQL أو قواعد البيانات ، يمكنك الرجوع إلى قائمة القراءة الشاملة هنا: .

إذا كنت ترغب في الحصول على تدريب منظم على MySQL ، فراجع الذي يأتي مع تدريب مباشر بقيادة مدرب وخبرة مشروع واقعية. سيساعدك هذا التدريب على فهم MySQL بعمق ويساعدك على تحقيق إتقان الموضوع.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات في ' البرنامج التعليمي PL / SQL 'وسأعود إليك.