ORACLE & SQL
description
Transcript of ORACLE & SQL
ORACLE &
SQL
Database
1
2 3 4
5
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO------------- ------------ --------------------- -------- ---------------- ----------- -------------- ----------- 7839 ALI PRESIDENT 17-NOV-81 5000 10 7698 AHMAD MANAGER 7839 01-MAY-81 2850 30 7782 OMAR MANAGER 7839 09-JUN-81 2450 10 7566 SALM MANAGER 7839 02-APR-81 2975 20 7654 MHAMAD SALESMAN 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 WALED SALESMAN 7698 22-FEB-81 1250 500 30
6
Data Storage on Different Media
Electronic spreadsheet
Filing cabinet
Database
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
العالئقية البيانات من : قاعدة مجموعة عن عبارة هيمعين بحقل ترتبط األبعاد الثنائية الجداول أ0و العالقاتوالمفتاح األول الجدول في األساسي بالمفتاح يعرف
الثاني . الجدول في الخارجيDatabase
EMPNO ENAME JOB DEPTNO 7839 ALI PRESIDENT 10 7698 AHMAD MANAGER 30 7782 OMAR MANAGER 10 7566 SALM MANAGER 20
Table Name: EMPDEPTNO DNAME LOC 10 COMPUTER MOSUL 20 PROGRAMING BAGDAD 30 LIPRARY BASRA 40 ARATHMITIC ANBAR
Table Name: DEPT
Relating Multiple Tablesوحيد حقلكل يكون الجدول في البيانات من
أن ممكن تكرار primary keyيكون وبدون(PK)
Table Name: EMP Table Name: DEPT
Primary key Primary key
خالل من منطقيا البيانات مع تتعامل أن بإمكانكالمفتاح وباستخدام جداول لعدة استخدامك
األجنبي أو foreign keys (FK)الثانوي
Foreign key
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> SELECT loc 2 FROM dept;
SQL statementis entered
Database
Statement is sent to database
LOC----------MOSULBAGDADBASRAANBAR
Data is displayed
نستخدم العالئقية البيانات قواعد مع لالتصالSQL
عام • فIIي كانIIت أوراكIIل فقIIد 1977بدايIIة
مؤسسة Relation SoftwareقامIIIIIتIncorporated دIIIIIIIقواع إلدارة نظام ببناء
قامIIIت OracleوأسIIIمته) RDBMSبيانات ( باسIIتخدام النظام بتطويIIر المؤسIIسة هذه
عIIIIن SQLو Cواجهة اإلعالن تIIIIم ثIIIIماألول وبعIIد 1979عام Version 1اإلصIIدار
عIن . أعلIن ثIم الثانIي اإلصIدار ظهIر ذلIكالثالIIث عام Version 3اإلصIIدار 1983فIIي
التحسIينات مIن الكثيIر عليIه أجريIت حيIثاالسIIتفسارات بلغIIة المتعلقIIة تلIIك خاصIIة
كمIا) SQLالمهيكلIة ( الIبرنامج ألداء وتعزيIزهذا كان أخرى تحسIIIIIينات علIIIIIى احتوىالسIابقة اإلصIدارات عكIس علIى اإلصIدار
بلغة كامل Cمكتوبا بشكل
مIن • الرابIع اإلصIدار ظهIر فIي OracleثIمهذا 1984عام مIIن سIIنة بحوالIIي وبعدهIIا
وقIد الخامIس اإلصIدار ظهور تIم اإلصIداريدخIIIIل برنامIIIIج أول اإلصIIIIدار هذا كان
الIIIIIى Client/Serverمفهوم الIIIIIبرمجيباسIتخدام البرمجيIة ثIم SQL . Netاللغات
الثامIن اإلصIدار عام Oracle 8ظهIIر فIIيإلIIIIى 1997 جديدة إمكانيات أضاف وقIIIIد
. ليسIت فترة وخالل الIبيانات قواعIد إدارةنسIخة ظهرت المحدثIة Oracle 8iبالبعيدة
النسIختين Oracle 9 , Oracle 9iوتلتهIافقIد و ليمثIل Oracle 10gإصIدار تIم أخيرا
ربIIIIط أسIIIIلوب فIIIIي حقيقيIIIIة ثورةسIهولة أكثIر بيئIة فIي والعمIل السIيرفراتالميزات مIIIIن العديIIIIد يتضمIIIIن والذيالIIبيانات قواعIIد إدارة وأدوات والتقنيات
حد إلIى تتسIع حقول لوجود 4GBوالسIماح . أقصى كحد الواحد للحقل
؟ وراكل أال هى ما
وإنمIا االوراكIل :• برمجيIة لغIة ليسIت أوراكIلالعالئقيIIة الIIبيانات قواعIIد إلدارة نظام هIIي
) RDBMS( Relation Data Base Management system نIIم المطلوبIIة العمIIل معلومات إدارة و
فIي تفيIد عمليIة بيانات قاعدة إلIى تحويلهIا خاللوتحسIIين العمIIل أداء ومراقبIIة القرارات اتخاذ
Iف قصIوى سIرعة إلIى والوصIول إنجاز ياإلنتاجيIةاألعمال .
أوراكل تعتمد ماذا ؟ على
SQL( Structured Query Language(لغة •والPL/SQL IIIIلغIIIة • الIIIبرامج كتابIIIة فIIIى
Functions يIIIفه فIIIي الخاصIIIة تسIIIاعدمكتوبIIة ال Proceduresروتينيات الاسIIتدعاء
مثل أخرى .C-languageو Javaبلغات• Oracle Developer
Structured Query Language(SQL)المهيكلة االستعالم لغة
للتعامIل • تسIتخدم برمجيIة تعليمات عIن عبارة هIيتدعIم اللغIة وهذه الIبيانات قواعIد مIن جمممIع وعIة
البرمج للا وغيرهIا JavaأIو VBأIو C مثIلة يIغاتالIIبيانات إلIIى الوصIIول تسIIتطيع خاللهIIا ومIIن ) ، إضافIة مثIل عليهIا عمليات عدة وإجراء المخزنIةخالل ) مIن تصIميمها تIم جداول فIي حذف ، تعديل
نستخدمها التي التطبيقات .احد
لغة SQLايعازات• Data Definition Language (DDL)• Data Manipulation Language (DML) • Data Control Language (DCL)
)DDL ( Data Definition language
•: األول القسمالIبيانات • تعريIف تتعامIل : لغIة التIي هIي و
وتسIتخدم للقاعدة األسIاسي الهيكIل مIعالIIبيانات أوبنيIIة تركيبات وتغييIIر لتثIIبيتااليعازات وهذه عام بشكIIل الجدول فIIي
. تنفيذها بعد التراجع اليمكن•: مايلي ايعازاتها أهم ومن•Create جدول إنشاء•Drop جدول إلغاء• Alter جدول تعديل
Data manipulation language(DML)
الثاني :• القسمالتIIي : اللغIIة وهIIي الIIبيانات معالجIIة لغIIةويمكIن الجدول داخIل الIبيانات مIع تتعامIلالتتعامIل النهIا تعليماتهIا تنفيIذ بعIد التراجIع
الهيكل مع : مايلي ايعازاتها أهم• Insert البيانات إلضافة• Update بيانات تحديث• Delete بيانات حذف• Select. وعرضها بيانات استرجاع
Data Control language (DCL)
الثالث :• القسمالIبيانات فIي التحكIم تمنIح لغIة التIي وهIي
للمسIتخدمين والصIالحيات أIو االمتيازاتعلIIى الصIIالحيات تعمIل وإلغاءهIIا سIحب
ايعازاتها :أهم•Grant الصالحيات وإعطاء لمنح
للمستخدمين .Revokeو • وإلغاءها الصالحيات لسحب•Drop جدول اسقاط او لحذف
Controlling User Access
Controlling User Access
Databaseadministrator
Users
Username and passwordprivileges
Privileges•Database security
–System security–Data security
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
The DBA creates users by using the CREATE USER statement.
SQL> CREATE USER ALI 2 IDENTIFIED BY AAA;User created.
CREATE USER user IDENTIFIED BY password;
User System Privileges
GRANT privilege [, privilege...]TO user [, user...];
• An application developer may have the following system privileges:– CREATE TABLE– CREATE SEQUENCE– CREATE VIEW– CREATE PROCEDURE
• Once a user is created, the DBA can grant specific system privileges to a user.
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?
Allocating privilegeswithout a role
Allocating privilegeswith a role
Privileges
Users
Manager
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
SQL> GRANT select 2 ON emp 3 TO omar, ahmad;Grant succeeded.
SQL> GRANT update (dname, loc) 2 ON dept 3 TO ALI, Adel;Grant succeeded.
• Grant query privileges on the EMP table.
• Grant privileges to update specific columns to users and roles.
Using WITH GRANT OPTION
SQL> GRANT select, insert 2 ON dept 3 TO ALI 4 WITH GRANT OPTION;Grant succeeded.
• Give a user authority to pass along the privileges.
Revoking Object Privileges
As user Alice, revoke the SELECT and INSERT privileges given to user ALI on the DEPT table.
SQL> REVOKE select, insert 2 ON dept 3 FROM ALI;Revoke succeeded.
التكوين CREATE TABLEعبارة
إنشاء • امتياز لديك يكون أن يجب بدايةأن ويجب للتخزين ومساحة جدول
األعمدة وأسماء للجدول اسم تخصصكل وقياس منها لكل البيانات وأنواع
عمود : : العامة الصيغة
CREATE TABLE tablename ( column datatype [DEFAULT expr] ) ;
الموظفين: جدول لتكوين مثال
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 ;(
األقسام: جدول لتكوين مثال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عبارة
العامة • الصيغة SQL>INSERT INTO table [ (column1, column)]
VALUES (value, value…); مثال:
SQL> INSERT INTO dept (deptno, dname, Loc) VALUES ( 10, ‘Computer' , ‘Mosul' ) ;
SQL>COMMIT;
:مالحظة
أثناء للعمود افتراضية قيمة تخصيص يمكنالتالي : المثال في كما اإلدخال عملية
Hiredate DATE DEFAULT SYSDATE , ……..
باستخدام خاصة قيم إدخال Inserting Special Value التوابع
: مثالSQL> INSERT INTO emp (empno, ename, job, hiredate, Sal, comm, deptno)
VALUES ( 15, 'Ali' , 'programmer ' , SYSDATE, 2000, NULL, 10 ) ;
التابع المثال SYSDATEيقوم فيالحالي التاريخ قيمة بإدراج السابق
الحقل hiredateضمن نضع : للتحقق SQL> SELECT * FROM emp
WHERE empno = 15 ;EMPNO ENAME JOB HIREDATE SAL COMM DEPTNO------ ---------- --------- -------------- ---------- -------- ----------15 ali programmer 17/04/2013 2000 10
Tables Used 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
EMP
DEPT
DEPTNO DNAME LOC--------- -------------- ---------- 10 COMPUTER MOSUL 20 PROGRAMMER BAGDAD 30 LIPRARY BASRA 40 ANLYSES ANBAR
SQL> UPDATE emp SET deptno = 15 WHERE deptno = 16 ; SQL> COMMIT ;
التحديث UPDATEعبارة
SQL>DELETE FROM emp ; SQL>ROLLBACK ;
الحذف DELETEعبارة
آخر جدول مع بعالقات مرتبط الجدول كان لونضيف CASCADE CONSTRAINTSفقط
DROP TABLE stud CASCADE CONSTRAINTS;
العامة :الصيغة
DROP TABLE table_name;
DROP TABLE employee;
DROP عبارة
ORDER BY الترتيبعبارة
• SELECT ename, sal FROM emp ORDER BY sal ASC ;
• SELECT ename, sal
FROM emp ORDER BY sal DESC;
Group By عبارة SQL> SELECT deptno , AVG ( sal )
From emp GROUP BY deptno ;
DEPTNO AVG(SAL)
---------- --------------
10 2916.66667
20 2175
30 1566.66667
Aggregating Data Using Group Functions
What Are Group Functions?Group functions operate on sets of rows to give one result per group.EMP
“maximum salary in
the EMP table”
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
Types of Group Functions
• AVG • COUNT • MAX• MIN • SUM
Using Group Functions
SELECT [column,] group_function(column)FROM table[WHERE condition][GROUP BY column][ORDER BY column];
Using AVG and SUM Functions
You can use AVG and SUM for numeric data.
AVG(SAL) MAX(SAL) MIN(SAL) SUM(SAL)-------- --------- --------- --------- 1400 1600 1250 5600
SQL> SELECT AVG(sal), MAX(sal), 2 MIN(sal), SUM(sal) 3 FROM emp 4 WHERE job LIKE ‘manager%';
SQL> SELECT MIN(hiredate), MAX(hiredate) 2 FROM emp;
MIN(HIRED MAX(HIRED--------- ---------17/3/2010 12/1/2013
Using the COUNT FunctionCOUNT(*) returns the number of rows in a table.
COUNT(*)--------- 6
SQL> SELECT COUNT(*) 2 FROM emp 3 WHERE deptno = 30;
Using the COUNT Function
COUNT(expr) returns the number of nonnull rows.SQL> SELECT COUNT(comm) 2 FROM emp 3 WHERE deptno = 30;
COUNT(COMM)----------- 4
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
EMP
“averagesalary in EMPtable
for each department”
2916.6667
2175
1566.6667
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
DEPTNO AVG(SAL) ------- --------- 10 2916.6667 20 2175 30 1566.6667
قسم لكل الراتب معدل
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 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 21751566.6667
Grouping by More Than One Column
EMP
“sum salaries in the EMP tablefor each job, grouped by department”
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
JOB SUM(SAL)--------- ---------CLERK 1300MANAGER 2450PRESIDENT 5000ANALYST 6000CLERK 1900MANAGER 2975CLERK 950MANAGER 2850SALESMAN 5600
DEPTNO--------
101010202020303030
وظيفة لكل الراتب معدل
: مثاللعرض استعالم اسم الرقم كون و مشروع
مرتبة المشاريع هذه في العاملين عدد و المشروعمجاميع شكل ؟على
SELECT PNUMBER , PNAME , COUNT FROM PROJECTGROUP BY PNUMBER , PNAME ;
PNOUMBER PNAME COUNT-------------- ----------------- -------- 12 M11 120
22 k22 15023 P88 110
اإلجراءات PL/SQL لغةللغIIIIة PL/SQL لغIIIIة• امتداد SQLهIIIIي
. علIIIى تعمIIIل الIIIبرمجة لغات وبمميزاتاالسIIIتعالم وعبارات الIIIبيانات معالجIIIة
البر وهIي برمجيIة وحدات سIيجر ووتتضمIنالبرمج للاوتعتIIبر. بنظام يIIغIIة الخاصIIة ة
وكلمة جدا قوية برمجيIة أداة وهIي أوراكلPL/SQL) Iل ProcedureاختصIIIIIIIIارا
Language/ Structure Query Language ( نظام لتجهيز اللغIة هذه OracleوتسIتخدم
قبIIل مIIن المنتجIIة التطويIIر أدوات فIIيبرنامIج OracleشركIة أسIاس تعتIبر وهIي
النماذج Oracleو Oracle FormsبناءReports أيضا اللغIIIIIIة هذه وتسIIIIIIتخدم
ببعIIIIIض والقيام مIIIIIا نموذج لتعريIIIIIفالتقرير . في الخاصة الحسابات
PL/SQL Environment
PL/SQLblock
PL/SQL engine
Oracle Server
ProceduralStatementExecutor
PL/SQL
SQL
SQL Statement Executor
PL/SQLblock
ORACLE DEVELOPERأوراكIل عIن منفصIل تطIبيقي برنامIج وهIوأوراكIIل لخدمIIة وجIIد نقول أIIن نسIIتطيعتتصIIل التIIي التطIIبيقات تطويIIر ومهمتIIهأهIIIIم ومIIIIن أوراكIIIIل بيانات بقواعIIIIد
: مايلي هي استخداماتهوالنماذج • الواجهات عمIIل فIIي يسIIتخدم
IالForms الكIبيرة • التطIبيقات تطويIر فIي يسIتخدم
للصIيانة والقابلIة تطIبيقات و الجيدة يوفIر. وقياسية كفوءة
العنكبوتيIة • الشبكIة علIى التطIبيقات يعرضWWW. واالنترنت
Developer Componentديفيلوبر مكونات
Iال من Developer 6iيتكون: التالية البرامج
النماذج • لتصميم FormبرنامجBuilder
التقارير • لبناء ReportبرنامجBuilder
الرسومات • لبناء GraphicsبرنامجBuilder
النماذج - 1 تصميم FormبرنامجBuilder والواجهات النماذج بناء فIي الIبرنامج هذا يسIتخدم
بيانات قاعدة كونIIا قIIد نكون أIIن بعIIد نظام ألIIيفIي SQL لغIةوباسIتخدام المخزونIة والمعلومات
عمليات إدارة فIIIي ويسIIIتخدم الIIIبيانات قاعدةوالتحكIم النماذج طريIق عIن االسIترجاع ، اإلضافIة
للعناصIر المختلفIة القادحIة ItemsبالخصIائص وبناءTrigger يIف العناصIر هذه مIن وحدة بكIل الخاصIة
النماذج . الصIور مصIمم بإضافIة الIبرنامج هذا يقومالواجهIة بناء أIو التقاريIر واسIتدعاء النماذج فIي
أنواع :المستقلة بثالثة ويكون•Form Module•Menu Module•Library Module
•Form Moduleويتكون : الرئيسIي النموذج هIو الواجهIة نموذج
العناصIر مجموعIة المسIتخدم ItemsمIن يتمكIنقاعدة مIIIع والتعامIIIل االتصIIIال خاللهIIIا مIIIنباسIIتخدام كونهIIا وان سIIبق والتIIي الIIبيانات
IالSQL. •Menu Module:
: ورمIIز القائمIIة علIIى يحتوي القوائIIم نموذجالواجهة مع تتصل التي .Formالقائمة
•Library Module:المكتبات : مIIن Pl/SQLنموذج مجموعIIة وهIIو
يتIIIIIIIIم واإلجراءات التIIIIIIIIي الحزم الدوال،. التطبيق في نموذج قبل من استدعائها
التقارير- 2 بناء ReportبرنامجBalder
صIIIIIيغ بعدة التقاريIIIIIر بناء يكونبصIIIIIيغة يكون فقIIIIIد واشكالاو رئيسIية صIفة بشكIل او جدوليIةوغيIر مصIفوفة بشكIل او فرعيIة
ذلك.الرسومات- 3 بناء Graphicبرنامج
Builder:وتطويIر الIبيانات عرض علIى يعمIلمثIIIIل الرسIIIIومية التطIIIIبيقاتالرسIIIIIIIIIIIIIIIومية المخططات
والتحليلية.