mysql alter table how add column table mysql
Aprenda sobre el comando MySQL ALTER Table para agregar / quitar una columna, índice, restricción, cambiar el nombre de la tabla, etc. con ejemplos:
ALTERAR MySQL El comando se usa para modificar una tabla existente agregando una nueva columna o eliminando una columna existente o cambiando el tipo de datos de la columna.
Simplemente hablando, el comando ALTER se usa para modificar la estructura de una tabla existente agregando / quitando / actualizando columnas, renombrando tablas, etc.
Es casi imposible que todos los requisitos para un esquema determinado estén disponibles de antemano, por lo que es imperativo que haya una forma de actualizar la estructura de la tabla según sea necesario.
Lo que vas a aprender:
TABLA DE ALTERACIÓN DE MySQL
SINTAXIS:
|_+_|Aquí table_name es el nombre de la tabla en la que queremos realizar la acción de modificación. Se pueden especificar una o más alter_options junto con el ALTERAR TABLA mando.
Echemos un vistazo a las diferentes alter_options proporcionadas por MySQL.
Configuración de tabla y datos de muestra
Con el fin de comprender los diferentes usos del EDAD comando, usaremos 2 tablas de muestra: Empleado y Departamento con la estructura que se menciona a continuación.
También estamos agregando algunos datos ficticios a ambas tablas.
No hemos agregado ninguna restricción FOREIGN KEY entre estas tablas. Aprenderemos a agregarlos usando el comando ALTER en los ejemplos que se muestran en las secciones siguientes a medida que lo comentamos.
|_+_|Diferentes formas de utilizar el comando ALTER Table
los ALTERAR MySQL El comando se puede usar para varias cosas como agregar / soltar una columna, agregar / soltar índice o restricción y actualizar una tabla en sí. Veamos diferentes escenarios con la ayuda de ejemplos.
AÑADIR COLUMNA
Con las tablas de muestra anteriores, agreguemos una nueva columna denominada 'department_id' de tipo INT en la tabla Empleado.
|_+_|COLUMNA DE GOTA
Similar a agregar una nueva columna, el ALTERAR MySQL El comando se puede utilizar para eliminar una columna existente de la tabla.
Intente eliminar la columna department_id agregada anteriormente de la tabla Empleado.
|_+_|Tenga en cuenta que, al soltar una COLUMNA, solo debe mencionar el nombre de la columna y no su tipo de datos.
Para validar si el comando ALTER tuvo éxito, puede ejecutar el comando SHOW COLUMNS.
|_+_|Producción:
Campo | Escribe | Nulo | Llave | Defecto | Extra |
---|---|---|---|---|---|
nombre | varchar (100) | SÍ | NULO | ||
identificación | En t | SÍ | NULO | ||
dirección | varchar (100) | SÍ | NULO |
Puede ver que ahora no hay una columna department_id en la tabla 'Empleado'.
Agregar / quitar restricciones
Veamos ahora cómo se puede usar ALTER para agregar una restricción.
El comando ALTER se puede usar para agregar o eliminar restricciones para una tabla existente. Veamos un ejemplo de una restricción FOREIGN KEY que debe agregarse entre 2 tablas.
Usaremos el comando ALTER para agregar RESTRICCIÓN DE CLAVE EXTRANJERA en la tabla Empleado para la tabla employee_department.
Agregue una nueva columna llamada department_id en la tabla Empleado.
|_+_|Ahora, agregue la restricción FOREIGN KEY.
|_+_|Para validar esta restricción, podemos usar el comando SHOW para ver la definición de la tabla.
|_+_|Mesa | Crear mesa |
---|---|
empleado | CREAR TABLA `empleado` ( `name` varchar (100) DEFAULT NULL, `id` int DEFAULT NULL, `dirección` varchar (100) DEFAULT NULL, `department_id` int DEFAULT NULL, CLAVE `departamento_id` (` departamento_id`), RESTRICCIÓN `employee_ibfk_1` LLAVE EXTRANJERA (` department_id`) REFERENCIAS `employee_department` (` id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
Verá que hay una restricción FOREIGN KEY creada en la columna department_id.
Veamos ahora cómo podemos usar el comando ALTER para eliminar la restricción FOREIGN KEY que acabamos de agregar.
|_+_|Tenga en cuenta que deberá utilizar el nombre de la restricción que se creó. Entonces, en la salida del comando SHOW anterior, puede ver que el nombre de la restricción que MySQL ha creado para la restricción FOREIGN KEY es ' employee_ibfk_1 ’
Ejecute el comando SHOW para ver si la restricción se elimina como se muestra a continuación:
|_+_|Mesa | Crear mesa |
---|---|
empleado | CREAR TABLA `empleado` ( `name` varchar (100) DEFAULT NULL, `id` int DEFAULT NULL, `dirección` varchar (100) DEFAULT NULL, `department_id` int DEFAULT NULL, CLAVE `departamento_id` (` departamento_id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
Agregar / quitar índices
ALTERAR MySQL El comando table también le permite crear o colocar ÍNDICES en una tabla.
Puede haber cuatro tipos diferentes de índices que se pueden agregar usando el comando ALTER TABLE.
# 1) Agregar LLAVE PRIMARIA: Este comando agrega un índice PRIMARY KEY contra una columna (o columnas) determinada
En el siguiente ejemplo, use la tabla de empleados y agregue el índice PRIMARY KEY a la columna 'Id'.
# 2) Agregar ÚNICO: Agrega o crea un índice único contra las columnas determinadas
Supongamos que hipotéticamente solo queremos nombres únicos en una tabla. Agregue un índice ÚNICO en la columna 'nombre' en la tabla Empleado como se muestra a continuación.
# 3) Agregar ÍNDICE: Agregue un índice ordinario contra cualquier columna.
Agregue un índice normal en el campo 'dirección' en la tabla Empleado.
# 4) Agregar índice FULLTEXT: Este es un tipo especial de índice que se utiliza con fines de búsqueda de texto.
Agregaremos un índice FULLTEXT en los valores de la columna 'nombre' en la tabla Empleado.
Para los 4 ejemplos anteriores, podemos ejecutar el MOSTRAR CREAR MESA comando para obtener los detalles sobre los índices creados.
|_+_|Mesa | Crear mesa |
---|---|
empleado | CREAR TABLA `empleado` ( `name` varchar (100) DEFAULT NULL, `id` int NOT NULL, `dirección` varchar (100) DEFAULT NULL, `department_id` int DEFAULT NULL, CLAVE PRIMARIA (`id`), CLAVE ÚNICA `nombre` (` nombre`), CLAVE `nombre_2` (` nombre`), TECLA FULLTEXT `dirección` (` dirección`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
En el resultado anterior, observará que todos los índices se han creado según el valor en la columna create_table.
Al igual que en la creación de índices, el comando ALTER también se puede utilizar para eliminar índices existentes de la tabla.
Ejemplo:
|_+_|El comando anterior DROP el índice FULLTEXT que hemos agregado para el campo de dirección.
Note el nombre 'dirección'. Esto debe coincidir con el nombre del índice en la salida del MOSTRAR CREAR MESA mando.
Cambiar el valor predeterminado de la columna
ALTERAR TABLA El comando también se puede usar para ESTABLECER / Cambiar el valor PREDETERMINADO de una columna existente.
uso del comando grep en unix
Veamos un ejemplo en el que cambiaremos el valor predeterminado de la columna department_id a '1'. Con esto, cualquier nueva inserción en esta tabla cambiaría / establecería el valor de la columna department_id en 1
|_+_|Agregue un nuevo registro a la tabla Empleado:
|_+_|Y ahora consultemos el department_id para este registro y veamos cuál es el valor que se está estableciendo.
|_+_|Actualizar nombre de tabla
ALTERAR MySQL El comando table también se puede utilizar para actualizar el nombre de una tabla existente. A veces es necesario actualizar la estructura del esquema, lo que puede implicar cambiar / actualizar los nombres de las tablas.
Ejemplo - Cambiaremos el nombre de la tabla `employee` a` Employee_details`.
|_+_|Preguntas frecuentes
P # 1) ¿Cómo cambio la estructura de la tabla en MySQL?
Responder: MySQL proporciona el comando ALTER para cambiar la estructura de una tabla existente en MySQL. Puede realizar varias operaciones con el comando ALTER como,
- Agregar / eliminar una columna
- Agregar / eliminar índice o restricción
- Cambiar el nombre de una tabla
P # 2) ¿El comando ALTER bloquea una mesa?
Responder: Puede depender de las versiones, con versiones anteriores de MySQL Bloquear una tabla durante la ejecución de la instrucción ALTER. En general, el bloqueo se produciría, es decir, cualquier lectura y escritura durante ALTER.
Por ejemplo - Agregar una nueva columna para una tabla existente tocaría todas las filas de la tabla en la que se agrega la columna y cuando la tabla tiene un número de registros en millones, la operación ALTER puede tomar algún tiempo en ejecutarse. En este caso, el bloqueo de las lecturas / escrituras sería costoso ya que la base de datos estaría inactiva e inaccesible.
P # 3) ¿Podemos agregar más de una columna en la tabla ALTER?
Responder: Sí, el comando ALTER se puede usar para agregar varias columnas dentro de una sola declaración.
Veamos un ejemplo en el que tenemos una tabla Empleado con las columnas id, nombre y dirección y supongamos que queremos agregar 2 columnas más llamadas: educación_más alta (tipo varchar) y número_teléfono (tipo varchar)
Echemos un vistazo a la información de la tabla.
|_+_|Producción:
Campo | Escribe | Nulo | Llave | Defecto | Extra |
---|---|---|---|---|---|
nombre | varchar (100) | SÍ | UNIDO | NULO | |
identificación | En t | NO | PRI | NULO | |
dirección | varchar (100) | SÍ | NULO | ||
departamento_id | En t | SÍ | 1 | ||
Alta educación | varchar (50) | SÍ | NULO | ||
número de teléfono | varchar (20) | SÍ | NULO |
En la salida anterior, puede ver las columnas, se agregaron la educación más alta y el número de teléfono.
Conclusión
En este tutorial, aprendimos sobre diferentes usos del ALTERAR MySQL Comando de tabla. ALTER es un comando importante ya que se puede usar para múltiples propósitos para ALTERAR la estructura de una tabla existente en MySQL.
Se puede usar para cosas como: agregar / eliminar una columna, agregar / eliminar índices o restricciones, y también se puede usar incluso para cambiar el nombre de una tabla existente.
Cualquiera que esté aprendiendo MySQL debe tener una comprensión profunda del comando ALTER table, ya que se usa principalmente durante las fases de mantenimiento de bases de datos donde se requiere modificar el esquema de tabla existente.
Lectura recomendada
- Tutorial de creación de tablas de MySQL con ejemplos
- Insertar MySQL en la tabla: sintaxis y ejemplos de instrucciones de inserción
- Tipos de datos MySQL | ¿Cuáles son los diferentes tipos de datos en MySQL?
- Conceptos básicos de la restricción FOREIGN KEY de MySQL con ejemplos
- Tutorial de MySQL JOIN: interno, externo, cruzado, izquierdo, derecho y propio
- MySQL Create Database: cómo crear una base de datos en MySQL
- Las 40 mejores preguntas y respuestas de las entrevistas de MySQL (preguntas de 2021)
- Tabla hash en C ++: programas para implementar tablas hash y mapas hash