lunes, 5 de noviembre de 2012

50 - Eliminar campos de una tabla (alter table - drop)


"alter table" nos permite alterar la estructura de la tabla, podemos usarla para eliminar un campo.
Continuamos con nuestra tabla "libros".

Para eliminar el campo "edicion" tipeamos:

 alter table libros
  drop edicion;
 
Entonces, para borrar un campo de una tabla usamos "alter table" junto con "drop" y el nombre del campo a eliminar.

Si intentamos borrar un campo inexistente aparece un mensaje de error y la acción no se realiza.
Podemos eliminar 2 campos en una misma sentencia:

 alter table libros
  drop editorial, drop cantidad;
 
Si se borra un campo de una tabla que es parte de un índice, también se borra el índice.

Si una tabla tiene sólo un campo, éste no puede ser borrado.

Hay que tener cuidado al eliminar un campo, éste puede ser clave primaria. Es posible eliminar un campo que es clave primaria, no aparece ningún mensaje:

 alter table libros
  drop codigo;
 
Si eliminamos un campo clave, la clave también se elimina.


PROBLEMA RESUELTO

Trabajamos con la tabla "libros" de una librería.

Eliminamos la tabla "libros" si existe.

Creamos la tabla "libros" con la siguiente estructura:

 create table libros(
  codigo int unsigned auto_increment,
  titulo varchar(40) not null,
  autor varchar(30),
  editorial varchar (20),
  edicion date,
  precio decimal(5,2) unsigned,
  cantidad int unsigned,
  primary key(codigo)
 );
Para eliminar el campo "edicion" tipeamos:

 alter table libros
  drop edicion;
 
Si visualizamos la estructura de la tabla con "describe", vemos que la columna "edicion" se ha eliminado:

 describe libros;
 
Si intentamos borrar un campo inexistente aparece un mensaje de error y la acción no se realiza:

 alter table libros
  drop edicion;
 
Para eliminar 2 campos en una misma sentencia tipeamos:

 alter table libros
  drop editorial, drop cantidad;
 
Elimine el campo clave:

 alter table libros
  drop codigo;
 
 
 
PROBLEMA PROPUESTO
 
 
Trabaje con la tabla "peliculas" de un video club.

1- Elimine la tabla, si existe.

2- Cree la tabla con la siguiente estructura:
 
 create table peliculas(
  codigo int unsigned auto_increment,
  nombre varchar(30) not null,
  protagonista varchar(20),
  actorsecundario varchar(20),
  director varchar(25),
  duracion tinyint unsigned,
  primary key(codigo),
  index i_director (director)
 );

3- Ingrese algunos registros.

4- Vea los índices:
 
5- Elimine el campo "director":
 
6- Visualice la estructura modificada:
 
7- Vea los índices:
 
Note que el índice por "editorial" ya no existe, esto es porque si borra 
un campo que es parte de un índice, también se borra el índice.

8- Intente eliminar un campo inexistente. Aparece un mensaje de error:
 
9- Elimine los campos "actorsecundario" y "duracion" en una misma sentencia:
  
 
 
Otros problemas: 

Trabajamos con nuestra tabla "usuarios" que almacena los nombres de los 
usuarios y sus claves.

1- Elimine la tabla si existe.

2- Cree la tabla:
 
 create table usuarios (
  nombre varchar(30),
  clave varchar(10)
 );

3- Elimine el campo "clave":
 
4- Visualice la estructura de la tabla:
 
5- Intente eliminar el único campo de la tabla:

Aparece un mensaje de error y la sentencia no se ejecuta, esto es porque 
no se puede dejar una tabla vacía de campos.
 

No hay comentarios:

Publicar un comentario