Latest web development tutorials

ALTER comandos de MySQL

Cuando tenemos que modificar la tabla de datos o modificar los datos de campo de tabla, es necesario utilizar el comando ALTER MySQL.

Tutorial antes del comienzo de este capítulo vamos a crear una tabla, el nombre de la tabla: testalter_tbl.

[email protected]# 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)

Borrar, añadir o modificar un campo de tabla

Utilice los siguientes comandos ALTER y DROP eliminar la cláusula de comando creado anteriormente i campos de la tabla:

mysql> ALTER TABLE testalter_tbl  DROP i;

Si los datos de la tabla que queda un campo que no se puede usar DROP para eliminar el campo.

MySQL utilizar la cláusula ADD para agregar columnas quieren hoja de datos, como ejemplos de campos de la tabla añaden i testalter_tbl y definir los tipos de datos:

mysql> ALTER TABLE testalter_tbl ADD i INT;

Después de ejecutar el comando anterior, estén campos se añaden automáticamente al final del campo de la tabla de datos.

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)

Si es necesario especificar la ubicación del nuevo campo, (después de ajuste situado en un campo) se puede usar MySQL proporcionar los primeros (bit activado en la primera columna) de palabras clave, después del nombre de campo.

Pruebe lo siguiente sentencia ALTER TABLE, después de la aplicación con éxito, el uso VER columnas de la vista de la estructura de la tabla de cambios:

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;

PRIMERO y DESPUÉS palabras clave única para la cláusula ADD, por lo que si desea restablecer la posición de campo de tabla de datos en la necesidad de usar DROP borrar un campo y luego usar ADD para agregar el campo y establecer la posición.


Modificar el nombre del campo y escriba

Si necesita modificar el tipo de campo y el nombre, puede utilizar cambiar o modificar la cláusula del comando ALTER.

Por ejemplo, el campo de tipo c de CHAR (1) a CHAR (10), puede ejecutar el siguiente comando:

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

Cambio del uso de la cláusula de gramática son muy diferentes. Después de la palabra clave CAMBIO, seguido del nombre del campo que desea modificar y, a continuación, especifique un nuevo nombre de campo y tipo. Prueba los siguientes ejemplos:

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

Efecto de ALTER TABLE en valores nulos y valores por defecto

Cuando modifica el campo, puede especificar si se debe incluir o si sólo se establece el valor predeterminado.

En el siguiente ejemplo, el campo especificado j no es NULL y el valor por defecto es 100.

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

Si no se establece un valor por defecto, MySQL ajustará automáticamente los valores predeterminados de campo a NULL.


Modificar los valores predeterminados de campo

Se puede utilizar el ALTER modificar el valor por defecto del campo, pruebe los siguientes ejemplos:

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)

También puede utilizar los modificar y eliminar las cláusulas de comando por defecto para eliminar el campo, como ejemplos:

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:

Modificar los tipos de tablas de datos, se puede lograr mediante el comando ALTER y la cláusula TYPE. Prueba los siguientes ejemplos, vamos a modificar el tipo de tabla MYISAM testalter_tbl:

Nota: Ver los tipos de tablas de datos pueden utilizar el comando SHOW TABLE STATUS.

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)

Modificar el nombre de la tabla

Si necesita modificar el nombre de la tabla de datos, puede utilizar la cláusula RENAME en sentencia ALTER TABLE para lograr.

Prueba los siguientes ejemplos de tablas de datos testalter_tbl renombrar alter_tbl:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

comando ALTER también se puede utilizar para crear y borrar índices, tablas de datos MySQL, esta característica vamos a introducir en el siguiente capítulo.