3.3. Modificar tablas

3.3. Modificar tablas Dataprix 6 Octubre, 2009 - 11:21

3.3.1. Agregar y eliminar columnas en MySQL

3.3.1. Agregar y eliminar columnas en MySQL Dataprix 6 Octubre, 2009 - 11:30

Alterar la estructura de una tabla de MySQL es una tarea más frecuente de lo que uno puede imaginar en un principio. La  sentencia alter table permite una amplia gama de formas de modificar una tabla. La siguiente sentencia nos recuerda un poco a la estructura de la sentencia create table, en donde modificamos la tabla personal creada en la sección anterior.

Nota                                                       
Siempre es posible consultar la estructura de una tabla con el comando describe tabla.

 

 

 

 

mysql> alter table personal add (
-> mascota char(30) default ’perro’,
-> pasatiempo char (20) not null
-> );

Después de ejecutar la sentencia anterior, aparecen dos nuevas columnas en la tabla. Si queremos agregar una sola columna, podemos usar la sintaxis siguiente:

mysql> alter table personal add capital int not null
-> after nom;

 

Este formato de alter  table permite, además, insertar las columnas antes (before) o después (after) de una columna en cuestión.

Las columnas no deseadas pueden eliminarse con la opción drop.

mysql> alter table personal drop pasatiempo;

3.3.2. Modificar columnas

3.3.2. Modificar columnas Dataprix 6 Octubre, 2009 - 11:42

La modificación de una columna con la opción modify es parecida a volver a definirla.

mysql> alter table personal modify
-> mascota char (14) default ’gato’;

Después de la sentencia anterior, los atributos y tipo de la columna han cambiado por los especificados. Lo que no se puede cambiar con esta sintaxis es el nombre de la columna. Para ello, se debe utilizar la opción change:

m

ysql> alter table personal change nom
-> nombre char(20);

La columna que se llamaba nom cambia a nombre.

Nota                                                       
En general, una tabla no puede durar mucho tiempo con un order respecto a una columna, ya que las inserciones no se realizarán respetando el orden establecido. Solamente en tablas que no van a ser actualizadas es útil aplicar este comando.

Con el mismo comando alter table podemos incluso realizar la ordenación física de una tabla bajo una columna específica:

 

 

 

 

mysql> alter table personal order by nom;
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0

 

Finalmente, podemos cambiar de nombre la

tabla:

mysql> alter table personal rename gente;

 

 

rename table                                        
El comando rename table viejo_nombre to nuevo_nombre es una forma alternativa de cambiar el nombre a una tabla.