Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.