71 - Agregar campos y restricciones (alter table)


Problema:

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

  drop table libros;

Creamos la tabla con la siguiente estructura:

 create table libros(
  autor varchar2(30),
  editorial varchar2(15)
 );

Agregamos el campo "titulo" de tipo varchar2(30) y una restricción "unique":

 alter table libros
  add titulo varchar2(30) 
  constraint UQ_libros_autor unique;

Veamos si la estructura cambió:

 describe libros;

Agregamos el campo "codigo" de tipo number(4) not null y en la misma sentencia una restricción "primary key":

 alter table libros
  add codigo number(4) not null
  constraint PK_libros_codigo primary key;

Agregamos el campo "precio" de tipo number(6,2) y una restricción "check" que no permita valores negativos para dicho campo:

 alter table libros
  add precio number(6,2)
  constraint CK_libros_precio check (precio>=0);

Veamos la estructura de la tabla y las restricciones:

 describe libros;
 select *from user_constraints where table_name='LIBROS';

La tabla contiene 5 campos y 4 restricciones.

Ingresemos el siguiente lote de comandos en el Oracle SQL Developer:

 drop table libros;

 create table libros(
  autor varchar2(30),
  editorial varchar2(15)
 );

 -- Agregamos el campo "titulo" de tipo varchar2(30) y una restricción "unique":
 alter table libros
  add titulo varchar2(30) 
  constraint UQ_libros_autor unique;

 -- Veamos si la estructura cambió:
 describe libros;

 -- Agregamos el campo "codigo" de tipo number(4) not null y en la misma
 -- sentencia una restricción "primary key":
 alter table libros
  add codigo number(4) not null
  constraint PK_libros_codigo primary key;

 -- Agregamos el campo "precio" de tipo number(6,2) y una restricción
 -- "check" que no permita valores negativos para dicho campo:
 alter table libros
  add precio number(6,2)
  constraint CK_libros_precio check (precio>=0);

 -- Veamos la estructura de la tabla y las restricciones:
 describe libros;

 select *from user_constraints where table_name='LIBROS';

La ejecución de este lote de comandos SQL genera una salida similar a:

SQL Developer agregar campos y restricciones


Retornar