Latest web development tutorials

Команда MySQL ALTER

Когда нам нужно изменить таблицу данных или изменить поле таблицы данных, вам необходимо использовать команду MySQL 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)

Удалить, добавить или изменить поле таблицы

Используйте следующие команды ALTER и DROP пункт удалить команду, созданную выше таблице I полей:

mysql> ALTER TABLE testalter_tbl  DROP i;

Если данные в таблице остается только одно поле, которое вы не можете использовать DROP, чтобы удалить поле.

MySQL используется предложение ADD, чтобы добавить столбцы хотите техническое описание, в качестве примеров полей таблицы добавить я 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)

Если вам необходимо указать расположение нового поля, (после того, как установка находится в поле), вы можете использовать MySQL предоставить ключевое слово первый (набор бит в первом столбце), после имени поля.

Попробуйте следующее заявление ALTER TABLE, после успешной реализации, использование SHOW COLUMNS просматривать структуру изменения таблицы:

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, так что если вы хотите сбросить позицию таблицы данных поля на необходимости использования DROP удалить поле, а затем использовать ADD, чтобы добавить поле и установить позицию.


Измените имя поля и введите

Если вам необходимо изменить тип поля и имя, вы можете использовать любые изменения и положение команды ALTER.

Например, тип поля с из CHAR (1) CHAR (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 на Null и значения по умолчанию

При изменении поля, можно указать, следует ли включать или только ли установить значение по умолчанию.

В следующем примере, указанное поле J является NOT NULL и значение по умолчанию равно 100.

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

Если вы не установите значение по умолчанию, MySQL автоматически установит поле по умолчанию 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 и DROP положения в удалить поле, в качестве примеров:

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 и п. Попробуйте следующие примеры, мы изменим тип таблицы testalter_tbl MYISAM:

Примечание: Смотрите типы данных таблицы можно использовать оператор STATUS SHOW TABLE.

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)

Изменить имя таблицы

Если вам нужно изменить имя таблицы данных, вы можете использовать предложение RENAME в заявлении ALTER TABLE для достижения.

Попробуйте следующие примеры таблиц данных testalter_tbl переименовывать alter_tbl:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

Команда ALTER может также использоваться для создания и удаления индексирует таблицы данных MySQL, эту функцию, мы представим в следующей главе.