PL/SQL تعريف المتغيرات

Slides:



Advertisements
Liknende presentasjoner
Mer om SQL-spørringer og funksjoner
Advertisements

Hans Olav Norheim
Tabeller av objekter Klassen ArrayList
Kap 01 Generelt om databaser
Høgskolen i Oslo Webprogrammering SQL og databaser del 3.
Avansert SQL og problemløsning
Datamodellering og databaser Else Lervik, oktober 2011 Forelesning 9, uke 41 SQL, del 2 Eksempelbaseside 2 Virtuelle.
ADA 95 – del6 Foreleser: Olaf Hallan Graven Bok: Programming in ADA95 (2nd) John Barnes.
IS-102 Klassedefinisjoner
Faktoranalyse Thore Egeland UiO/HIO 9 sept
Databasehåndtering med MySQL
C# for javaprogrammerere
Kunstig intelligens (MNFIT-272) - høst Forelesning 2 Emner: Litt om intelligente agenter Problemløsning - søkerom - problemtyper Predikatlogikk -
ANDROID-PROGRAMMERING VÅREN ACTIVITY OG INTENTS Repetisjon fra forrige gang.
Android-Programmering Våren Lagring av data SharedPreferences Filsystem Database.
Datamodellering og databaser Else Lervik, oktober 2012 Forelesning 11, uke 44 Å programmere databasetjeneren – JavaDB.
Datamodellering og databaser Else Lervik, oktober 2011 Forelesning 9, uke 41 SQL, del 2 Eksempelbaseside 2 Virtuelle.
Å lage sikre klasser Unntaksklassene i Java-API-et Unntakshåndtering i databasesammenheng try-catch-finally-setningen Trelagsarkitektur; egen databaseklasse.
Jæger: Robuste og sikre systemer INF150 Programmering mandag 4.9 Forrige gang til og med: 3.2 Visual Basic Events (60-73) Nå: Litt om Group Box, CheckBox.
LC238D Datamodellering og databaser Else Lervik, september 2011 Forelesning 6, Uke 38 Objektorientering i ER-modeller.
Standard databasespråk
1 Kap 02 Relasjonsdatabaser. Data-organisering - Manuelt Ansatte Pasienter Utstyr Økonomi Avdelinger RøntgenOnkologisk.
SQLHiA DAT 2800 Databaser I Prosedyrer / Triggere.
DAG HOFTUN KNUTSEN Bruk og misbruk av SQL DAG HOFTUN KNUTSEN
Administrasjon av SQL Server 2008 Av: Ole Kristian Bangås Fagansvarlig SQL Server.
SQLHiA Transaksjoner. SQLHiA TransaksjonDefinisjon En transaksjon er en serie av en eller flere SQL-statement som til sammen danner en logisk enhet. Med.
ADA 95 – del3 Foreleser: Olaf Hallan Graven Bok: Programming in ADA95 (2nd) John Barnes.
Structured Query Language Kræsj-kurs
Triggere Mutasjoner i basen. Triggers Triggers are stored procedures that execute automatically when something (event) happens in the database: : data.
Instead-of-trigger Faglig forum. Instead-of-trigger Problem: En har et VIEW som består av mange JOINs. Komplekst å oppdatere alle tabellene som inngår.
Eksempel på SQL ”SQL-setninger” har en struktur som likner på ”naturlig språk”, med ”verb, subjekter og adjektiver”. SQL-setningene begynner alltid med.
Databasen II Sesjoner, stored procedures, error handling.
Med hånda i kakeboksen. Oblig 4, cookies, sesjoner, stored procedures, error handling.
Databasen III Nodekoblinger og tags. Mer om proptype Spesifikasjonen for egenskaper. Verdikolonner: value, number, url, datetime, lang, ref. Kan egenskaper.
Fødselsdato (dmå) er født har lønn Ansatt (ansnr) Beløp (NKr)+ Telefon
OOT Seminar H-97 CORBA Praktisk del. Valg av ORB implementasjon n Har valgt å bruke Visigenic sin ORB implementsjon n ORB’en er 100% Java kodet n Bygger.
Databaser II – Online bokdatabase
Linq To SQL Fagdag 20. November DataContext  DataContexten er mappingen mot databasen –Generer objekter for alle entiteter (tabeller), med properties.
Database tilgang Opret forbindelse til din Ms SQL database inde i Visual Studio fra Server Explorer vinduet.
1 Java Database Connectivity (JDBC) Norvald H. Ryeng
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
(Dynamic) Domain Name System dan Virtual Hosting.
Geografiske informasjonssystemer (GIS) SGO1910 & SGO4930 Vår 2004 Foreleser: Karen O’Brien Seminarleder: Gunnar Berglund
Aim Understand the concept of lumped element modelling Understand variational solution in the mechanical domain Understand Rayleigh Ritz in the mechanical.
ICT Siste gruppetime INF mai ICT Transformasjoner En transformasjon krever to metamodeller en kilde-modell (source) en mål-modell (target)
Linked Data 2: Hvordan KoG31 Uke 8, 2013.
1 Java Database Connectivity (JDBC) Norvald H. Ryeng
Privacy by Design: Forslag til metode for å bygge personvern inn i systemløsninger Dag Wiese Schartum.
Oversikt Access Hva en bør beherske så langt. Tabeller Felt Typer (heltall, desimaltall, tekst, Boolean) Primary Key.
Funksjonell programmering på web
Title: «How to use different tools and/or machines in the workshop»
Citation and reference tools for your master thesis
Lecture 27.
Primitive typer, klasseegenskaber samt identitet og lighed
Group theory I dette kapitlet skal vi se på utvidelse av lister som vi behandlet generelt i kap 04. Vi skal nå benytte klassehierarkiet som vi utviklet.
Utviklings- prosjektet i ENTOMOLOGI
Aim: What is the trig limit?
Citation and reference tools for your master thesis
PL/SQL المحاضرة السادسة T.Eman Alsqour.
Costs and the changes at firms over time
Project Honolulu - An Island or a new way to manage servers ????????
Hva er det gode liv for universitetet eller høgskolen?
Emner: Kunstig intelligens (MNFIT-272) - høst Forelesning 2 •
Design: Bjørn Jørund Blikstad / Sigurd Strøm
Kom i gang med Alma Analytics i dag!
CMPE 152: Compiler Design April 23 Class Meeting
EPiServer Connect for CRM
Siste uke med fokus på Python  Java
Model til tekst transformasjoner med MOFScript
URI-pattern Geographical data in Norway
Utskrift av presentasjonen:

PL/SQL تعريف المتغيرات

مقدمة في PL/SQL ماهي لغة PL/SQL ؟ هي عبارة عن تطوير للغة SQL حيث أعطت المرونة ل SQL بحيث يمكن كتابة جمل متعددة مثل استخدام متغيرات وجمل الدوران والشرط...إلخ تتألف PL/SQL من مجموعة منفصلة من الوحدات تسمى Modules كل منها له وظيفة معينة للوصول إلى الهدف النهائي من البرنامج.

مقدمة في PL/SQL تنقسم (Modules ) إلى قسمين : وحدة برمجية غير مسماةAnonymous Block : هذه الوحدة ليس لها اسم محدد ولا تخزن في قاعدة البيانات ولكن يتم تحميلها في الذاكرة واستخدامها يكون عند الحاجة لها. وحدة برمجية معروفة Named Block : تسمى أحيانا Subprogram , وهي الوحدات البرمجية التي لها اسم محدد عند تعريفها ويندرج ضمنها: Function, Procedure, Trigger, Package. يمكن للقطعة البرمجية (Modules ) أن تحتوي على وحدة (Block ) أوأكثر ويمكن للوحدات أن تكون بداخل بعضها البعض Nested Blocks

مقدمة في PL/SQL رسم يوضح الأنواع المختلفة للوحدات البرمجية:

مقدمة في PL/SQL تركيب الوحدات (Block ) تتكون الوحدة من 3 أجزاء: الجزء التعريفي (Declarative) : في هذا الجزء يتم تعريف المتغيرات والمؤشرات والاستثناءات , ويعتبر هذا الجزء اختياري أي يمكن كتابة ال(Block ) دون الحاجة لتعريف متغيرات. الجزء التنفيذي (Executable) ويحتوي على جمل SQL مثل (استرجاع ,حذف ,إضافة ,تحديث) بالإضافة إلى جمل PL/SQL التي تقوم بالتعامل مع البيانات داخل الوحدة, مثل جمل الدوران والشرط ...إلخ وهذا الجزء إجباري لأنه يحتوي على الجمل الواجب تنفيذها. الجزء الخاص بمعالجة الاستثناءات(Exception) في هذا الجزء يتم معالجة الأخطاء الممكن حدوثها خلال مرحلة التنفيذ ويعتبر جزء اختياري.

مقدمة في PL/SQL DECLARE اختياري BEGIN SQL PL/SQL EXCEPTION END; اختياري تعريف المتغيرات , الاستثناءات, المؤشرات اجباري بداية الجزء التنفيذي جمل SQL جمل PL/SQL الإجراء الذي يجب تنفيذه عند حدوث خطأ اجباري نهاية الجزء التنفيذي

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

المتغيرات في PL/SQL تعريف المغيرات: عند استخدام المتغيرات لا بد من تعريفها في جمل منفصلة تنتهي بفاصلة منقوطة (;). الشكل العام لتعريف المتغيرات: identifier [CONSTANT] datatype [NOT NULL] [:= DEFAULT | expression ] ; identifier اسم المتغير. CONSTANT يعتبر قيد على المتغير بحيث إذا وضع المتغير CONSTANT يمنع تعديل قيمته ويجب إسناد قيمة ابتدائية له عند تعريفه. datatype نوع البيانات التي يمكن تخزينها في المتغير حرف أو رقم إلخ... NOT NULL أي يجب أن يحتوي المتغير على قيمة وعند تعريفه يجب إسناد قيمة ابتدائية له. expression إما أن يكون متغير آخر أو عملية. DEFAULT كلمة تعني أنه سيكون هناك إسناد قيمة معينة

المتغيرات في PL/SQL مثال : Declare v_name VARCHAR2(10) ; v_date DATE ; v_id NUMBER(2) NOT NULL:=10 ; c_comm CONSTANT NUMBER:=120; BEGIN …… END;

المتغيرات في PL/SQL النقاط التي يجب مراعاتها عند تعريف المتغيرات: لا يمكن أن يكون هناك أكثر من متغير يحمل نفس الاسم إلا إذا كان في وحدة (Block ) أخرى. عدم استخدام اسم الجدول أو عمود سيتم استخدامها في نفس الوحدة (Block ). لا يزيد طول الاسم عن 30 حرف. أن يحتوي على رموز يمكن استخدامها في SQL وهي : A-Z, a-z, 0-9, _, #,$ يجب أن يبدأ بحرف. غالبا نستخدم الأحرف الصغيرة لتعريف المتغيرات. 2- وضع قيم ابتدائية للمتغيرات المعرفة باستخدام CONSTANTو NOT NULLحتى لا يحصل خطأ في التعريف. 3- وضع القيم الابتدائية باستخدام := أو باستخدام الكلمة المحجوزة DEFUALT 4- تعريف متغير واحد فقط في كل جملة. 5- أن لا يكون اسم المتغير أحد الكلمات المحجوزة.

المتغيرات في PL/SQL - إسناد قيم للمتغيرات: هناك طريقتان لإسناد القيم للمتغيرات: باستخدام جملة الإسناد بحيث نقوم بكتابة اسم المتغير ثم وضع التعبير. Identifier := expression ; مثال: اسناد القيمة Ali للمتغير v _name v_name :=’Ali’ ; أو v_name VARCHAR2(10) DEFAULT ’Ali’ ; اسناد ناتج عملية حسابية للمتغير net_sal net_sal := v_sal – v_sal*.08 ;

المتغيرات في PL/SQL الطريقة الأخرى إسناد القيم من خلال جملة الاسترجاع من قاعدة البيانات. مثال: SELECT ename INTO v_name FROM emp WHERE empno = 7788; يجب الانتباه إلى أن عملية الاسترجاع تعيد قيمة واحدة فقط للمتغير v_name وإلا سيتم حدوث خطأ.

أنواع البيانات للمتغيرات Datatypes المتغيرات في PL/SQL أنواع البيانات للمتغيرات Datatypes Scalar Datatype Composite Datatype LOB Datatype Bind Variables

أنواع البيانات للمتغيرات Datatypes Scalar Datatype) 1 ) المتغيرات التي تحتوي على قيمة واحدة وهذا النوع يحتوي على قيم مفردة. النوع الوصف VARCHAR2(size) البيانات الرمزية المتغيرة الطول ويمثل sizeأقصى طول لها, أكبر حجم هو 32,676 Byte CHAR[(SIZE)] البيانات الرمزية الثابتة الطول ويمثل sizeأقصى طول لها, وإذا لم يتم تحديد الطول تكون القيمة الافتراضية 1,أكبر حجم هو 32,676Byte NUMBER (precision,scale) لتمثيل البيانات الصحيحة والكسرية, precision يمثل الحجم الكلي للمتغير وscaleيمثل المنازل العشرية DATE يخزن وقت وتاريخ. BOOLEAN البيانات الممثلة منطقيا مثل TRUE,FLASE LONG RAW البيانات الممثلة ثنائيا مثل الصور. LONG البيانات الرمزية المتغيرة الطول ويمثل sizeقصى طول لها, ويجب تحديد الطول عند التعريف ,أكبر حجم هو 32,670 Byteوأكبر حجم للعمود في الجدول 2,147,483,647Byte BINARY_INTEGER أعداد صحيحة مابين 2,147,483,647و-2,147,483,647 PLS_INTEGR أعداد صحيحة مابين 2,147,483,647و-2,147,483,647 ولكن بحجم أقل من BINARY_INTEGER و NUMBER

المتغيرات في PL/SQL مثال: v_job VARCHAR2(9); v_count BINARY_INTEGER := 0; v_total_sal NUMBER(9,2) := 0; v_orderdate DATE := SYSDATE + 7; c_tax_rate CONSTANT NUMBER(3,2) := 8.25; v_valid BOOLEAN NOT NULL := TRUE;

المتغيرات في PL/SQL خاصية %TYPE تستخدم هذه الخاصية لتعريف متغير اعتمادا على متغير آخر. مثال: v_ename emp.ename %TYPE; - قمنا بتعريف المتغير v_ename بنفس النوع والحجم للعمود ename الموجود في جدول emp . v_balance NUMBER(7,2); v_min_balance v_balance %TYPE := 10; - قمنا بتعريف متغير v_balance من نوع رقمي. - قمنا بتعريف المتغير v_min_balance بنفس النوع والحجم للمتغير v_balance وبقيمة ابتدائية 10 .

المتغيرات في PL/SQL تعريف المتغيرات المنطقية BOOLEAN: - تأخذ قيم TRUE , FLASE, NULL . يمكن ربطها بواسطة العمليات المنطقية AND,OR ,NOT . يمكن استخدام التعبيرات الحسابية للحصول على نتائج منطقية (<,>, =<, =>) مثال: v_sal1 NUMBER: =1000 ; v_sal2 NUMBER: =2500 ; v_valid BOOLEAN:= (v_sal1 > v_sal2);

المتغيرات في PL/SQL أنواع البيانات للمتغيرات Datatypes 2. المتغيرات المركبة Composite Datatype: 1- السجلات RECORDS : تتكون من عدة حقول ولا يشترط أن تكون من نفس النوع أوالحجم. 2- الجداول TABLES : تتكون من عدة حقول ولا يشترط أن تكون من نفس النوع أوالحجم (وممكن أن يكون هناك أكثر من صف في الجدول).

المتغيرات في PL/SQL أنواع البيانات للمتغيرات Datatypes 3. المتغيرات التي تحتوي على كائنات كبيرة الحجم LOB Datatype (Large Objectas): هي المتغيرات التي تحتوي على كائنات كبيرة الحجم مثل أفلام ,نصوص كبيرة...إلخ 4.متغيرات الربط Bind Variables: هي المتغيرات التي يتم تعريفها داخل البيئة التي يتم تنفيذ الوحدة داخلها مثل (SQL* Plus) بحيث نتستخدم المتغيرات داخل وحدة (Block) أو أكثر. مثال: SQL > VARIABLE Emp_Sal NUMBER تم تعريف متغير Emp_Sal من نوع NUMBER على مستوى المضيف (host) وعند استخدامها داخل ال(Block) فإنه يجب أن يسبق المتغير بنقطتين علويتين(:) : Emp_Sal := 5000 ; - حتى نطبع المتغير Emp_Sal في بيئة (SQL* Plus) نستخدم الأمر PRINT SQL> PRINT Emp_ Name

الطباعة على الشاشة PL/SQL جملة الإخراج (الطباعة) مثال: SET SERVEROUTPUT ON يجب وضع هذه الجملة في البداية حتى يمكن تنفيذ أمر الطباعة ACCEPT p_annual_sal PROMPT ' Please enter the annual salary ' Declare v_sal NUMBER(9,2) :=&p_annual_sal ; BEGIN v_sal := V_sal /12; DBMS_OUTPUT.PUT_LINE('Monthly Salary is '||TO_CHAR(v_sal));جملة الطباعة END;

الخلاصة ماهية PL/SQL أقسام (Modules ) أجزاء الوحدة (Block) المتغيرات. Anonymous Block Named Block أجزاء الوحدة (Block) المتغيرات. الشكل العام لتعريف المتغيرات identifier [CONSTANT] datatype [NOT NULL] [:= DEFAULT | expression ] ; أنواع المتغيرات (Datatypes). Scalar Datatype Composite Datatype LOB Datatype Bind Variables