¿QUÉ ES EL COMANDO ALTER?
Como dice el refrán, el cambio es la única constante
Con el tiempo, los requisitos empresariales también cambian. A medida que cambian los requisitos comerciales, los diseños de bases de datos también deben cambiar.
MySQL proporciona la función ALTER que nos ayuda a incorporar los cambios al diseño de la base de datos ya existente .
El comando alter se utiliza para modificar una base de datos, una tabla, una vista u otros objetos de la base de datos existentes que puedan necesitar cambios durante el ciclo de vida de una base de datos.
Supongamos que hemos completado el diseño de nuestra base de datos y se ha implementado. Los usuarios de nuestra base de datos la están utilizando y luego se dan cuenta de que parte de la información vital se omitió en la fase de diseño. No quieren perder los datos existentes, solo quieren incorporar la nueva información. El comando alter es útil en tales situaciones. Podemos usar el comando alter para cambiar el tipo de datos de un campo de digamos cadena a numérico, cambiar el nombre del campo a un nuevo nombre o incluso agregar una nueva columna en una tabla.
Alter- sintaxis
La sintaxis básica utilizada para agregar una columna a una tabla ya existente se muestra a continuación.
ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;
AQUÍ
- "ALTER TABLE` table_name` " es el comando que le dice al servidor MySQL que modifique la tabla llamada` table_name`.
- "ADD COLUMN` column_name` `data_type`" es el comando que le dice al servidor MySQL que agregue una nueva columna llamada `column_name` con el tipo de datos` data_type '.
Supongamos que Myflix ha introducido la facturación y los pagos en línea. Con ese fin, se nos ha pedido que agreguemos un campo para el número de tarjeta de crédito en nuestra tabla de miembros. Podemos usar el comando ALTER para hacer eso. Primero veamos la estructura de la mesa de miembros antes de hacer cualquier enmienda. El guión que se muestra a continuación nos ayuda a hacer eso.
SHOW COLUMNS FROM `members`;
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(350) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
Podemos usar el script que se muestra a continuación para agregar un nuevo campo a la tabla de miembros.
ALTER TABLE `members` ADD COLUMN `credit_card_number` VARCHAR(25);
La ejecución del script anterior en MySQL contra Myflixdb agrega una nueva columna denominada número de tarjeta de crédito a la tabla de miembros con VARCHAR como tipo de datos. La ejecución del script de mostrar columnas nos da los siguientes resultados.
SHOW COLUMNS FROM `members`;
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(350) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL | |||
credit_card_number | varchar(25) | YES |
Como puede ver en los resultados devueltos, el número de tarjeta de crédito se ha agregado a la tabla de miembros. Los datos contenidos en los datos de los miembros no se ven afectados por la adición de la nueva columna.
¿QUÉ ES EL COMANDO DROP?
El comando DROP se usa para
- Eliminar una base de datos del servidor MySQL
- Elimina un objeto (como Tabla, Columna) de una base de datos.
Veamos ahora ejemplos prácticos que hacen uso del comando DROP.
En nuestro ejemplo anterior sobre el comando Alter, agregamos una columna llamada número de tarjeta de crédito a la tabla de miembros.
Suponga que la funcionalidad de facturación en línea llevará algún tiempo y queremos ABANDONAR la columna de la tarjeta de crédito
Podemos usar el siguiente script
ALTER TABLE `members` DROP COLUMN `credit_card_number`;
Al ejecutar el script anterior, se elimina la columna credit_card_number de la tabla de miembros.
Veamos ahora las columnas en la tabla de miembros para confirmar si nuestra columna se ha eliminado.
SHOW COLUMNS FROM `members`;
La ejecución del script anterior en MySQL workbench contra myflixdb nos da los siguientes resultados.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(350) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
Observe que el número de la tarjeta de crédito se ha eliminado de la lista de campos.
MESA PLEGABLE
La sintaxis para DROP una tabla de la base de datos es la siguiente:
DROP TABLE `sample_table`;
Veamos un ejemplo
DROP TABLE `categories_archive`;
La ejecución de la secuencia de comandos anterior elimina la tabla denominada "categorías_archivo" de nuestra base de datos.
¿QUÉ ES EL COMANDO RENAME?
El comando de cambio de nombre se usa para cambiar el nombre de un objeto de base de datos existente (como Tabla, Columna) a un nuevo nombre .
Cambiar el nombre de una tabla no hace que pierda ningún dato que contenga.
Sintaxis:-
El comando de cambio de nombre tiene la siguiente sintaxis básica.
RENAME TABLE `current_table_name` TO `new_table_name`;
Supongamos que queremos cambiar el nombre de la tabla movierentals a movie_rentals, podemos usar el script que se muestra a continuación para lograrlo.
RENAME TABLE `movierentals` TO `movie_rentals`;
Al ejecutar el script anterior se cambia el nombre de la tabla `movierentals` a` movie_rentals`.
Ahora cambiaremos el nombre de la tabla movie_rentals a su nombre original.
RENAME TABLE `movie_rentals` TO `movierentals`;
CAMBIAR PALABRA CLAVE
Cambiar palabras clave le permite
- Cambiar el nombre de la columna
- Cambiar el tipo de datos de la columna
- Cambiar restricciones de columna
Veamos un ejemplo. El campo de nombres completos en la tabla de miembros es de tipo de datos varchar y tiene un ancho de 150.
SHOW COLUMNS FROM `members`;
La ejecución del script anterior en MySQL workbench contra myflixdb nos da los siguientes resultados.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(150) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
Supongamos que queremos
- Cambie el nombre del campo de "full_names" a "fullname"
- Cámbielo al tipo de datos char con un ancho de 250
- Agregar una restricción NOT NULL
Podemos lograr esto usando el comando de cambio de la siguiente manera:
ALTER TABLE `members` CHANGE COLUMN `full_names` `fullname` char(250) NOT NULL;
Ejecutar el script anterior en MySQL workbench contra myflixdb y luego ejecutar el script de mostrar columnas dado arriba da los siguientes resultados.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
fullnames | char(250) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
MODIFICAR PALABRA CLAVE
La palabra clave MODIFICAR le permite
- Modificar el tipo de datos de la columna
- Modificar restricciones de columna
En el ejemplo de CAMBIO anterior, tuvimos que cambiar el nombre del campo y otros detalles. Omitir el nombre del campo de la instrucción CHANGE generará un error. Supongamos que solo estamos interesados en cambiar el tipo de datos y las restricciones en el campo sin afectar el nombre del campo, podemos usar la palabra clave MODIFY para lograrlo.
El siguiente script cambia el ancho del campo "nombre completo" de 250 a 50.
ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;
La ejecución de la secuencia de comandos anterior en MySQL workbench contra myflixdb y luego la ejecución de la secuencia de comandos de mostrar columnas dado anteriormente da los siguientes resultados que se muestran a continuación.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
fullnames | char(50) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
DESPUÉS DE LA PALABRA CLAVE
Suponga que queremos agregar una nueva columna en una posición específica en la tabla.
Podemos usar el comando alter junto con la palabra clave AFTER.
El siguiente script agrega "date_of_registration" justo después de la fecha de nacimiento en la tabla de miembros.
ALTER TABLE `members` ADD `date_of_registration` date NULL AFTER `date_of_birth`;
La ejecución de la secuencia de comandos anterior en MySQL workbench contra myflixdb y luego la ejecución de la secuencia de comandos de mostrar columnas dado anteriormente da los siguientes resultados que se muestran a continuación.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
fullnames | char(50) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
date_of_registration | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
Resumen
- El comando alter se utiliza cuando queremos modificar una base de datos o cualquier objeto contenido en la base de datos.
- El comando drop se usa para eliminar bases de datos del servidor MySQL u objetos dentro de una base de datos.
- El comando de cambio de nombre se utiliza para cambiar el nombre de una tabla por un nuevo nombre de tabla.
- La palabra clave Cambiar le permite cambiar el nombre de una columna, el tipo de datos y las restricciones
- La palabra clave Modificar le permite modificar el tipo de datos de una columna y las restricciones.
- La palabra clave After se utiliza para especificar la posición de una columna en una tabla.