Showing posts with label Oracle Database 11g. Show all posts
Showing posts with label Oracle Database 11g. Show all posts

4/09/2013

Correlated Subqueries

السلام عليكم 
Correlated Subqueries

يستخدم الـ Correlated Subqueries لمعالجه الصفوف (صف صف) ويتم تنفيذ كل استعلام فرعى مره واحده لكل صف من الأستعلام الخارجى (outer query) وتتم معالجته بواسطه (parent statement) ويمكن ان يكون parent statement جمله select ,update and delete

اعتقد ان الكلام مبهم بعض الشىء ولكن ان شاء الله من خلال الأسطر القادمه سوف يتضح لك الأمر بشكل واضح واكثر تفصيل ولكن اقرا الموضوع من البدايه للنهايه اكثر من مره  فى حاله لو لم تتضح لك الرؤيا -بس ان شاء الله مع نهايه الموضوع وقرائته بتمعن هتلاقى كله تمام - واى سؤال حاضر ان شاء الله

نرجع لموضعنا الأساسى فى البدايه انت محتاج انك تعرف الفرق بين Nested subquery والـ Correlated Subqueries  ومن خلال الفروقات ده هتقدر تعرف ايه هو اصلا Correlated Subqueries وامتى تستخدمه وهتستفيد ايه لما تستخدمه لان من بره شكل Nested subquery و Correlated Subqueries شبه بعض .

ما الفرق بين  Nested subquery و Correlated Subqueries ؟
Nested Subqueries Versus Correlated Subqueries

4/02/2013

Scalar Subquery Expressions

السلام عليكم
Scalar Subquery Expressions

هو عباره عن subquery  يقوم  بأسترجاع قيمه واحده من عمود فى صف واحد وقيمه scalar subquery expression تأتى من جمله الـ SELECT...
 فى حاله ان scalar subquery يسترجع 0 اذن فـ قيمته تساوى null فى حاله scalar subquery قام بأسترجاع اكثر من صف -returns more than one row- تظهر اوركل خطأ.

يمكنك استخدام Scalar Subquery Expressions  فى الحالات التاليه:


The condition and expression part of DECODE and CASE
All clauses of SELECT except GROUP BY
The SET clause and WHERE clause of an UPDATE statement

4/01/2013

Column Comparisons

السلام عليكم 

يوجد نوعان من Column Comparisons :
Pairwise comparison 
Nonpairwise comparison

Pairwise comparison

Code

SELECT EMPLOYEE_ID
     , MANAGER_ID
     , DEPARTMENT_ID
FROM   EMPLOYEES
WHERE (MANAGER_ID, DEPARTMENT_ID) IN (SELECT MANAGER_ID
                                           , DEPARTMENT_ID
                                      FROM   EMPLOYEES
                                      WHERE  EMPLOYEE_ID IN (199,174))
AND    EMPLOYEE_ID NOT IN (199,174);


3/16/2013

Managing Data in Different Time Zones

السلام عليكم
Managing Data in Different Time Zones

ان شاء الله بعد انتهاءك من الدرس ستكون قادر على فهم واستخدام الـ Functions التاليه :

• TZ_OFFSET
• FROM_TZ
• TO_TIMESTAMP
• TO_TIMESTAMP_TZ
• TO_YMINTERVAL
• CURRENT_DATE
• CURRENT_TIMESTAMP
• LOCALTIMESTAMP
• DBTIMEZONE
• SESSIONTIMEZONE
• EXTRACT

2/18/2013

The MERGE Statement

السلام عليكم
The MERGE Statement

تمكنك جمله MERGE من عمل INSERT , UPDATE and DELETE  فى جدول معين بناء على شرط معين ولكى تتمكن من عمل اضافه او تعديل او حذف على جدول معين يجب ان تمتلك هذه الصلاحيات على هذا الجدول ويجب ان تمتلك صلاحيه SELECT من الجدول المراد الاستعلام عنه لـ اضافه ما تم الاستعلام عنه فى جدول المراد التعديل او الاضافه او الحذف عليه بناء عليه فـ انت لديك جدولين جدول -source- وهذا الجدول سيتم منه الاستعلام وجدول اخر -target- وهذا ما سيتم التعديل عليه.
الكود العام لـ MERGE
General Code
MERGE INTO table_name table_alias
USING (table|view|sub_query) alias
ON (join condition)
WHEN MATCHED THEN
UPDATE SET
col1 = col_val1,
col2 = col2_val
WHEN NOT MATCHED THEN
INSERT (column_list)
VALUES (column_values);

2/11/2013

Multitable INSERT Statements

السلام عليكم
Multitable INSERT Statements

ما هو Multitable INSERT Statements ؟
هو يمكنك من  ادخال عده قيم فى اكتر من جدول فى وقت واحد
هو مناسب جدا لـ انظمه المستودعات -warehousind- حيث يمكنك من نقل البيانات الناتجه عن اكثر من عمليه لوضعها فى جدول معين.
وهو اداه سريعه جدا مقارنه بـ استخدام جمل Single DML اوجمل IF فى عمليات INSERT
توجد عده انواع لـ Multitable INSERT Statements
Unconditional INSERT
Conditional ALL INSERT
Conditional FIRST INSERT
Pivoting INSERT
General Code
INSERT [ALL] [conditional_insert_clause]
[insert_into_clause value_clause] (subquery)
# conditional_insert_clause
[ALL] [FIRST]
[WHEN conditional THEN] [insert_into_clause values_clause]
[ELSE] [insert_into_clause values_clause]

2/09/2013

Explicit Default Feature

السلام عليكم
Explicit Default Feature

يمكنك استخدام default مع جمله insert or update لوضع قيمه افتراضيه داخل عمود معين . فى حاله عدم وجود قيمه افتراضيه سوف تقوم اوركال بوضع قيمه null 
فى المثال التالى سوف استخدام default مع جمله insert 
Code
INSERT INTO DEPT 
(DEPARTMENT_ID , DEPARTMENT_NAME,MANAGER_ID)
VALUES
(300,'DEVELOPER',DEFAULT);

2/07/2013

Updating Two Columns with a Subquery,Deleting Rows Based on Another Table

السلام عليكم
Updating Two Columns with a Subquery

كيف يمكنك عمل تحديث لعمودين او اكثر بأستخدام الـ subquery
فى المثال التالى يوجد جملتين subquery   فى الاولى اريد ان اجعل قيمه الـ job_id تساوى نفس قيمه الـ job_id للموظف رقم 205. فى الثانيه اريد ان اجعل قيمه الراتب نفس قيمه راتب الموظف رقم 205 واريد اجمالاعمل تحديث للقيم فى جدول emp13 للموظف رقم 104

Code
UPDATE EMP13
SET         JOB_ID = (SELECT JOB_ID
                              FROM    EMPLOYEES
                              WHERE  EMPLOYEE_ID = 205)
                                    ,
               SALARY= (SELECT SALARY
                              FROM   EMPLOYEES
                              WHERE EMPLOYEE_ID = 205)
WHERE EMPLOYEE_ID = 104;

2/04/2013

Inserting Using a Subquery as a Target , (Retrieving Data with a Subquery as Source (in line view

السلام عليكم
Inserting Using a Subquery as a Target

درس اليوم عكس المره السابقه :) لقد تحدث فى درس سابق عن كيف يمكنك اضافه صف او اكتر من صف داخل جدول باستخدام الـ Subquery وقد استخدمنا ال subquery للاستعلام عن قيمه معينه وادخالها فى الجدول كـ قيمه .

ولكن اليوم سوف نستعلم عن جدول ونضع له القيمه بأستخدام جمله 
value clause
Code
INSERT INTO 
(SELECT EMPLOYEE_ID
               ,LAST_NAME
               ,EMAIL
               ,HIRE_DATE
               ,JOB_ID
               ,SALARY
               ,DEPARTMENT_ID
FROM    EMP13
WHERE  DEPARTMENT_ID = 50);
VALUE
(99999,'ARAFA','A.ARAFA',TO_DATE('5-NOV-1986','DD-MON-RR'),'ORA_DEV'
,':D',50);

2/02/2013

Using Subqueries to Manipulate Data , Copying Rows from Another Table

السلام عليكم
Using Subqueries to Manipulate Data

يمكنك استخدام subquery مع جمل DML 
ويمكنك الاستفاده من subquery فى التالى :

يمكنك نقل البيانات من جدول الى اخر
يمكنك استعاده او استقبال البيانات من inline view
يمكنك تعديل البيانات فى جدول بناء على قيمه مُرسله من جدول آخر
يمكنك مسح صف من جدول بناء على صف من جدول آخر
يمكنك استخدام subqueries  لـ استعاده البيانات من جدول ويمكنك استعمالها فى ادخال البيانات لـ جدول آخر ومن خلال هذا الاسلوب او المنهج يمكنك نقل كميه كبيره من البيانات بسهوله من جدول الى جدول آخر بأستخدام جمله الـ SELECT 
ويمكنك ايضا استخدام subqueries للتعديل او الحذف مع WHERE CLAUSE فى جمله الـ UPDATE OR DELETE ويمكنك ايضا استخدام subqueries مع FORM CLAUSE وهذا ما يسمى بـ INLINE VIEW

2/01/2013

Backup Oracle Database (Oracle Enterprise Manager)

السلام عليكم

كيف يمكنك اخذ نسخه احتياطيه من قاعده بيانات اوركال بأستخدام Oracle Enterprise Manager
قم بلدخول على OEM بأستخدام الرابط التالى
http://LOCALHOST:1158/em
استبدل   LOCALHOST   فى حاله لو لم تكن على سيرفر قاعده البيانات واستبدلها بـ IP سيرفر قاعده البيانات
ثم قم بكتابه اسم المستخدم وكلمه مرور مدير قواعد البيانات ثم اختر من connect as --> SYSDBA

صوره (1)

1/31/2013

Cascading Constraints , ON DELETE CASCADE

السلام عليكم
Cascading Constraints

هى تقوم بـ الغاء العلاقات بين الجداول فى حاله Primary key,Unique , Foreign key
 يمكنك استخدامها مع جمله DROP COLUMN 
يمكنك ايضا من خلالها مسح اكتر من قيد فى نفس الوقت 
على سبيل المثال عندى جدول بأسم test_constraint يوجد علاقه ما بين عمود fk وعمود pk وهى علاقه اب لـ ابن
Code

CREATE TABLE  TEST1 (
PK     NUMBER PRIMARY KEY,
FK     NUMBER,
COL1 NUMBER,
col2   NUMBER,
CONSTRAINT fk_constraint FOREIGN KEY (fk) REFERENCES test1,
CONSTRAINT CK1 CHECK (PK > 0 AND COL1 > 0),
CONSTRAINT ck2 CHECK (col2 > 0));

1/29/2013

The FLASHBACK TABLE Statement

السلام عليكم
The FLASHBACK TABLE Statement

هى ميزه جديده توفرها قاعده بيانات اوركال فى اصدار 10 جى وهى تصنف ضمن SQL DDL. تمكنك هذه الاداه من الرجوع الى نقطه معينه على سبيل المثال لو قمت بمسح جدول عن طريق الخطأ واردت ان تستعيد هذا الجدول مره اخرى ولكن فى حاله استخدامك للامر PURGE لن تتمكن من استعاده اى شىء قمت بحذفه.
 وايضا اذا قمت بمسح او تعديل عمود معين او صف يمكنك من خلال الـ FLASHBACK تستطيع ان تعود الى نقطه معينه وهى اداه سهله وسريعه وبسيطه فى الاستعمال وتمكنك ايضا من استرجاع اكتر من جدول فى نفس الوقت على اكثر من SCHEMA كل ما عليك فعله هو عمل جمله استعلام معينه على RECYCLEBIN  ويظهرلك من خلالها اسم الجدول وحالته والوقت الذى تم فيه عمليه المسح.
هذا هو الكود العام للأمر

1/27/2013

Oracle Enterprise Manager (Host Credentials)

السلام عليكم
Oracle Enterprise Manager (Host Credentials)

 قد تحتاج الى بعض المميزات التى يتيحها لك Oracle Enterprise Manager على سبيل المثال  Schedule Backup لـ استكمال عمليه الـ Backup سوف يطلب منك ادخال كل من اسم المستخدم وكلمه المرور الخاصه بـ Host Credentials وهنا هو يريد ادخال اسم المستخدم وكلمه المرور التى تدخل من خلالهم الى نظام التشغيل لديك .عند ادخالك لهم سوف يظهر لك الخطأ التالى
صوره رقم (1)

How to reset System password when you forgotten

السلام عليكم

كيف يمكنك استعاده كلمه المرور فى حاله فقدانها او نسيانها او ما اشابهه ذلك درس اليوم ارى فيه ميزه كبيره وعيب كبير ايضا والميزه تكمن فى ان فى حاله لا يقدر الله فقدت كلمه مرور مدير النظام .. اذن فـ انت فى مشكله كبيره فمن خلال هذا الدرس ستتمكن ان شاء الله من استرجاعها .. اما العيب فـ يكمن فى ..من وجهه نظرى ان من خلال استخدام مجموعه الاوامر التاليه يستطيع اى شخص من عمل تغيير او استعاده لكلمه مدير النظام وارى فى ذلك خطأ كبير فى نظام حمايه قواعد بيانات اوركال.

قم بفتح برنامج sql plus ثم اكتب فى خانه user name

1/23/2013

Oracle INDEXES

السلام عليكم

درس اليوم عن Oracle INDEXES 
يوجد نوعان من INDEXES :
الاول:
يتم بناءه بشكل اتوماتيكى عند انشاءك لـ PRIMARY KEY OR UNIQUE KEY داخل الجدول وهذا النوع المفضل عند اوركال
الثانى :
عند استخدامك لكل من CREATE INDEX OR CREATE TABLE
دعنا نتحدث اكتر عن النوع الثانى بمثال :
Code
CREATE TABLE NEW_EMP
(employee_id NUMBER(6)
PRIMARY KEY USING INDEX
(CREATE INDEX emp_id_idx ON
NEW_EMP(employee_id)),
first_name VARCHAR2(20),
last_name VARCHAR2(25));

1/22/2013

How to Disable / Enable Constraint

السلام عليكم

درس اليوم عن كيفيه تعطيل او تفعيل القيود Constraint
Code
To Disable
ALTER TABLE EMP
DISABLE CONSTRAINT EMP_DPT_FK;

1/19/2013

Adding a Constraint Syntax , How to DROP CONSTRAINT

السلام عليكم
Adding a Constraint Syntax

درس اليوم عن كيفيه اضافه شرط معين على عمود فى جدول معين
لقد تحدثنا فى درس سابق عن امر Alter وقد سردنا بعض الخصائص التى يمكنك الاستفاده منها من هذا الامر يمكنك مشاهده الدرس السابق من خلال هذا الرابط
عند استخدامك لـ الامر Alter يمكنك ايضا من التالى :
- يمكنك من اضافه شرط جديد او مسح شرط تم اضافته من قبل.
- يمكنك من عمل تعطيل او تفعيل للشرط.
- يمكنك من اضافه not null باستخدام MODIFY
هذا هو الشكل العام للكود وبناء عليه تقوم بلتعويض عن ما تحتاجه من قيم
Code
ALTER TABLE <table_name>
ADD [CONSTRAINT <constraint_name>]
type (<column_name>);

1/16/2013

The Alter Table Statment , Drop Table PURGE

السلام عليكم
The Alter Table Statment

 درس اليوم عن امر Alter يمكنك هذا الامر من عمل التالى : 
1- يمكنك من اضافه عمود جديد.
2-يمكنك من التعديل على عمود موجود بلفعل.
3-يمكنك من تحديد قيمه -default value- افتراضيه لعمود جديد. 
4- يمكنك من مسح عمود.
بعد انشاء جدول جديد قد تحتاج لـ اضافه عمود جديد مسح عمود معين او اضافه قيمه افتراضيه لعمود معين او ماشابه ذلك اذا, واجهتك اى من الحالات السابقه اذن ف انت تحتاج الى الامر Alter
فى الامثله التاليه سوف اوضح الكود الافتراضى للـ Alter فى عمليات الاضافه او التعديل او المسح
فى عمليه الاضافه
Code
ALTER TABLE table
ADD (column datatype [DEFAULT expr]
[, column datatype]...);