مشاهدة النسخة كاملة : استخدام التعليمة Alter table في MySQL


المحــ البرمجى ــتوى
11-27-2006, 11:37 AM
سنتعلم إن شاء الله في هذا الدرس كيفية صيانة الجداول من تعديل أو حذف أو إضافة في بنية الجداول سواء ستتم هذه العمليات على الأعمدة أو الفهارس أو المفاتيح الأساسية و الغريبة, لنبدأ على بركة الله.

يتم تعديل بنية الجداول عن طريق التعليمة alter table , و تبدأ هذه التعليمة دائما بـ alter table table_name أما تتمة هذه التعليمة فتتغير بتغير الهدف منها.

# تغيير اسم جدول:

إليك الصياغة القواعدية لهذه التعليمة:

alter table table_name rename new_table_name;

فمثلا لنفرض أنك تجد الاسم employees هو اسم طويل و تريد تغييره إلى اسم مختصر قصير و لنفرض emp فيمكنك عمل ذلك كما يلي:

alter table employees rename emp;

و هناك طريقة أخرى لتغيير اسم الجدول و لكنها تستخدم مع الإصدار 3.23.27 من MySQL أو الإصدارات الأحدث و هي:

rename table table_name to new_table_name;

و بتطبيق ذلك على مثالنا نكتب:

rename table employees to emp;

و الآن أخي القارىء قم بتغيير اسم الجدول employees إلى emp و قم بتغيير اسم الجدول addresses إلى adrs

# إضافة أعمدة:

الصيغة القواعدية لإضافة عمود هي:

alter table table_name add column col_name type attributes;

فعلى سبيل المثال أنك تريد أن تضيف عمود إلى الجدول suppliers يتم فيه تخزين أرقام الجوالات الخاصة بالموردين فيتم ذلك كما يلي:

alter table suppliers add column mobile varchar(15) not null;

كما أنه يمكنك في MySQL أن تحدد موقع العمود أثناء إضافته, فإذا أرت أن تضعه في أول الأعمدة تكتب first في آخر التعليمة كما يلي:

alter table suppliers add column mobile varchar(15) not null first;

أما إذا أردت أن تضعه بعد عمود ما و ليكن مثلا sup_name يكتب after sup_name في نهاية التعليمة كما يلي:

alter table suppliers add column mobile varchar(15) not null after sup_name;


ملاحظة:

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


# حذف عمود:

الصيغة القواعدية لعملية حذف عمود هي:

alter table table_name drop column col_name ;

فمثلا لحذف العمود mobile الذي قمنا بإضافته نكتب:

alter table suppliers drop column mobile ;

لاحظ أنه عند الحذف لا تضع نوع و سمات العمود المراد حذفه.

# تغيير خصائص عمود ما:

ربما تريد في بعض الأحيان أن تغير بعض السمات أو نوع أو اسم عمود ما, إن ذلك ممكن في MySQL و يتم ذلك عن طريق أحد الأمرين change , modify و إليك الصياغة القواعدية لهذا الأمر:

alter table table_name change old_col_name new_col_name type attributes ;

من المؤكد أنك أخي القارىء قد لاحظت الخيارات المتاحة لك خلال هذا الأمر:

1. من الممكن أن تغير فقط اسم العمود: لذلك عند استخدام هذه التعليمة ستقوم فقط بتغيير الاسم مع المحافظة على النوع و السمات.

2. من الممكن أن تغير فقط النوع أو السمات أو كلاهما: و يتم ذلك عن طريق وضع الاسم الجديد نفس الاسم القديم مع تغيير النوع أو السمات أو كلاهما, و هنا ستفضل استخدام الأمر modify الذي يستخدم كما يلي:

alter table table_name modify col_name new_type new_attributes;

فمثلا أنك تريد أن تغير في الجدول emp طول العمود name من varchar(25) إلى الطول varchar(20) فستكتب:

alter table emp modify name varchar(20);

3. من الممكن أن تغير كل من السمات و النوع و الاسم: و ذلك بكتابة اسم و نوع و سمات جديدة.

و بذلك نكون بعون الله قد تعلمنا معظم خيارات الأمر alter table

++++++++++++++++++++++++++

سنكمل في هذا الدرس إن شاء الله تعليمة Alter Table , لنبدأ على بركة الله.

# إضافة فهرس:

يمكنك إضافة فهرس إلى جدول ما باستخدام أحد الأوامر index , unique , primary key و إليك الصيغة القواعدية للأوامر الثلاث التالية:

1. index :

alter table table_name add index index_name(indexed_col);

مع الأخذ بعين الاعتبار أنه من الممكن أن يمتد الفهرس على أكثر من عمود أي كما يلي:

alter table table_name add index index_name(indexed_col_1 , indexed_col_2 , … );

2. unique :

alter table table_name add unique index_name(col_name);

3. primary key :

alter table table_name add primary key (col_name);

# حذف فهرس:

يتم حذف الفهرس باستخدام التعليمة drop كما يلي:

alter table table_name drop index index_name;

و في حال انك قمت بإنشاء فهرس و لم تضع له اسما و أردت بعد ذلك حذفه ماذا ستفعل؟

لا تقلق فإن MySQL ستقوم بإعطاء اسما افتراضيا للفهرس و هو نفس العمود الذي يتم فهرسته, و تستطيع معرفة اسم الفهرس عن طريق الأمر show index الذي يقوم بعرض الفهارس الموضوعة على جدول.

# حذف جدول:

في بعض الأحيان يكون أحد جداولك بحاجة إلى صيانة كبيرة و لا يوجد بداخله بيانات تخسرها, لذلك من الأفضل أن تقوم بحذفه من أساسه, و يمكن لك ذلك عن طريق التعليمة التالية:

drop table table_name;

# حذف قاعدة بيانات:

يتم حذف قاعدة بيانات بما تحتويه من جداول و بيانات وفق التعليمة التالية:

drop database DB_name;