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]...);  


فى عمليه التعديل
Code
ALTER TABLE table
MODIFY (column datatype [DEFAULT expr]
[, column datatype]...);  


فى عمليه المسح
Code
ALTER TABLE table
DROP (column datatype [DEFAULT expr]
[, column datatype]...);  
نبدا فى  الامثله العمليه 
مثال 1(الأضافه) ADD
عندى جدول بأسم DEPT اريد اضافه فيه عمود بأسم JOB_ID من نوع VARCHAR2
Code
ALTER TABLE DEPT
ADD     (JOB_ID VARCHAR2(10));
ملحوظه :
 لايمكنك تحديد مكان للعمود الجديد وفى معظم الاحيان يظهر فى نهايه الجدول.
عند اضافتك لـ عمود جديد وكان الجدول يحتوى على بيانات فلا يمكنك استخدام القيد NOT NULL يمكنك اضافه القيد NOT NULL فى حاله كان الجدول لا يوجد فيه بيانات

مثال 2 (التعديل) MODIFY
فى المثال التالى سوف اقوم بلتعديل على data type لعمود معين
Code
ALTER TABLE DEPT
MODIFY           (LAST_NAME VARCHAR2(50));
ملحوظه :
بأمكانك اضافه width لعمود من نوع numeric or character
- لا يمكنك تقليص الـ data type لعمود معين فى حاله :
-اذا كان العمود مشروط بقيد ال not null value.
-اذا كانت قيمه التقليص الجديده اصغر من القيم الموجوده داخل العمود.
على سبيل المثال لديك عمود (5)first_name varchar2
يحتوى العمود على قيمه بأسم ahmed عند التقليص من حجم العمود وتغيير ال data type من 5 الى 3 ففى هذه الحاله لا يسمح لك بذلك لان القيمه المدخله داخل العمود اكبر من التقليص ارجو ان تكون وضحت.
-ويمكنك ايضا تعديل الـ data type من نوع char الى نوع varchar2 والعكس, حتى لو العمود يحتوى على بيانات ولكن لابد من الحفاظ على الـ width.

مثال 3 (المسح) DROP 
اريد مسح العمود JOB_ID من جدول DEPT
Code
ALTER TABLE DEPT
DROP   COLUMN JOB_ID;
ملحوظه :
1- يمكنك استخدامها فى حاله اذا كان العمود يحتوى او لا يحتوى على بيانات.
2- يمكنك مسح عمود واحد فى كل مره تستخدم فيها الامر DROP.
3-على الاقل يجب ان يحتوى الجدول على عمود واحد لكى تتمكن من استخدام الامر.
4- فى حاله قمت مسح عمود معين لا يمكنك استرجاعه.
5-لا يمكنك مسح عمود فى حاله كان العمود مرتبط بعمود اخر او كان جزء من INDEX ... سنتطرق فى درس اخر كيف يمكنك مسح عمود حتى ولو كان مرتبط بعمود اخر.
6 - اذا كان العمود يوجد به الكثير من البيانات فـ يفضل استخدام الامر UNUSED ثم بعد ذلك استخدم الامر DROP.


السلام عليكم
Drop Table PURGE

تمتلك اوركال داتا بيز 10 جى ميزه جديده فى حذف الجداول من قواعد البيانات وتتركز هذه الميزه عندما تقوم بحذف جدول معين.
 لا تقوم اوركال بحذف الجدول فى الحال ولكن تقوم بأعاده تسميته ثم ترسله الى recycle bin حتى ان اردت بعد ذلك استرجاعه فـ يمكنك استرجاعه بأستخدام خاصيه الـ FLASHBACK وطوال هذه الفتره تحتفظ اوركال بمساحه هذا الجدول .
 كيف يمكنك حذف جدول معين بشكل نهائى من قاعده البيانات والاستفاده من المساحه التى يحتلها الجدول فى قاعده البيانات؟..
 انت فى هذه الحاله تحتاج الى استخدام امر اخر بجانب امر DROP وهو امر PURGE فمن خلال استخدام هذا الامر ستتمكن من حذف الجدول بشكل نهائى ولن تتمكن من استرجاعه مره اخرى .
Code
DROP TABLE table_name PURGE;
يمكنك مسح كل محتوى recycle bin باستخدام الامر التالى 
Code
PURGE RECYCLEBIN;

No comments:

Post a Comment