Está en la página 1de 3

Crear / Modificar / Eliminar tablas en MySQL Una de las tareas frecuentes durante el proceso de desarrollo de un proyecto es el cambio de la estructura

de la base de datos. Esta gua pretende mostrar como crear, modificar y eliminar tablas de una base de datos MySQL; no obstante las sentencias implicadas en estas operaciones son extensas y complejas y abordarlas en su totalidad sera engorroso y poco prctico. Para ms informacin remtase al sitio oficial de MySQL Crear Tabla Crear la tabla hotel con la siguiente especificacin: - Identificador: entero sin signo, autoincrementable, llave primaria - nombre: longitud variable, 100 carcteres como mxima longitud y no nulo - activo: booleano, no nullo, 1 valor por defecto - url: longitud variable, 255 carcteres como mxima longitud, ndice nico CREATE TABLE hotel (id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, nombre VARCHAR(100) NOT NULL, descripcion TEXT, activo TINYINT(1) DEFAULT '1' NOT NULL, url VARCHAR(255), UNIQUE INDEX url_idx (url)) DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE = InnoDB; Ntese que hemos especificado codificacin UTF-8 y motor de almacenamiento InnoDB para esta tabla. (La codificacin y motor de almacenamiento en una instalacin MySQL por defecto son latin1 y MyISAM respectivamente) Crear la tabla trabajador con la siguiente especificacin: - Identificador: entero sin signo, autoincrementable, llave primaria - nombre: longitud variable, 100 carcteres como mxima longitud y no nulo - activo: booleano, no nullo, 1 valor por defecto CREATE TABLE trabajador (id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, nombre VARCHAR(100) NOT NULL, activo TINYINT(1) DEFAULT '1' NOT NULL, hotel_id INT UNSIGNED ) DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE = InnoDB; Ver especificacin de una tabla desc hotel; Ver ndices de una tabla

show index from hotel; Modificar definicin de una columna Restringir los valores de hotel_id a valores no nulos en la tabla trabajador ALTER TABLE trabajador MODIFY COLUMN hotel_id INT UNSIGNED NOT NULL; Agregar columna Agregar la columna cdigo a la tabla trabajador ALTER TABLE trabajador ADD COLUMN codigo CHAR(11) NOT NULL; Crear ndice El cdigo del trabajador debe ser nico CREATE UNIQUE INDEX trabajador_codigo_idx USING BTREE on trabajador(codigo); Crear relacin Aqu se establece la relacin entre trabajador y hotel (Un hotel puede terner muchos trabajadores y un trabajador pertenece a un solo hotel). Cuando se elemina un hotel se eliminan todos sus trabajadores ALTER TABLE trabajador ADD CONSTRAINT trabajador_hotel_id_hotel_id FOREIGN KEY (hotel_id) REFERENCES hotel(id) ON DELETE CASCADE; Renombrar columna Cambiar el nombre de la columna url a slug de la tabla hotel y restringir los valores a no nulos y cadena vaca como valor por defecto ALTER TABLE hotel CHANGE COLUMN url slug varchar(255) NOT NULL DEFAULT ''; Renombrar tabla ALTER table trabajador RENAME TO trabajadores; Eliminar tabla DROP table tabla1[,tabla2, ...]

Eliminar ndice alter table drop index Eliminar columna Eliminar la columna cdigo de la tabla trabajadores ALTER TABLE trabajadores DROP COLUMN codigo; trabajador_codigo_idx;

También podría gustarte