Latest web development tutorials

قيادة الخلية ALTER

عندما نحتاج إلى تعديل جدول البيانات أو تعديل حقل جدول البيانات، تحتاج إلى استخدام قيادة الخلية ALTER.

البرنامج التعليمي قبل بداية هذا الفصل دعونا إنشاء جدول، اسم الجدول: testalter_tbl.

root@host# mysql -u root -p password;
Enter password:*******
mysql> use w3big;
Database changed
mysql> create table testalter_tbl
    -> (
    -> i INT,
    -> c CHAR(1)
    -> );
Query OK, 0 rows affected (0.05 sec)
mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| i     | int(11) | YES  |     | NULL    |       |
| c     | char(1) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)

حذف أو إضافة أو تعديل حقل الجدول

استخدم الأوامر التالية تغيير وفقرة DROP حذف قيادة خلقت أعلى جدول ط المجالات:

mysql> ALTER TABLE testalter_tbl  DROP i;

إذا كانت البيانات في الجدول فقط المتبقي حقل واحد لا يمكنك استخدام DROP لحذف الحقل.

الخلية استخدام جملة أضف إلى إضافة أعمدة ترغب في ورقة البيانات، كأمثلة على الحقول في الجدول تضيف ط testalter_tbl وتحديد أنواع البيانات:

mysql> ALTER TABLE testalter_tbl ADD i INT;

بعد تنفيذ الأمر أعلاه، يتم إضافة الحقول تلقائيا إلى نهاية حقل جدول البيانات.

mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| c     | char(1) | YES  |     | NULL    |       |
| i     | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)

إذا كنت بحاجة إلى تحديد موقع الحقل الجديد، (بعد الإعداد الموجود في حقل) يمكنك استخدام الخلية تقديم الكلمة الأول (بت تعيين في العمود الأول)، بعد اسم الحقل.

حاول بيان الجدول ALTER التالية، بعد التنفيذ الناجح، والأعمدة استخدام إظهار طريقة عرض الهيكل تغيير الجدول:

ALTER TABLE testalter_tbl DROP i;
ALTER TABLE testalter_tbl ADD i INT FIRST;
ALTER TABLE testalter_tbl DROP i;
ALTER TABLE testalter_tbl ADD i INT AFTER c;

اولا وبعد الكلمات الرئيسية فقط لفقرة ضيف، لذلك إذا كنت ترغب في إعادة وضع حقل جدول بيانات على الحاجة لاستخدام قطرة حذف حقل ثم استخدام ADD لإضافة الحقل وتعيين موضع.


تعديل اسم الحقل واكتب

إذا كنت بحاجة إلى تعديل نوع الحقل واسم، يمكنك استخدام تغيير أو تعديل بند من الأمر ALTER.

على سبيل المثال، ج نوع الحقل من CHAR (1) إلى شار (10)، يمكنك تنفيذ الأمر التالي:

mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);

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

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

تأثير ALTER TABLE على قيم خالية والافتراضي

عند تعديل الحقل، يمكنك تحديد ما إذا كان لتشمل أم فقط تعيين القيمة الافتراضية.

في المثال التالي، ي الحقل المحدد هو NOT NULL والقيمة الافتراضية هي 100.

mysql> ALTER TABLE testalter_tbl 
    -> MODIFY j BIGINT NOT NULL DEFAULT 100;

إذا لم يكن لتعيين قيمة افتراضية، فإن الخلية تلقائيا تعيين افتراضيات ميدانية إلى NULL.


تعديل قيم الحقل الافتراضي

يمكنك استخدام ALTER تعديل القيمة الافتراضية للحقل، في محاولة الأمثلة التالية:

mysql> ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| c     | char(1) | YES  |     | NULL    |       |
| i     | int(11) | YES  |     | 1000    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)

يمكنك أيضا استخدام الأمر الافتراضي ALTER وإسقاط البنود لحذف الحقل، والأمثلة على ذلك:

mysql> ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| c     | char(1) | YES  |     | NULL    |       |
| i     | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
Changing a Table Type:

تعديل أنواع جدول البيانات، ويمكن تحقيق ذلك باستخدام الأمر ALTER وبند TYPE. جرب الأمثلة التالية، وسوف نقوم بتعديل نوع من MYISAM الجدول testalter_tbl:

ملاحظة: انظر يمكن للأنواع جدول البيانات استخدم العبارة إظهار حالة الجدول.

mysql> ALTER TABLE testalter_tbl TYPE = MYISAM;
mysql>  SHOW TABLE STATUS LIKE 'testalter_tbl'\G
*************************** 1. row ****************
           Name: testalter_tbl
           Type: MyISAM
     Row_format: Fixed
           Rows: 0
 Avg_row_length: 0
    Data_length: 0
Max_data_length: 25769803775
   Index_length: 1024
      Data_free: 0
 Auto_increment: NULL
    Create_time: 2007-06-03 08:04:36
    Update_time: 2007-06-03 08:04:36
     Check_time: NULL
 Create_options:
        Comment:
1 row in set (0.00 sec)

تعديل اسم الجدول

إذا كنت بحاجة إلى تعديل اسم جدول البيانات، يمكنك استخدام جملة إعادة تسمية في بيان الجدول ALTER لتحقيقه.

جرب الأمثلة التالية من جداول البيانات testalter_tbl إعادة تسمية alter_tbl:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

ويمكن أيضا أن قيادة ALTER استخدامها لإنشاء وحذف الفهارس جداول البيانات الخلية، وهذه الميزة سوف نقدم في الفصل التالي.