Presentation is loading. Please wait.

Presentation is loading. Please wait.

كتابة الجمل التنفيذية في PL/SQL

Similar presentations


Presentation on theme: "كتابة الجمل التنفيذية في PL/SQL"— Presentation transcript:

1 كتابة الجمل التنفيذية في PL/SQL
المحاضرة السابعة T.Eman Alsqour

2 الاهداف التعرف على كيفية كتابة الجمل التنفيذية داخل وحدة (BLOCK)PLSQL
القواعد المستخدمة لكتابة الجمل والمتغيرات داخل الوحدة. معرفة مجال المتغيرات في الوحدات المتداخلة. T.Eman Alsqour

3 الجمل التنفيذية في PL/SQL
تركيب الجملة (Syntax) في PL/SQL: تتكون الجملة من مجموعة من الوحدات (متغيرات,وقيم) تفصل بينها احدى الفواصل (فراغات, محددات, ملاحظات). تخضع عملية كتابة الجمل إلى مجموعة من القواعد يجب مراعاتها. T.Eman Alsqour

4 مكونات الجملة الـمتغيرات(الأسماء):
يجب أن لا يكون اسم لجدول أو عمود سيتم استخدامه في نفس الوحدة (Block ). لا يزيد طول الاسم عن 30 رمز. يجب أن يبدأ بحرف. أن لا تكون إحدى الكلمات المحجوزة. T.Eman Alsqour

5 كتابة المتغيرات √ × × √ √ × v_name varchar2(20); 1no number;
Dept%id number; xyx number; birth_date date; Select varachar2(10); × × × T.Eman Alsqour

6 مكونات الجملة ‘15-JAN-2005‘;:= v_ddate
2. القيم الثابتة Literal Values . القيم الثابتة الرمزية Character وقيم التاريخ Date يجب أن تكون القيم داخل علامتي تنصيص ‘ ‘ . مثال: ‘15-JAN-2005‘;:= v_ddate v_name:=’ali’; القيم الرقمية Numbers يمكن أن تكون أعداد صحيحة أو كسرية v_id :=201; T.Eman Alsqour

7 3. العمليات Operations. (Operator) هو الرمز الذي يحدد للمترجم العمليات المنطقية أوالحسابية التي تنفذ على البيانات. أنواع العمليات : العمليات الحسابية. العمليات المنطقية.. عمليات المقارنة. T.Eman Alsqour

8 1.العمليات الحسابية. الوصف العملية لجمع عاملين + لطرح عاملين -
لضرب عاملين * لقسمة عاملين / الأس ** T.Eman Alsqour

9 2.العمليات المنطقية - هي العمليات التي تساعدنا في وضع الشروط و القيود على شي معين و بالتالي تمنحنا تحكماً أكبر في كتابة الوحدة البرمجية. - القيم المنطقية ترمز إلى الأشياء التي لا تحتمل أكثر من احتمالين و هما إما صح (True)و إما خطأ (False). و هي نوع جديد من القيم غير التي نعرفها سابقاً ( مثل الرقمية و النصية ) . مثال الوصف العملية (A and B) is true إذا كانت جميع المعاملات صحيحة يصبح الشرط صحيح AND not (A and B) is true. تستخدم لعكس القيم المنطقية للمعامل أو الشرط. NOT (A or B) is true. إذا كان أحد المعاملات صحيح يصبح الشرط الصحيح OR T.Eman Alsqour

10 مثال DECLARE a boolean := true; b boolean := false; BEGIN IF (a AND b) THEN dbms_output.put_line('Line 1 - Condition is true'); END IF; IF (a OR b) THEN dbms_output.put_line('Line 2 - Condition is true'); IF (NOT a)THEN dbms_output.put_line('Line 3 - a is not true'); ELSE dbms_output.put_line('Line 3 - a is true'); END; / T.Eman Alsqour

11 3.عمليات المقارنة هي عمليات يتم من خلالها المقارنه بين قيم أو عمليات أخرى وينتج عنها قيم منطقية (True or False). مثال الوصف العملية T.Eman Alsqour

12 تابع العمليات العلائقية
العملية LIKE BETWEEN IN IS NULL T.Eman Alsqour

13 مثال DECLARE x number(2) := 10; BEGIN IF (x between 5 and 20) THEN dbms_output.put_line('True'); ELSE dbms_output.put_line('False'); END IF; END; / T.Eman Alsqour

14 الجمل التنفيذية في PL/SQL
التعليقات Comments : - هي أي جملة تستخدم لتوضيح عمل البرنامج ودلالات المتغيرات فيسهل على من يريد استخدام أو تعديل البرنامج فهم تركيب وعمل هذا البرنامج. عند كتابة التعليقات: تعليقات السطر الواحد تكون بوضع (--) في بداية جملة التعليق وتعني أن ما بعد هذه الجملة نص توضيحي. تعليقات السطور المتعددة تكون بوضع (/*) في بداية التعليق ووضع (*/) في نهاية التعليق. مثال: v_name varchar2(20) ; -- this variable used to hold the employee name Begin /* this code is used to read The employee salary and calculate the annual salary And print the annual salary */ End ; T.Eman Alsqour

15 استخدام الدوال (Functions)
الدوال التي يمكن استخدامها داخل الوحدة (Block): 1.دوال الصف الواحد في SQL: - الدوال الرقمية Number Functions - الدوال الرمزية Character Functions - دوال التاريخ Date Functions T.Eman Alsqour

16 الدوال الرقمية Number Functions أمثلة
ROUND تقرب ما بعد الفاصلة v_sal := ROUND( ) ;  2 TRUNC تتجاهل ما بعد الفاصلة v_sal := TRUNC( ) ;  1 SQRT تعطي الجذر التربيعي v_ num := SQRT(9);  3 الدوال الرمزية Character Functions INITCAP تجعل الحرف الأول من الكلمة حرف كبير SELECT INITCAP (enam) INTO v_name FROM emp WHERE empno =7788; CONCAT تربط بين كلمتين أو عمودين.. SELECT CONCAT(first_name, last_name) INTO v_name  FROM employee LOWER تحول إلى أحرف صغيرة UPPER تحول إلى أحرف كبيرة SELECT  LOWER (job), INITCAP (ename) INTO v_ejop , v_ename FROM   employees  WHERE   UPPER (job) = 'SALESREP' دوال التاريخ Date Functions ADD_MONTHS تضيف عدد معين من الأشهرعلى التاريخ المعطى SELECT  ADD_MONTHS('01-JAN-2005', 13)   FROM dual; MONTHS_BETWEEN تعطي عدد الأشهر مابين تاريخين. SELECT  MONTHS_BETWEEN('25-MAY-2005', ‘15-JAN-2005') FROM dual;    T.Eman Alsqour

17 تابع استخدام الدوال (Functions)
2. دوال التحويل بين أنواع البيانات المختلفة: التحويل إلى قيم رمزية TO_CHAR ◄ CHARACTER to_char( value, [ format_mask ], [ nls_language ] ) - مثال تحويل أرقام إلى قيم رمزية: to_char( ) ' ‘ to_char( , '9999.9') ' ‘ to_char( , '$9,999.00') '$1,210.73' التحويل إلى قيم رقمية TO_NUMBER ◄ NUMBER to_number( string1, [ format_mask ], [ nls_language ] ) مثال: to_number(' ') التحويل إلى قيم تاريخ TO_DATE ◄ DATE to_date( string1, [ format_mask ], [ nls_language ] ) to_date('2003/07/09', 'yyyy/mm/dd') July 9, 2003.

18 الوحدات المتداخلة (Nested Blocks)
يمكن كتابة وحدة (Block) داخل الجزء التنفيذي لأي (Block) آخر وسيعامل على أنه جملة تنفيذية, ويمكن أيضا كتابة (Block) داخل جزء الاستثناءات. ... x BINARY_INTEGER; BEGIN DECLARE y NUMBER; BEGIN y مجال END; مجال المتغير يمثل المنطقة التي يمكن التعامل مع المتغير داخلها مجال X T.Eman Alsqour

19 الوحدات المتداخلة (Nested Blocks)
... x BINARY_INTEGER; BEGIN DECLARE x NUMBER; BEGIN استخدام المتغير داخل هذه الوحدة سيكون لـ X الأقرب لها ... END; في حالة تعريف متغيرين بنفس الاسم في الوحدات المتداخلة فإن الوحدة (Block) تتعامل مع المتغير الأقرب لها T.Eman Alsqour

20 SALESMAN CLERK not eligible for commission
مثال DECLARE v_sal NUMBER(7,2) := 60000; v_comm NUMBER(7,2) := v_sal * .20; v_message VARCHAR2(255) := ' eligible for commission'; BEGIN v_sal NUMBER(7,2) := 50000; v_comm NUMBER(7,2) := 0; v_total_comp NUMBER(7,2) := v_sal + v_comm; v_message := 'CLERK not' || v_message; END; v_message := 'SALESMAN'||v_message; DBMS_OUTPUT.PUT_LINE (v_message ); output SALESMAN CLERK not eligible for commission T.Eman Alsqour

21 دليل البرمجة في PL/SQL (Programming Guidelines)
كتابة التوضيحات والتعليقات وذلك لتوضيح دلالة المتغيرات وطريقة عمل البرنامج. استخدام حالة الأحرف الصغيرة والكبيرة بناء على ما يلي: الفئة حالة الأحرف مثال SQLجمل كبيرة SELECT, INSERT الكلمات المحجوزة DECLARE ,BEGIN, END أنواع المتغيرات VARCHAR2(5), NUMBER(3) معاملات المتغيرات صغيرة g_id, v_sal أسماء الجداول والأعمدة emp, dept, ename T.Eman Alsqour

22 دليل البرمجة في PL/SQL (Programming Guidelines)
الجدول التالي يبين طريقة تسمية المتغيرات بناء على نوع المتغيرات: الاسم طريقة التسمية مثال المتغيرات variables v_name v_empno, v_sal الثوابت constants c_name c_sal , c_tax المؤشرات cursors Name_cursor emp_cursor الاستثناءات exception e_name e_too_many متغيرات الاستبدال substitute variables p_name p_empno المتغيرات العامة global g_name g_sal T.Eman Alsqour

23 دليل البرمجة في PL/SQL (Programming Guidelines)
3. استخدام الإزاحات حتى يكون البرنامج واضح وسهل القراءة. نلاحظ الفرق أدناه: BEGIN IF x=0 THEN y:=1; ELSE y:=2; END IF; END; BEGIN IF x=0 THEN y:=1; ELSE y:=2; END IF; END; T.Eman Alsqour

24 تطبيقات عملية تتبعي البرنامج التالي:
declare v_title VARCHAR2(255); begin v_title := 'Easy Oracle SQL'; v_title := 'Easy Oracle PL/SQL'; dbms_output.put_line (v_title); end; / تتبعي البرنامج التالي: T.Eman Alsqour

25 تطبيقات عملية تتبعي البرنامج التالي:
DECLARE a number(2) := 20; b number(2) := 10; c number(2) := 15; d number(2) := 5; e number(2) ; BEGIN e := (a + b) * c / d; -- ( 30 * 15 ) / 5 dbms_output.put_line('Value of (a + b) * c / d is : '|| e ); e := ((a + b) * c) / d; -- (30 * 15 ) / 5 dbms_output.put_line('Value of ((a + b) * c) / d is : ' || e ); e := (a + b) * (c / d); -- (30) * (15/5) dbms_output.put_line('Value of (a + b) * (c / d) is : '|| e ); e := a + (b * c) / d; (150/5) dbms_output.put_line('Value of a + (b * c) / d is : ' || e ); END; / تتبعي البرنامج التالي: T.Eman Alsqour

26 لغة الاستعلاماتSQL)) هي لغة برمجية مصممة للتعامل مع قواعد البيانات تتميز عن باقي لغات البرمجة مثل الجافا  والسي++ بأنها أقرب للغة البشر حيث أن كلماتها مستمدة من اللغة الإنجليزية، صممت هذه اللغة وأنشئت في مركز أبحاث شركة IBM . اللغة بها ثلاثة أقسام: أوامر تعريف البيانات (Data Definition Language – DDL ) أوامر معالجة البيانات (Data Manipulation Language –DML ) أوامر التحكم بالبيانات   Data Control Language – DCL)) T.Eman Alsqour

27 أوامر تعريف البيانات DDL
تهتم بإنشاء وتعديل وحذف هيكلة أو عناصر  قاعدة البيانات  وأهم أوامرها على النحو التالي: إنشاء هياكل البيانات CREATE) ) تعديل ALTER) ) إزالة DROP)) تغير الاسم RENAME)) T.Eman Alsqour

28 أوامر معالجة البياناتDML
أوامر معالجة البيانات تهتم بجلب المعلومات من قاعدة البيانات و إضافة وتعديل وحذف البيانات من الجداول وأهم أوامرها على النحو التالي: اختيار أو جلب المعلومات ما يسمى بالاستعلام من قاعدة  البيانات SELECT)) إضافة صف أو جديد في الجدولINSERT)) تعديل أو تحديث البيانات UPDATE) ) حذف صف أو سجل في الجدول DELETE)) T.Eman Alsqour

29 أوامر التحكم بالبيانات DCL
وتهتم بإعطاء أو حذف الصلاحيات من كل مستخدم في قاعدة البيانات ويكون المسؤول عنها مدير قاعدة البيانات(database Administrator) وهي أمرين: إعطاء تصريح على قاعدة البيانات من إنشاء أو تعديل أو حذف وغيرها من الأمور GRANT) ). حذف التصريح على قاعدة البيانات من إنشاء أو تعديل أو حذف وغيرها من الأمور REVOKE)). T.Eman Alsqour

30 )CREATE TABLE statementإنشاء الجداول (
يتم تنظيم الجداول في صفوف وأعمدة. ويجب أن يكون لكل جدول اسم. تركيب جملة الإنشاء (CREATE TABLE Syntax): CREATE TABLE table_name ( column1 datatype [ NULL | NOT NULL ], column2 datatype [ NULL | NOT NULL ], ... ); اسم الجدول المراد انشائة اسم العمود تحديد نوع العمودnumber,varchar..)) T.Eman Alsqour

31 مثال CREATE TABLE customers ( customer_id number(10), customer_name varchar2(50), city varchar2(50) ); ينتج عن ذلك مايلي: Customer_id Coustome_name city T.Eman Alsqour

32 نحدد العمود الذي سيصبح مفتاح رئيسي للجدول
primary keyتحديد يجب تحديد المفتاح الرئيسي (primary key) لكل جدول ويتم ذلك أثناء انشاء الجداول كالتالي: CREATE TABLE customers ( customer_id number(10) not null, customer_name varchar2(50) not null, city varchar2(50), CONSTRAINT customers_pk PRIMARY KEY(customer_id) ); اسم المفتاح الرئيسي نحدد العمود الذي سيصبح مفتاح رئيسي للجدول T.Eman Alsqour

33 Drop Table DROP TABLE Syntax: DROP TABLE table_name;
مثال: DROP TABLE products; T.Eman Alsqour

34 TRUNCATE TABLE TRUNCATE TABLE Syntax:
يستخدم الأمر TABLE TRUNCATE لإزالة محتويات الجدول (البيانات)وليس الجدول نفسه على عكس الأمرDROP TABLE . ملاحظة : تتم إزلة جميع بيانات الجدول ماعدا الحقول المرتبطه بجداول آخرى كالـ Foreign key TRUNCATE TABLE Syntax: TRUNCATE TABLE table_name; مثال: TRUNCATE TABLE Customer; T.Eman Alsqour

35 تم بحمد الله T.Eman Alsqour


Download ppt "كتابة الجمل التنفيذية في PL/SQL"

Similar presentations


Ads by Google