You are on page 1of 5

* Crea la base de datos*/

CREATE DATABASE biblio;

/* Habilitamos la base de datos */

USE biblio;

/* Crear las tablas LIBRO-USUARIO-CLASE-PRESTAMO */

CREATE TABLE clase(

Clave char PRIMARY KEY,

Tiempo_de_prestamo int);

CREATE TABLE libro(

codigo varchar(10) PRIMARY KEY,

autor varchar(50),

titulo varchar(50),

editor varchar(30),

prestado int DEFAULT 1,

clase char,

foreign key (clase) references clase (clave));

CREATE TABLE Usuario(

secuencia varchar(10) PRIMARY KEY,

nombre varchar(50),

direccion varchar(50),

fecha_ingreso DATETIME NOT NULL

);

CREATE TABLE prestamo (

codigo varchar(10),

secuencia varchar(10),

fecha_inicio datetime,

PRIMARY KEY(codigo, secuencia),

FOREIGN KEY (codigo) REFERENCES libro(codigo),

FOREIGN KEY (secuencia) REFERENCES usuario(secuencia));


/* Tabla Clase */

INSERT INTO clase VALUES(1, 15);

INSERT INTO clase VALUES(2, 30);

INSERT INTO clase VALUES(3, 365);

/* Tabla Libro */

INSERT INTO libro VALUES ('INF01', 'Pepe','Los problemas', 'MG', 1,1);

INSERT INTO libro VALUES ('INF02','Paco','Psicología','LL', 1,1);

INSERT INTO libro VALUES ('FIS01', 'Pepe', 'Fundamentos físicos', 'RO-MO',

2,1);

INSERT INTO libro VALUES ('MAT02','Lola', 'Cálculo', 'MM', 3,1);

INSERT INTO libro VALUES ('MAT05', 'Susi', 'Matemáticas discretas', 'MM',

2,1);

/* Tabla Usuario */

INSERT INTO usuario VALUES(1, 'Lola', 'Alarcos','1989/1/1');

INSERT INTO usuario VALUES(2, 'Carmen', 'Alarcos', '1999/8/7');

INSERT INTO usuario VALUES(3, 'Alejandro', 'Postas','2001/2/6');

INSERT INTO usuario VALUES(4, 'Elena', 'Calatrava','2001/4/3');

INSERT INTO usuario VALUES(5, 'Miguel', 'Encinas','1986/5/2');

/* Tabla prestamo */

INSERT INTO prestamo VALUES('INF01', 1, '2005/6/1');

INSERT INTO prestamo VALUES('INF02', 1, '2005/6/1');

INSERT INTO prestamo VALUES('FIS01', 2, '2005/5/7');

INSERT INTO prestamo VALUES('MAT02', 3, '2005/8/2');

INSERT INTO prestamo VALUES('MAT05', 3, '2005/6/2');

-- Procedimiento pra dar de alta un libro


delimiter //

create procedure altausuario(secuencia varchar(10), nom varchar(50), direccion varchar(50),


fecha_ingreso datetime, out msg varchar(30))

begin

declare msg varchar(30);

-- DECLARE exit HANDLER FOR SQLEXCEPTION ROLLBACK;

DECLARE EXIT HANDLER FOR SQLEXCEPTION

BEGIN

SHOW ERRORS LIMIT 1;

-- RESIGNAL;

ROLLBACK;

END;

DECLARE EXIT HANDLER FOR SQLWARNING

BEGIN

SHOW WARNINGS LIMIT 1;

-- RESIGNAL;

ROLLBACK;

END;

START TRANSACTION;

if exists (select * from Usuario where nombre like nom) then

set msg ="Ya existe";

else

insert into Usuario values (secuencia,nom,direccion,fecha_ingreso);

set msg="Alta éxitosa";

end if;
select msg;

-- SELECT @A:=SUM(salary) FROM table1 WHERE TYPE=1;

-- UPDATE table2 SET summary=@A WHERE TYPE=1;

COMMIT;

end//

delimiter ;

call altausuario(6,'Elizabeth', 'Conocida','2001/4/3',@msg);

select msg;

select * from usuario;

START TRANSACTION;
select @codigo= codigo from libro where autor like 'Paco'

You might also like