Mostrando entradas con la etiqueta Primary key. Mostrar todas las entradas
Mostrando entradas con la etiqueta Primary key. Mostrar todas las entradas

¿Como crear una condición Constraint Oracle Primary Key o Llave Primaria?


Es una restricción que le permite a una tabla identificar un campo como único, la llave primaria evita que se duplique el valor de ese campo en otros registros de la tabla.

La instrucción para asignarle a una tabla el constraint primary key se puede ejecutar al momento de crear la tabla o realizando una modificación a la misma con el comando el alter table.


Creando la tabla
CREATE TABLE PAIS (
       CODIGO_PAIS NUMBER PRIMARY KEY,
       NOMBRE_PAIS VARCHAR2(100),
       CAPITAL VARCHAR2(100)
);
CREATE TABLE PAIS (
       CODIGO_PAIS NUMBER,
       NOMBRE_PAIS VARCHAR2(100),
       CAPITAL VARCHAR2(100),
       PRIMARY KEY (CODIGO_PAIS));


Modificando la tabla
ALTER TABLE PAIS ADD CONSTRAINT PK_PAIS PRIMARY KEY(CODIGO_PAIS);

Ejemplo valido

Ejemplo no valido
CODIGO_PAIS
NOMBRE_PAIS
CAPITAL

CODIGO_PAIS
NOMBRE_PAIS
CAPITAL
1
COLOMBIA
BOGOTÁ

1
COLOMBIA
BOGOTÁ
2
CHILE
SANTIAGO

3
CHILE
SANTIAGO
3
BOLIVIA
SUCRE

3
BOLIVIA
SUCRE
 
Si intentamos ingresar un registro y el valor del campo CODIGO_PAIS ya existe se generara un error  “ORA-00001: unique constraint primary key violated”. 

En una tabla solo puede existir una llave primaria, por lo general se utiliza la llave primaria en un consecutivo o en un campo de identificación numérico preferiblemente.

¿Como crear una tabla en Oracle (Create table)?



Para crear una tabla en una base de datos Oracle, se debe tener claro el nombre de la tabla, nombre de los campos, sus restricciones y relaciones que esta contenga. La estructura de una tabla Oracle normal sería así.

Create table Nombre_Tabla(Nombre_Campo Tipo_Dato(Tamaño),...,Nombre_campo Tipo_Dato(Tamaño));

Si en algún momento se necesita realizar un cambio a la estructura de la tabla se utiliza el comando ALTER TABLE que lo veremos más adelante.


Ejemplos de tablas

Tabla normal:
Create table Clientes(Codigo_Cliente number, 
                                Nombre_Cliente varchar2(100));

Tabla con restricciones  NOT NULL:
Create table Clientes(Codigo_Cliente number not null,
                                Nombre_Cliente varchar2(100));


Tabla con llave primaria:
Create table Clientes(Codigo_Cliente number, 
                                Nombre_Cliente varchar2(100), 
                                Constraint Pk_Cliente  Primary key  (Codigo_Cliente));

Tabla con llave foranea:
Create table Clientes(Codigo_Cliente number not null, 
                                Nombre_Cliente varchar2(100),
                                Cod_Ciudad number,  
                                Constraint fk_ciudad_cliente Foreign key (Cod_Ciudad) references Ciudades(Codigo));


Tabla con llave primaria y foranea:
Create table Clientes(Codigo_Cliente number not null, 
                                Nombre_Cliente varchar2(100),
                                Cod_Ciudad number,  
                                Constraint Pk_Cliente Primary key  (Codigo_Cliente),  
                                Constraint Fk_Ciudad_Cliente  Foreign key (Cod_Ciudad) references Ciudades(Codigo));

******************************************************************************************************************************************************
Ejercicio:

Se requiere poder almacenar el nombre, edad, ciudad y país de cada uno de los compradores.

Solución: 
Se crea la tabla clientes.

Create table Cliente(Codigo number not null,
                                  Nombre varchar2(80),
                                  Fecha_nacimiento Date,
                                  Pais varchar2(80),
                                      Ciudad varchar2(80));