ALTER TABLE en MySQL
Sentencia ALTER TABLE en MySQL
ALTER TABLE es una instrucción de MySQL que nos permite cambiar la estructura de una tabla. Con ALTER TABLE podemos añadir, modificar y eliminar los campos de una tabla, como modificar el nombre, tipo de dato, restricciones PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, DEFAULT y cambiar el nombre de la misma tabla.
ALTER TABLE dispone de distintas cláusulas para realizar las diferentes modificaciones a la tabla.
CHANGE
Permite modificar el nombre de una tabla y su tipo de dato
ALTER TABLE [tabla] CHANGE
[campo_actual] [campo_nuevo] [tipo de dato]
ALTER TABLE usuarios CHANGE
nombre name VARCHAR(50)
ADD
Añade un campo nuevo con la opción de incluir FIRST o AFTER que permite ubicar el nuevo campo en la tabla.
ALTER TABLE [tabla]
ADD [campo_nuevo] [tipo_de_dato] [opciones]
ALTER TABLE usuarios
ADD sexo VARCHAR(50) NOT NULL
AFTER edad
DROP
Sentencia que permite eliminar un campo. Si el campo pertenece a un índice se elimina del índice.
ALTER TABLE [tabla] DROP COLUMN [campo]
ALTER TABLE usuarios
DROP COLUMN sexo
Nota: No se puede recuperar la información eliminada con DROP.
RENAME
Permite cambiar el nombre de la tabla.
ALTER TABLE [tabla] RENAME AS [nuevo_nombre_tabla]
ALTER TABLE usuarios
RENAME AS users
EXPLAIN o SHOW COLUMNS
Visualización de la estructura de la tabla
EXPLAIN [tabla]
SHOW COLUMNS FROM [tabla]
ALTER SET DEFAULT Y ALTER DROP DEFAULT
Establece un valor por defecto y elimina el valor por defecto respectivamente
ALTER TABLE [tabla] ALTER [campo]
SET DEFAULT [valor]
Nota: Si el campo tiene un valor lo sustituye por el DEFAULT
ALTER TABLE [tabla] ALTER [campo]
DROP DEFAULT
Nota: DROP DEFAULT no modifica los valores
ADD INDEX y ADD UNIQUE
Añaden un índice a la tabla. ADD UNIQUE además no permite duplicidad.
Si no se indica el valor, MySQL copia el nombre del primer campo,
ALTER TABLE [tabla] ADD INDEX
[tabla] [nombre_indice]([campo/s])
(Añadiendo índice único multicampo):
ALTER TABLE [tabla]
ADD UNIQUE INDEX [nombre_indice] [campo1, campo2]
Nota: Índices tipo BLOB o TEXT deben contener el número de caracteres.
DROP INDEX
Elimina un índice de una tabla
ALTER TABLE [tabla] DROP INDEX [campo_indice]
ADD PRIMARY KEY
Añade una llave o clave primaria que identifica de forma única cada registro en la tabla.
ALTER TABLE [tabla] ADD PRIMARY KEY [][campo]
Nota: Una tabla solo puede tener una clave primaria, pero puede disponer de uno o varios campos. A través de ALTER TABLE es necesario que el campo sea NOT NULL.
DROP PRIMARY KEY
Elimina una clave primaria de una tabla.
ALTER TABLE [tabla] DROP PRIMARY KEY
Nota: Si la tabla no tiene clave primaria pero tiene más de un índice UNIQUE se elimina el primero que fue creado
MODIFY
Permite modificar el tipo de dato y las restricciones de un campo
ALTER TABLE [tabla] MODIFY [campo] [tipo_de_dato] [restriccion]
ALTER TABLE usuarios MODIFY nombre VARCHAR(100) NOT NULL
ENGINE
Permite cambiar de motor MySQL
ALTER TABLE [tabla] ENGINE = InnoDB
Para poder comentar es necesario iniciar sesión