Oracle sql
This presentation is the property of its rightful owner.
Sponsored Links
1 / 61

ORACLE & SQL PowerPoint PPT Presentation


  • 70 Views
  • Uploaded on
  • Presentation posted in: General

ORACLE & SQL. 2. 3. 4. 6. 5. 1. Database. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ------------- --------------------------------- -------- ---------------- ----------- -------------- -----------

Download Presentation

ORACLE & SQL

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Oracle sql

ORACLE & SQL


Database

2

3

4

6

5

1

Database

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

------------- --------------------------------- -------- ---------------- ----------- -------------- -----------

7839 ALIPRESIDENT 17-NOV-815000 10

7698 AHMADMANAGER 7839 01-MAY-81 2850 30

7782 OMAR MANAGER7839 09-JUN-81 2450 10

7566 SALM MANAGER7839 02-APR-81 2975 20

7654 MHAMADSALESMAN 7698 28-SEP-81 1250 1400 30

7499 ADEL SALESMAN 7698 20-FEB-81 1600 300 30

7844 JAMAL SALESMAN 7698 08-SEP-81 1500 0 30

7900 JASIM CLERK 7698 03-DEC-81 950 30

7521 WALEDSALESMAN 7698 22-FEB-81 1250 500 30


Data storage on different media

Database

Electronic spreadsheet

Filing cabinet

Data Storage on Different Media

SALGRADE

GRADE LOSAL HISAL

--------- --------- ---------

1 700 1200

2 1201 1400

3 1401 2000

4 2001 3000

5 3001 9999

DEPT

DEPTNO DNAME LOC

--------- -------------- ---------- 10 ACCOUNTING NEW YORK

20 RESEARCH DALLAS

30 SALES CHICAGO

40 OPERATIONS BOSTON


Definition of a relational database

Table Name: EMP

Table Name: DEPT

EMPNO ENAME JOB DEPTNO

7839 ALI PRESIDENT 10

7698 AHMAD MANAGER 30

7782 OMAR MANAGER 10

7566 SALM MANAGER 20

DEPTNO DNAME LOC

10 COMPUTER MOSUL

20 PROGRAMING BAGDAD

30 LIPRARY BASRA

40 ARATHMITIC ANBAR

Definition of a Relational Database

قاعدة البيانات العلائقية :هي عبارة عن مجموعة من العلاقاتِ أَو الجداولِ الثنائية الأبعادِ ترتبط بحقل معين يعرف بالمفتاح الأساسي في الجدول الأول والمفتاح الخارجي في الجدول الثاني .

Database


Relating multiple tables

Primary key

Foreign key

Primary key

Relating Multiple Tables

  • كل حقل من البيانات في الجدول يكون وحيد وبدون تكرار ممكن أن يكون primary key (PK)

  • بإمكانك أن تتعامل مع البيانات منطقيا من خلال استخدامك لعدة جداول وباستخدام المفتاح الثانوي أو الأجنبي foreign keys (FK)

Table Name: EMP

Table Name: DEPT

EMPNO ENAME JOB DEPTNO

7839 KING PRESIDENT 10

7698 BLAKE MANAGER 30

7782 CLARK MANAGER 10

7566 JONES MANAGER 20

DEPTNO DNAME LOC

10 ACCOUNTING NEW YORK

20 RESEARCH DALLAS

30 SALES CHICAGO

40 OPERATIONS BOSTON


Communicating with a rdbms using sql

SQL statementis entered

Statement is sent to database

SQL> SELECT loc

2 FROM dept;

Database

Data is displayed

LOC

----------

MOSUL

BAGDAD

BASRA

ANBAR

Communicating with a RDBMS Using SQL

للاتصال مع قواعد البيانات العلائقية نستخدم SQL


Oracle sql

  • بداية أوراكل كانت في عام 1977فقد قامت مؤسسة Relation Software Incorporated ببناء نظام لإدارة قواعد بيانات ( RDBMS) وأسمته Oracle قامت هذه المؤسسة بتطوير النظام باستخدام واجهةC و SQL ثم تم الإعلان عن الإصدار الأول Version 1عام 1979 وبعد ذلك ظهر الإصدار الثاني. ثم أعلن عن الإصدار الثالث Version 3 في عام 1983 حيث أجريت عليه الكثير من التحسينات خاصة تلك المتعلقة بلغة الاستفسارات المهيكلة (SQL) وتعزيز لأداء البرنامج كما احتوى على تحسينات أخرى كان هذا الإصدار على عكس الإصدارات السابقة مكتوباً بلغة C بشكل كامل


Oracle sql

  • ثم ظهر الإصدار الرابع من Oracle في عام 1984 وبعدها بحوالي سنة من هذا الإصدار تم ظهور الإصدار الخامس وقد كان هذا الإصدار أول برنامج يدخل مفهوم Client/Server البرمجي الى اللغات البرمجية باستخدام SQL . Net ثم ظهر الإصدار الثامن Oracle 8 في عام 1997 وقد أضاف إمكانيات جديدة إلى إدارة قواعد البيانات. وخلال فترة ليست بالبعيدة ظهرت نسخة Oracle 8i المحدثة وتلتها النسختين Oracle 9 , Oracle 9i وأخيرا فقد تم إصدار Oracle 10g ليمثل ثورة حقيقية في أسلوب ربط السيرفرات والعمل في بيئة أكثر سهولة والذي يتضمن العديد من الميزات والتقنيات وأدوات إدارة قواعد البيانات والسماح لوجود حقول تتسع إلى حد 4GB للحقل الواحد كحد أقصى.


Oracle sql

ما هى ألا وراكل ؟

  • الاوراكل :أوراكل ليست لغة برمجية وإنما هي نظام لإدارة قواعد البيانات العلائقية (RDBMS)Relation Data Base Management system و إدارة معلومات العمل المطلوبة من خلال تحويلها إلى قاعدة بيانات عملية تفيد في اتخاذ القرارات ومراقبة أداء العمل وتحسين الإنتاجية والوصول إلى سرعة قصوى في إنجاز الأعمال .


Oracle sql

على ماذا تعتمد أوراكل؟

  • لغة (SQL)Structured Query Language

  • لغة PL/SQLفى كتابة البرامج والـ Functions الخاصة فهي تساعد في استدعاء الروتينيات Proceduresالمكتوبة بلغات أخرى مثل Java و C-language .

  • Oracle Developer


Structured query language sql

Structured Query Language(SQL)لغة الاستعلام المهيكلة

  • هي عبارة عن تعليمات برمجية تستخدم للتعامل مع قواعد البيانات وهذه اللغة تدعم مجموعة من اللغاتالبرمجية مثلC أو VB أو Java وغيرها ومن خلالها تستطيع الوصول إلى البيانات المخزنة وإجراء عدة عمليات عليها مثل( إضافة ، تعديل ، حذف ) في جداول تم تصميمها من خلال احد التطبيقات التي نستخدمها.


Oracle sql

ايعازات لغة SQL

  • Data Definition Language (DDL)

  • Data Manipulation Language (DML)

  • Data Control Language (DCL)


Ddl data definition language

(DDL) Data Definition language

  • القسم الأول:

  • لغة تعريف البيانات : و هي التي تتعامل مع الهيكل الأساسي للقاعدة وتستخدم لتثبيت وتغيير تركيبات أوبنية البيانات في الجدول بشكل عام وهذه الايعازاتلايمكن التراجع بعد تنفيذها.

  • ومن أهم ايعازاتهامايلي:

  • Createإنشاء جدول

  • Dropإلغاء جدول

  • Alter تعديل جدول


Data manipulation language dml

Data manipulation language(DML)

  • القسم الثاني :

    لغة معالجة البيانات : وهي اللغة التي تتعامل مع البيانات داخل الجدول ويمكن التراجع بعد تنفيذ تعليماتها لانهالاتتعامل مع الهيكل

    أهم ايعازاتهامايلي:

  • Insert لإضافة البيانات

  • Update تحديث بيانات

  • Delete حذف بيانات

  • Select استرجاع بيانات وعرضها.


Data control language dcl

Data Control language (DCL)

  • القسم الثالث :

    لغة التحكم في البيانات وهي التي تمنح الامتيازات والصلاحيات للمستخدمين أو تعمل على سحب الصلاحيات وإلغاءها أهم ايعازاتها:

  • Grantلمنح وإعطاء الصلاحيات للمستخدمين

  • و Revoke لسحب الصلاحيات وإلغاءها.

  • Drop لحذف اواسقاط جدول


Oracle sql

Controlling User

Access


Controlling user access

Controlling User Access

Database

administrator

Username and password

privileges

Users


Privileges

Privileges

  • Database security

    • System security

    • Data security


System privileges

System Privileges

  • More than 80 privileges are available.

  • The DBA has high-level system privileges:

    • Create new users

    • Remove users

    • Create new tables

    • Remove tables

    • Back up tables


Creating users

Creating Users

The DBA creates users by using the CREATE USER statement.

CREATE USER user

IDENTIFIED BY password;

SQL> CREATE USER ALI

2 IDENTIFIED BY AAA;

User created.


User system privileges

User System Privileges

  • Once a user is created, the DBA can grant specific system privileges to a user.

GRANT privilege [, privilege...]

TO user [, user...];

  • An application developer may have the following system privileges:

    • CREATE TABLE

    • CREATE SEQUENCE

    • CREATE VIEW

    • CREATE PROCEDURE


Granting system privileges

Granting System Privileges

The DBA can grant a user specific system privileges.

SQL> GRANT create table, create sequence, create view

2 TO ALI;

Grant succeeded.


What is a role

What Is a Role?

Users

Manager

Privileges

Allocating privileges

without a role

Allocating privileges

with a role


Creating and granting privileges to a role

Creating and Granting Privileges to a Role

SQL> CREATE ROLE manager;

Role created.

SQL> GRANT create table, create view

2 to manager;

Grant succeeded.

SQL> GRANT manager to ALI, AHMAD;

Grant succeeded.


Granting object privileges

Granting Object Privileges

  • Grant query privileges on the EMP table.

SQL> GRANTselect

2 ONemp

3 TOomar, ahmad;

Grant succeeded.

  • Grant privileges to update specific columns to users and roles.

SQL> GRANTupdate (dname, loc)

2 ONdept

3 TOALI, Adel;

Grant succeeded.


Using with grant option

Using WITH GRANT OPTION

  • Give a user authority to pass along the privileges.

SQL> GRANTselect, insert

2 ONdept

3 TOALI

4 WITH GRANT OPTION;

Grant succeeded.


Revoking object privileges

Revoking Object Privileges

As user Alice, revoke the SELECT and INSERT privileges given to user ALI on the DEPT table.

SQL> REVOKEselect, insert

2 ONdept

3 FROMALI;

Revoke succeeded.


Create table

عبارة التكوين CREATE TABLE

  • بداية يجب أن يكون لديك امتياز إنشاء جدول ومساحة للتخزين ويجب أن تخصص اسم للجدول وأسماء الأعمدة وأنواع البيانات لكل منها وقياس كل عمود :

    الصيغة العامة: CREATE TABLE tablename

    ( column datatype [DEFAULT expr] ) ;


Oracle sql

مثال:لتكوين جدول الموظفين

SQL>CREATE TABLE emp (

empno NUMBER(6),

ename VARCHAR2(14),

Jop VARCHAR2(14),

Hiredate date,

Sal NUMBER(10,3),

Comm NUMBER(10,3),

Deptno NUMBER(2) NOT NULL );


Oracle sql

مثال:لتكوين جدول الأقسام

SQL>CREATE TABLE dept (

DEPTNO NUMBER(2 ) NOT NULL,

DNAME VARCHAR2(14),

LOC VARCHAR2(13) );

SQL> DESCRIBE dept

Name Null? Type

---------- -------- ---------

DEPTNO NOT NULL NUMBER(2)

DNAME VARCHAR2(14)

LOC VARCHAR2(14)


Insert

عبارة الإدخال INSERT

  • الصيغة العامة

    SQL>INSERT INTO table [ (column1, column)]VALUES (value, value…);

    :مثال

    SQL> INSERT INTO dept (deptno, dname, Loc)

    VALUES ( 10, ‘Computer' , ‘Mosul' ) ;

    SQL>COMMIT ;


Oracle sql

ملاحظة:

يمكن تخصيص قيمة افتراضية للعمود أثناء عملية الإدخال كما في المثال التالي :

Hiredate DATE DEFAULT SYSDATE , ……..


Inserting special value

إدخال قيم خاصة باستخدام التوابعInserting Special Value

مثال :

SQL> INSERT INTO emp (empno, ename, job,

hiredate, Sal, comm, deptno)

VALUES ( 15, 'Ali' , 'programmer ' ,

SYSDATE, 2000, NULL, 10 ) ;


Sysdate hiredate

يقوم التابع SYSDATE في المثال السابق بإدراج قيمة التاريخ الحالي ضمن الحقل hiredate

للتحقق نضع :

SQL> SELECT * FROM emp

WHERE empno = 15 ;

EMPNO ENAME JOB HIREDATE SAL COMM DEPTNO

------ ---------- --------- -------------- ---------- -------- ----------

15 ali programmer 17/04/2013 2000 10


Oracle sql

DEPTNO DNAME LOC

--------- -------------- ---------- 10 COMPUTER MOSUL

20 PROGRAMMER BAGDAD

30 LIPRARY BASRA

40 ANLYSES ANBAR

DEPT

Tables Used

EMP

EMPNO ENAME JOB HIREDATE SAL COMM DEPTNO

--------- ---------- --------- --------- --------- --------- ---------

15 ALI PRESIDENT 17-NOV-81 2000 10

7698 AHMAD MANAGER 01-MAY-81 2850 30

7782 OMAR MANAGER 09-JUN-81 2450 10

7566 SALM MANAGER 02-APR-81 2975 20

7654 MOHAMAD SALESMAN 28-SEP-81 1250 1400 30

7499 ADEL SALESMAN 20-FEB-81 1600 300 30

7844 JAMAL SALESMAN 08-SEP-81 1500 0 30

7900 JASIM CLERK 03-DEC-81 950 30

7521 WALED SALESMAN 22-FEB-81 1250 500 30


Sql update emp set deptno 15 where deptno 16 sql commit

عبارة التحديث UPDATE

SQL> UPDATEempSETdeptno = 15 WHEREdeptno = 16 ; SQL> COMMIT ;


Oracle sql

عبارة الحذف DELETE

SQL>DELETE FROM emp ; SQL>ROLLBACK ;


Cascade constraints drop table stud cascade constraints

DROP عبارة

لو كان الجدول مرتبط بعلاقات مع جدول آخر فقط نضيف CASCADE CONSTRAINTSDROP TABLE stud CASCADE CONSTRAINTS;

الصيغة العامة:

DROP TABLEtable_name;

DROP TABLE employee;


Order by

ORDER BY عبارة الترتيب

  • SELECT ename, salFROM empORDER BY salASC ;

  • SELECT ename, sal

    FROM empORDER BY salDESC;


Group by

GroupBy عبارة

SQL> SELECTdeptno , AVG ( sal )

From emp

GROUP BY deptno ;

DEPTNO AVG(SAL)

---------- --------------

10 2916.66667

20 2175

30 1566.66667


Aggregating data using group functions

Aggregating Data Using Group Functions


What are group functions

What Are Group Functions?

EMP

Group functions operate on sets of rows to give one result per group.

DEPTNO SAL

--------- ---------

10 2450

10 5000

10 1300

20 800

20 1100

20 3000

20 3000

20 2975

30 1600

30 2850

30 1250

30 950

30 1500

30 1250

MAX(SAL)

---------

5000

“maximum

salary in

the EMP table”


Types of group functions

Types of Group Functions

  • AVG

  • COUNT

  • MAX

  • MIN

  • SUM


Using group functions

Using Group Functions

SELECT[column,] group_function(column)

FROMtable

[WHEREcondition]

[GROUP BYcolumn]

[ORDER BYcolumn];


Using avg and sum functions

Using AVG and SUM Functions

You can use AVG and SUM for numeric data.

SQL> SELECTAVG(sal), MAX(sal),

2MIN(sal), SUM(sal)

3FROMemp

4WHEREjob LIKE ‘manager%';

AVG(SAL) MAX(SAL) MIN(SAL) SUM(SAL)

-------- --------- --------- ---------

1400 1600 1250 5600


Oracle sql

SQL> SELECTMIN(hiredate), MAX(hiredate)

2 FROMemp;

MIN(HIRED MAX(HIRED

--------- ---------

17/3/2010 12/1/2013


Using the count function

Using the COUNT Function

COUNT(*) returns the number of rows in a table.

SQL> SELECTCOUNT(*)

2 FROMemp

3 WHEREdeptno = 30;

COUNT(*)

---------

6


Using the count function1

Using the COUNT Function

COUNT(expr) returns the number of nonnull rows.

SQL> SELECTCOUNT(comm)

2 FROMemp

3 WHEREdeptno = 30;

COUNT(COMM)

-----------

4


Group functions and null values

Group Functions and Null Values

Group functions ignore null values in the column.

SQL> SELECT AVG(comm)

2 FROM emp;

AVG(COMM)

---------

550


Creating groups of data

Creating Groups of Data

EMP

DEPTNO SAL

--------- ---------

10 2450

10 5000

10 1300

20 800

20 1100

20 3000

20 3000

20 2975

30 1600

30 2850

30 1250

30 950

30 1500

30 1250

2916.6667

“averagesalary

in EMPtable

for each

department”

DEPTNO AVG(SAL)

------- ---------

10 2916.6667

20 2175

30 1566.6667

2175

معدل الراتب لكل قسم

1566.6667


Using the group by clause

Using the GROUP BY Clause

All columns in the SELECT list that are not in group functions must be in the GROUP BY clause.

SQL> SELECT deptno, AVG(sal)

2 FROM emp

3 GROUP BY deptno;

DEPTNO AVG(SAL)

--------- ---------

10 2916.6667

20 2175

30 1566.6667


Using the group by clause1

Using the GROUP BY Clause

The GROUP BY column does not have to be in the SELECT list.

SQL> SELECT AVG(sal)

2 FROM emp

3 GROUP BY deptno;

AVG(SAL)

---------

2916.6667

2175

1566.6667


Grouping by more than one column

Grouping by More Than One Column

EMP

DEPTNO JOB SAL

--------- --------- ---------

10 MANAGER 2450

10 PRESIDENT 5000

10 CLERK 1300

20 CLERK 800

20 CLERK 1100

20 ANALYST 3000

20 ANALYST 3000

20 MANAGER 2975

30 SALESMAN 1600

30 MANAGER 2850

30 SALESMAN 1250

30 CLERK 950

30 SALESMAN 1500

30 SALESMAN 1250

DEPTNO

--------

10

10

10

20

20

20

30

30

30

JOB SUM(SAL)

--------- ---------

CLERK 1300

MANAGER 2450

PRESIDENT 5000

ANALYST 6000

CLERK 1900

MANAGER 2975

CLERK 950

MANAGER 2850

SALESMAN 5600

“sum salaries in

the EMP tablefor each job,

grouped by

department”

معدل الراتب لكل وظيفة


Oracle sql

مثال : كون استعلام لعرض رقم المشروع و اسم المشروع و عدد العاملين في هذه المشاريع مرتبة على شكل مجاميع؟

SELECT PNUMBER , PNAME , COUNT FROM PROJECTGROUP BY PNUMBER , PNAME ;

PNOUMBER PNAME COUNT

-------------- ----------------- --------

12 M11 120

  • k22 150

  • P88 110


Pl sql

لغة الإجراءات PL/SQL

  • لغة PL/SQL هي امتداد للغة SQL وبمميزات لغات البرمجة. تعمل على معالجة البيانات وعبارات الاستعلام وتتضمن وحدات برمجية وهي البروسيجر . وتعتبر اللغةالبرمجية الخاصة بنظام أوراكل وهي أداة برمجية قوية جدا وكلمة PL/SQL اختصاراً لـ (Procedure Language/ Structure Query Language ) وتستخدم هذه اللغة لتجهيز نظام Oracle في أدوات التطوير المنتجة من قبل شركة Oracle وهي تعتبر أساس برنامج بناء النماذج Oracle Forms و Oracle Reports وتستخدم هذه اللغة أيضاً لتعريف نموذج ما والقيام ببعض الحسابات الخاصة في التقرير .


Oracle sql

PL/SQL Environment

PL/SQL engine

PL/SQL

Procedural

Statement

Executor

PL/SQL

block

PL/SQL

block

SQL

SQL Statement Executor

Oracle Server


Oracle developer

ORACLE DEVELOPER

وهو برنامج تطبيقي منفصل عن أوراكل نستطيع أن نقول وجد لخدمة أوراكل ومهمته تطوير التطبيقات التي تتصل بقواعد بيانات أوراكل ومن أهم استخداماته هي مايلي:

  • يستخدم في عمل الواجهات والنماذج الـForms

  • يستخدم في تطوير التطبيقات الكبيرة الجيدة والقابلة للصيانة ويوفر تطبيقات كفوءة وقياسية.

  • يعرض التطبيقات على الشبكة العنكبوتيةWWW والانترنت.


Developer component

Developer Component مكونات ديفيلوبر

يتكون الـDeveloper 6i من البرامج التالية:

  • برنامج لتصميم النماذج Form Builder

  • برنامج لبناء التقارير Report Builder

  • برنامج لبناء الرسومات Graphics Builder


1 form builder

1- برنامج تصميم النماذج Form Builder

يستخدم هذا البرنامج في بناء النماذج والواجهات لأي نظام بعد أن نكون قد كونا قاعدة بيانات وباستخدام لغةSQL والمعلومات المخزونة في قاعدة البيانات ويستخدم في إدارة عمليات الإضافة،الاسترجاع عن طريق النماذج والتحكم بالخصائص المختلفة للعناصر Items وبناء القادحة Trigger الخاصة بكل وحدة من هذه العناصر في مصمم النماذج .يقوم هذا البرنامج بإضافة الصور في النماذج واستدعاء التقارير أو بناء الواجهة المستقلة ويكون بثلاثة أنواع :

  • Form Module

  • Menu Module

  • Library Module


Oracle sql

  • Form Module

    نموذج الواجهة : هو النموذج الرئيسي ويتكون من مجموعة العناصر Items يتمكن المستخدم من خلالها الاتصال والتعامل مع قاعدة البيانات والتي سبق وان كونها باستخدام الـSQL .

  • Menu Module:

    نموذج القوائم: يحتوي على القائمة ورمز القائمة التي تتصل مع الواجهة Form.

  • Library Module:

    نموذج المكتبات : Pl/SQL وهو مجموعة من الإجراءات والدوال، الحزم التي يتم استدعائها من قبل نموذج في التطبيق.


Oracle sql

2- برنامج بناء التقارير Report Balder

يكون بناء التقارير بعدة صيغ واشكال فقد يكون بصيغة جدوليةاو بشكل صفة رئيسية او فرعية او بشكل مصفوفة وغير ذلك.

3- برنامج بناء الرسومات Graphic Builder:

يعمل على عرض البيانات وتطوير التطبيقات الرسومية مثل المخططات الرسومية والتحليلية.


  • Login