viernes, 9 de noviembre de 2012

Fundamentos de BBDD

 

Que onda chavos, les envío lo que vimos en la clase de hoy.. ustedes ya saben el contexto... practiquen y analicen como crear las tables, agregar y quitar restricciones de llaves foraneas, y los diversos atributos de integridad... prueben para que funcionan guiandose del PDF que les proporcioné en clases.

Por cualquier cosa... me avisan y lo checamos en clases...  Saludos.. tengan un excelente fin de semana...

CREATE TABLE cliente
(
id_cliente INT NOT NULL,
nombre VARCHAR(30),
PRIMARY KEY (id_cliente)
) engine = INNODB;

CREATE TABLE venta
(
id_factura INT NOT NULL,
id_cliente INT NOT NULL,
cantidad INT,
PRIMARY KEY(id_factura),
INDEX (id_cliente),
FOREIGN KEY (id_cliente) REFERENCES cliente(id_cliente)
) engine = INNODB;

ALTER TABLE venta ADD FOREIGN KEY(id_cliente) REFERENCES
cliente(id_cliente);

INSERT INTO cliente VALUES(1,'Juan Penas');
INSERT INTO cliente VALUES(2,'Pepe el toro');
INSERT INTO venta VALUES(1,1,23);
INSERT INTO venta VALUES(3,2,81);

//checar por que error aqui...
INSERT INTO venta VALUES(2,3,39);

//Ahora probemos ... ver por que

INSERT INTO cliente VALUES(3,'Pepe pecas');

INSERT INTO venta VALUES(2,3,39);


//checar que pasa  si eliminamos un registro  que tiene referencia
DELETE FROM cliente WHERE id_cliente=3;


//Como borrar una llave referencia de llave foranea sin saber el nombre de la llave foranea
SHOW CREATE TABLE venta;

//checar el nombre del constraint

ALTER TABLE venta DROP FOREIGN KEY venta_ibfk_1;

ALTER TABLE venta DROP FOREIGN KEY venta_ibfk_2;

// ahora pongamos  de nuevo una llave foranea a la tabla para hacer referencias
ALTER TABLE venta ADD FOREIGN KEY(id_cliente)
REFERENCES cliente(id_cliente) ON DELETE CASCADE;

//Vamos a ver como están nuestros registros antes de ejecutar la sentencia DELETE:

SELECT * FROM cliente;
SELECT * FROM venta;

// Ahora eliminaremos a Pepe Pecas de la base de datos:
DELETE FROM cliente WHERE id_cliente=3;

SELECT * FROM cliente;
SELECT * FROM venta;

// ahora chequemos otros tipos de restricciones, no solo con borrar si no con actualizar
//Primero borremos la restriccion para luego volverla a crear...

show  create table venta;

ALTER TABLE venta DROP FOREIGN KEY venta_ibfk_1;

ALTER TABLE venta DROP FOREIGN KEY venta_ibfk_2;

ALTER TABLE venta ADD FOREIGN KEY(id_cliente)
REFERENCES cliente(id_cliente) ON DELETE CASCADE ON
UPDATE CASCADE;

// chequemos los datos

UPDATE cliente SET id_cliente=10 WHERE id_cliente=1;

// comprobemos los cambios

SELECT * FROM cliente;
SELECT * FROM venta;

DELETE FROM cliente WHERE id_cliente=3;

No hay comentarios:

Publicar un comentario