Mis hijos aprenden SQL y Oracle (7)

¡Chicos, a seguir con la formación!. ¿Alguna pregunta?. "Sí, papi. ¿Se puede insertar un valor por defecto en un campo al crear una tabla?. Interesante pregunta, y la respuesta es sí. Mirad el siguiente ejemplo:
 create table usuarios(
  dni varchar2(9),
  nombre varchar2(100),
  direccion varchar2(200),
  puntos number(3) default 0,
  provincia varchar2(100) default 'Desconocida',
  primary key (dni)
 );

Hemos creado dos campos con valores por defecto si no se les da valor alguno al crearse el registro, es decir, todo usuario tendrá 0 puntos y la provincia 'Desconocida' si no se declaran explícitamente. Probad a insertar estos registros y a consultar después la tabla:
insert into usuarios (dni, nombre, direccion) values ('85000001G','Luisito García','c/ Ejemplo, 33');
insert into usuarios (dni, nombre, direccion,puntos) values ('85000002G','Josefa Sanz','c/ Marqués del Aire, 152',10);
insert into usuarios (dni, nombre, direccion,provincia) values ('85000003G','Josefa Gutierrez','c/ Marqués del Aire, 69','Málaga');
insert into usuarios (dni, nombre, direccion,puntos,provincia) values ('85000004G','Christian Mendez','c/ Gran Vía, 300',5,'Madrid');


select * from usuarios;


Es importante recordar que el campo al que le demos el valor por defecto puede aceptar valores nulos o no, según vimos en posts anteriores. Pero si un campo no tiene default declarado, significa que forzosamente tiene un valor null por defecto, y por tanto acepta valores nulos.

Otra cosa que vamos a aprender hoy es a manejar conjuntamente campos para lanzar consultas o actualizar datos, así como obtener nuevas columnas calculadas, que podremos nombrar como queramos. Como siempre un ejemplo básico, y ya podréis trabajar en otros más avanzados:
 create table dvds(
  titulo varchar2(50),
  genero varchar2(50),
  stock number(3),
  precio number(5,2)
 );
insert into dvds(titulo,genero,stock,precio) values ('Ben Hur','Histórica',2,14.95);
insert into dvds(titulo,genero,stock,precio) values ('La Roca','Acción',5,24.50);
select titulo,genero,(stock*precio) as stock_valorado from dvds;

Hemos listado todos nuestros DVDs y junto a cada uno hemos calculado la valoración del stock, multiplicando el precio unitario de ellos por las unidades existentes, y lo hemos puesto en una columna en el listado llamada Stock_Valorado. ¡Hasta la próxima!.

No hay comentarios :

Publicar un comentario

Buscar en el Blog: