EJERCICIOS DE LLAVES PRIMARIAS Y FORANEAS No nos dio tiempo de probar estos ejercicios, ojala puedan hacer pruebas ustedes, en la proxima sesión de todos modos lo probamos. 1.- LLaves primaria Crear la tabla con su llave primaria CREATE TABLE ESTUDIANTE ( id_estudiante NUMBER(10) NOT NULL, nombre VARCHAR(255), CONSTRAINT estudiante_PK PRIMARY KEedY (id_estudiante) ); Hacer estos dos inserts: INSERT INTO estudiante VALUES (1, 'Ana Perez') Luego INSERT INTO estudiante VALUES (1, 'Luis Lopez'); ¿Que paso? ¿no se dejo? ¿porque? ¿el programador de aplicaciones obtiene algun beneficio? 2.- Si ya creaste tu tabla y se te olvido asignarle llave primaria .... he aqui la solucion: CREATE TABLE CURSO ( id_curso NUMBER(10) NOT NULL, ciclo VARCHAR(255) , nombre VARCHAR(255) ); ALTER TABLE CURSO ADD PRIMARY KEY (id_curso, ciclo ) ENABLE ; 3.- LLaves foráneas: CREATE TABLE MASCOTAS ( NOMBRE VARCHAR2(20), EDAD NUMBER, RAZA VARCHAR2(20), COLOR VARCHAR2(20) ); Se te olvido un campo !!!! ..... ALTER TABLE MASCOTAS ADD(DUENO NUMBER(4) ); Ahora si, la tabla padre es: CREATE TABLE EMPLEADO ( NOMBRE VARCHAR2(20), EMPNO NUMBER, PRIMARY KEY (empno) ); CREAMOS LA LLAVE FORANEA: ALTER TABLE MASCOTAS ADD FOREIGN KEY (DUENO) REFERENCES EMPLEADO (EMPNO) ; Ahora intenta esta insercion: INSERT INTO MASCOTAS(RAZA, NOMBRE, DUENO) VALUES ('cocker', 'NINA', 7934); ¿Que pasa si no existe el EMP 7934????? 4.- AHoRA EN MYSQL: drop table estudiante; create table estudiante ( id int(4), nombre varchar(255), id_curso integer, PRIMARY KEY `id` (`id`) ) insert into estudiante values (1, 'Ana'); insert into estudiante values (1, 'Luis'); CREATE TABLE curso ( id integer, descripcion varchar(255), PRIMARY KEY `id` (`id`) ) ALTER TABLE estudiante ADD FOREIGN KEY (idcurso) REFERENCES curso (id); insert into estudiante values (1, 'Ana', 23); insert into curso values (23,'Matematicas'); delete from curso where id=23;