69 - Modificar campos (alter table- modify)


Primer problema:

Trabaje con una tabla llamada "empleados" y "secciones".

1- Elimine las tablas y créelas:

 drop table empleados;
 drop table secciones;

 create table secciones(
  codigo number(2),
  nombre varchar(20),
  primary key (codigo)
 );

 create table empleados(
  apellido varchar2(20) not null,
  nombre varchar2(20),
  domicilio varchar2(30),
  seccion number(2),
  fechaingreso date,
  telefono number(7),
  constraint FK_empleados_seccion
   foreign key (seccion)
   references secciones(codigo)
   on delete set null
 );

2- Modifique el tipo de dato del campo "telefono" a varchar(11)
Oracle lo permite porque la tabla está vacía; si no lo estuviese, no lo permitiría.

3- Ingrese algunos registros en ambas tablas

 insert into secciones values(8,'Secretaria');
 insert into secciones values(9,'Contaduria');
 insert into secciones values(10,'Sistemas');

 insert into empleados values('Lopez','Luciano','Colon 123',8,'10/10/1980','4819977');
 insert into empleados values('Gonzalez',null,'Avellaneda 222',9,'01/05/1990','4515566');

4- Modifique el campo "nombre" de "empleados" para que permita cadenas variables de 10 caracteres (menor longitud) y luego verifique el cambio.
Oracle lo permite, porque los valores en tal campo son menores a 10.

5- Intente modificar el campo "nombre" de "empleados" para que permita cadenas variables de 6 caracteres (menor longitud)
Oracle no lo permite, porque un valor en tal campo consta de 7 caracteres.

6- Elimine el registro correspondiente a "Lopez Luciano"

7- Modifique el campo "nombre" de "empleados" para que permita cadenas variables de 6 caracteres
Oracle lo permite, la tabla no está vacía pero los registros contienen valor nulo en el campo "nombre".

8- Intente cambiar el tipo de dato del campo "codigo" de "secciones" a char(2)
Oracle no lo permite porque tal campo es referenciado por una clave externa.

9- Cambie la longitud del campo "codigo" de "secciones" a 3.
Oracle lo permite porque el cambio no afecta la restricción "foreign key" que referencia el campo "codigo".

10- Intente modificar el campo "nombre" de "empleados" para que no admita valores nulos.
Mensaje de error, la tabla contiene valores nulos en tal campo.

11- Modifique el valor nulo por uno válido del campo "nombre" de "empleados" y luego realice la modificación del punto anterior.

12- Verifique que "nombre" ya no admite valores nulos.

Ver solución

 drop table empleados;
 drop table secciones;

 create table secciones(
  codigo number(2),
  nombre varchar(20),
  primary key (codigo)
 );

 create table empleados(
  apellido varchar2(20) not null,
  nombre varchar2(20),
  domicilio varchar2(30),
  seccion number(2),
  fechaingreso date,
  telefono number(7),
  constraint FK_empleados_seccion
   foreign key (seccion)
   references secciones(codigo)
   on delete set null
 );

  alter table empleados
   modify telefono varchar(11);

 insert into secciones values(8,'Secretaria');
 insert into secciones values(9,'Contaduria');
 insert into secciones values(10,'Sistemas');

 insert into empleados values('Lopez','Luciano','Colon 123',8,'10/10/1980','4819977');
 insert into empleados values('Gonzalez',null,'Avellaneda 222',9,'01/05/1990','4515566');

 alter table empleados
  modify nombre varchar2(10);

 describe empleados;

 alter table empleados
  modify nombre varchar2(6);

 delete empleados where apellido='Lopez';

 alter table empleados
  modify nombre varchar2(6);

 alter table secciones
  modify codigo char(2);

 alter table secciones
  modify codigo number(3);

 alter table empleados
  modify nombre not null;

 update empleados set nombre='Marina' where nombre is null;

 alter table empleados
  modify nombre not null;

 describe empleados;

 


Retornar