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

Slides:



Advertisements
Similar presentations
Basic SQL Introduction Presented by: Madhuri Bhogadi.
Advertisements

Virtual training week 4 structured query language (SQL)
SQL components In Oracle. SQL in Oracle SQL is made up of 4 components: –DDL Data Definition Language CREATE, ALTER, DROP, TRUNCATE. Creates / Alters.
SQL Components DML DDL DAL. Overview u Getting the records onto the disk - mapping u Managing disk space u SQL Modes u Ceating database.
PL/SQL (Embedded SQL) Introduction Benefits Basic Constructs
Murali Mani SQL DDL and Oracle utilities. Murali Mani Datatypes in SQL INT (or) INTEGER FLOAT (or) REAL DECIMAL (n, m) CHAR (n) VARCHAR (n) DATE, TIME.
ORACLE ONLINE TRAINING Contact our Support Team : SOFTNSOL India: Skype id : softnsoltrainings id:
Ch. 3 Single-Row Functions Important Legal Notice:  Materials on this lecture are from a book titled “Oracle Education” by Kochhar, Gravina, and Nathan.
ORACLE SQL. Overview Personal DBMS Vs Client/Server DBMS Oracle 8 Environment SQL – syntax and examples PL/SQL-introduction.
Copyright  Oracle Corporation, All rights reserved. 3 Creating Procedures.
Lecture 4 PL/SQL language. PL/SQL – procedural SQL Allows combining procedural and SQL code PL/SQL code is compiled, including SQL commands PL/SQL code.
Chapter 10 Selected Single-Row Functions Oracle 10g: SQL.
INTRODUCTION TO PL/SQL. Class Agenda Introduction Introduction to PL/SQL Declaring PL/SQL Variable Creating the Executable Section Interacting with the.
SQL (DDL & DML Commands)
Single – Row Functions. Objectives After completing this lesson, you should be able to do the following:  Describe various types of functions available.
Overview · What is PL/SQL · Advantages of PL/SQL · Basic Structure of a PL/SQL Block · Procedure · Function · Anonymous Block · Types of Block · Declaring.
ACTION QUERIES (SQL COMMANDS ) STRUCTURED QUERY LANGUAGE.
1 Information Retrieval and Use (IRU) CE An Introduction To SQL Part 1.
SQL FUNDAMENTALS SQL ( Structured Query Language )
Oracle 11g: SQL Chapter 10 Selected Single-Row Functions.
SQL: DDL. SQL Statements DDL - data definition language –Defining and modifying data structures (metadata): database, tables, views, etc. DML - data manipulation.
1 CursorsCursors. 2 SQL Cursor A cursor is a private SQL work area. A cursor is a private SQL work area. There are two types of cursors: There are two.
Session 2: SQL (A): Parts 1 and 2 Original materials supplied by the Oracle Academic Initiative (OAI). Edited for classroom use by Professor Laku Chidambaram.
Chapter 3 Selected Single-Row Functions and Advanced DML & DDL.
PL/SQL Block Structure DECLARE - Optional Variables, cursors, user-defined exceptions BEGIN - Mandatory SQL Statements PL/SQL Statements EXCEPTIONS - Optional.
PL/SQL Declaring Variables PL/SQL Block Structure DECLARE (Optional) Variables, cursors, user-defined exceptions BEGIN (Mandatory) - SQL statements -
Database Application Development using PL/SQL Programming.
Introduction to PL/SQL. Objectives  After completing this lesson, you should be able to do the following:  Explain the need for PL/SQL  Explain the.
SQL Basics. What is SQL? SQL stands for Structured Query Language. SQL lets you access and manipulate databases.
Copyright  Oracle Corporation, All rights reserved. 16 Declaring Variables.
Tables and Constraints Oracle PL/SQL. Datatypes The SQL Data Definition Language Commands (or DDL) enable us to create, modify and remove database data.
Database Lab Lecture 1. Database Languages Data definition language ( DDL ) Data definition language –defines data types and the relationships among them.
Prince Sultan University Dept. of Computer & Information Sciences CS 340 Introduction to Database Systems.
Using SQL in PL/SQL ITEC 224 Database Programming.
Retrieving Data in PL/SQL. 2 home back first prev next last What Will I Learn? In this lesson, you will learn to: –Recognize the SQL statements that can.
Altering Tables and Constraints Database Systems Objectives Add and modify columns. Add, enable, disable, or remove constraints. Drop a table. Remove.
1 PL/SQL Part C Scope and Interacting with the Oracle Server.
SQL. Originally developed by IBM Standardized in 80’s by ANSI and ISO Language to access relational database and English-like non-procedural Predominant.
Oracle & SQL. Oracle Data Types Character Data Types: Char(2) Varchar (20) Clob: large character string as long as 4GB Bolb and bfile: large amount of.
4/2/16. Ltrim() is used to remove leading occurrences of characters. If we don’t specify a character, Oracle will remove leading spaces. For example Running.
Introduction to PL/SQL Francis Thottungal. The outline The basic PL/SQL code structure is : DECLARE -- optional, which declares and define variables,
CSCI N311: Oracle Database Programming 5-1 Chapter 15: Changing Data: insert, update, delete Insert Rollback Commit Update Delete Insert Statement –Allows.
PL/SQL Writing Executable Statements. PL/SQL Block Syntax and Guidelines Statement can be split across lines, but keywords must not be split Lexical units.
Physical Model Lecture 11. Physical Data Model The last step is the physical design phase, In this phase data is – Store – Organized and – Access.
 Reviewing basic architecture concepts  Oracle 10g Architecture  Main features of 9i and 10g
PL/SQL Part B.
ITEC 224 Database Programming
CS322: Database Systems PL/ SQL PL/SQL by Ivan Bayross.
Oracle SQL.
Interacting with the Oracle8 Server
Chapter 10 Selected Single-Row Functions Oracle 10g: SQL
Oracle11g: PL/SQL Programming Chapter 2 Basic PL/SQL Block Structures.
PL/SQL MULTIPLE CHOICE QUESTION.
Quiz Questions Q.1 An entity set that does not have sufficient attributes to form a primary key is a (A) strong entity set. (B) weak entity set. (C) simple.
DATABASE SQL= Structure Query Language مبادئ قواعد بيانات
Database Management Systems 2
استخدام لغة معالجة البياناتDML ضمن الوحدات البرمجية
جمل التحكم المحاضرة التاسعة T.Eman Alsqour.
لغة قواعد البيانات STRUCTURED QUERY LANGUAGE SQL))
مقدمة في قواعد البيانات
ORACLE SQL.
Session - 6 Sequence - 1 SQL: The Structured Query Language:
Index Note: A bolded number or letter refers to an entire lesson or appendix. A Adding Data Through a View ADD_MONTHS Function 03-22, 03-23,
Contents Preface I Introduction Lesson Objectives I-2
PL/SQL Declaring Variables.
Structured Query Language Path from Unorganized to Organized….
Database Programming Using Oracle 11g
Database Programming Using Oracle 11g
Database Programming Using Oracle 11g
Database Programming Using Oracle 11g
Presentation transcript:

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

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

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

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

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

مكونات الجملة ‘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

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

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

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

مثال 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

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

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

مثال 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

الجمل التنفيذية في 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

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

الدوال الرقمية Number Functions أمثلة ROUND تقرب ما بعد الفاصلة v_sal := ROUND(1.53456) ;  2 TRUNC تتجاهل ما بعد الفاصلة v_sal := TRUNC(1.53456) ;  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;   4.32258065 T.Eman Alsqour

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

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

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

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

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

دليل البرمجة في 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

دليل البرمجة في 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

تطبيقات عملية تتبعي البرنامج التالي: 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

تطبيقات عملية تتبعي البرنامج التالي: 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; -- 20 + (150/5) dbms_output.put_line('Value of a + (b * c) / d is : ' || e ); END; / تتبعي البرنامج التالي: T.Eman Alsqour

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

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

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

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

)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

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

نحدد العمود الذي سيصبح مفتاح رئيسي للجدول 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

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

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

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