Mis hijos aprenden SQL y Oracle (6)

Hoy retomo estas lecciones de repaso con mis peques sobre fundamentos de SQL usando Oracle 11g. Y vamos a aprender algo tan básico como igual de importante en las bases de datos relacionales, y son las claves primarias, que podríamos definir como "campo o campos que conjuntamente no se pueden repetir en su valor, de forma que dicho/s campo/s identificarían unívocamente a cualquiera de los registros de la tabla".  Como ejemplo podríamos crear una nueva tabla usuarios, y en este caso será el DNI el campo que identifica a cada uno de los usuarios. ¡Importante!: Toda clave primaria debe tener valores no null, cosa que podemos explicítamente definir a la hora de crear la tabla, ó en caso contrario la base de datos lo hará.
 create table usuarios(
  dni varchar2(9),
  nombre varchar2(100),
  direccion varchar2(200),
  primary key (dni)
);


Insertamos algunos registros (ejecutad sentencia a sentencia, chicos) y vemos qué pasa:
 insert into usuarios (dni, nombre, direccion) values ('25000001G','Jose García','c/ Ejemplo, 15 Málaga');  --OK
 insert into usuarios (dni, nombre, direccion) values ('25000002G','Luisito Cane','c/ Marqués de Larios, 6 Málaga'); --OK
 insert into usuarios (dni, nombre) values ('52605378C','Christian Castro'); --OK

 insert into usuarios (dni, direccion) values ('33445079Z','Avda. Ramblas, 100, Barcelona'); --OK
 insert into usuarios (nombre, direccion) values ('Yolanda López','c/ Gran vía, 33 Madrid'); --¡error!









insert into usuarios (dni, direccion) values ('33445079Z','Avda. Ramblas, 100, Barcelona'); --¡error!





Si queremos consultar la clave primaria de alguna tabla basta con ejecutar esta query:
 select uc.table_name, column_name from user_cons_columns ucc join user_constraints uc
  on ucc.constraint_name=uc.constraint_name
  where uc.constraint_type='P' and uc.table_name=nombre_de_tabla;


Tal y como puede imaginarse, al ejecutar cualquier update por ejemplo se comprueba que al actualizarse los datos en el registro se siga cumpliendo que tenga clave primaria única. Nos vemos.

No hay comentarios :

Publicar un comentario

Buscar en el Blog: