Sunteți pe pagina 1din 11

create database biblioteca;

use biblioteca;

create table libros(
codigo_l int not null,
titulo varchar (30) not null,
isbn varchar (30) not null,
editorial varchar (30) not null,
paginas int not null,
primary key (codigo_l));

create table autores(
codigo_a int not null,
nombre char(30) not null,
primary key (codigo_a));

create table usuarios(
codigo_u int not null,
nombre char(30) not null,
direccion varchar (30) not null,
telefono varchar(30) not null,
primary key (codigo_u));

create table ejemplares(
codigo_e int not null,
localizacion varchar(30) not null,
codigo_l int not null,
primary key (codigo_e),
foreign key (codigo_l) references libros (codigo_l)
on delete cascade on update cascade);

create table escribe(
id_escribe int not null,
codigo_a int not null,
codigo_l int not null,
primary key (id_escribe),
foreign key (codigo_a) references autores (codigo_a)
on delete cascade on update cascade,
foreign key (codigo_l) references libros (codigo_l)
on delete cascade on update cascade);

create table prestamos (
id_prestamo int not null,
codigo_u int not null,
codigo_e int not null,
fecha_prestamo date not null,
fecha_devolucion date not null,
primary key(id_prestamo),
foreign key(codigo_u) references usuarios (codigo_u)
on delete cascade on update cascade,
foreign key(codigo_e) references ejemplares (codigo_e)
on delete cascade on update cascade);

insert into autores values (10,'Luis');
insert into autores values (20,'Martha');
insert into autores values (30,'Pedro');
insert into autores values (40,'Jesus');
insert into autores values (50,'Manolo');

select * from autores;
select * from libros;
select * from usuarios;
select * from ejemplares;
select *from escribe;
select * from prestamos;


/*ACTUALIZACIONES INDIVIDUALES*/

update autores
set
nombre='Marco'
where codigo_a=30;

update libros
set
titulo='Matematicas'
where codigo_l=100;

update usuarios
set
direccion='Morelos'
where codigo_u=04;

/* ACTUALIZAR VARIOS ATRIBUTOS*/
update usuarios
set
nombre='Monse',direccion='hixqui'
where codigo_u=03;

/* ACTUALIZACION GENERAL*/

update libros
set
paginas=paginas+100;

/*ELIMINACION*/

delete from libros
where codigo_l=500;

/* SENTENCIA AND*/


select
id_prestamo,fecha_prestamo,fecha_devolucion,nombre,direccion,telefono,localizacion,titulo,isbn,
editorial,paginas
from prestamos,usuarios,ejemplares,libros
where usuarios.codigo_u=prestamos.codigo_u
and
ejemplares.codigo_e=prestamos.codigo_e
and
libros.codigo_l=libros.codigo_l;

/*segundo AND*/

select id_escribe,nombre,titulo,isbn,editorial,paginas
from escribe,autores,libros
where autores.codigo_a=escribe.codigo_a
and
libros.codigo_l=escribe.codigo_l;


/*PROCEDIMIENTOS ALMACENADOS INSERTAR*/

delimiter $$
create procedure alta_autores(in codigo_a int, in nombre char(30))
begin
insert into autores values (codigo_a,nombre);
end $$


delimiter $$
create procedure alta_libros(in codigo_l int, in titulo varchar(30), in isbn varchar(30), in editorial
varchar(30), in paginas int)
begin
insert into libros values(codigo_l,titulo,isbn,editorial,paginas);
end $$

delimiter $$
create procedure alta_usuarios(in codigo_u int, in nombre char(30), in direccion varchar(30),in
telefono varchar(30))
begin
insert into usuarios values (codigo_u,nombre,direccion,telefono);
end $$

delimiter $$
create procedure alta_ejemplares(in codigo_e int, in localizacion varchar(30), in codigo_l int)
begin
insert into ejemplares values (codigo_e,localizacion,codigo_l);
end $$

delimiter $$
create procedure alta_escribe(in id_escribe int, in codigo_a int, in codigo_l int)
begin
insert into escribe values (id_escribe,codigo_a,codigo_l);
end $$

delimiter $$
create procedure alta_prestamos (in id_prestamo int, in codigo_u int, in codigo_e int,
fecha_prestamo date, in fecha_devolucion date)
begin
insert into prestamos values (id_prestamo,codigo_u,codigo_e,fecha_prestamo,fecha_devolucion);
end $$

/*PROCEDIMIENTOS ALMACENADOS ACTUALIZAR*/

delimiter $$
create procedure actualizar_autores(in codig_a int, in nomb char(30))
begin
update autores
set
nombre=nomb
where codigo_a=codig_a;
end $$

delimiter $$
create procedure actualizar_libros(in codig_l int, in tit varchar(30), in isb varchar(30), in edit
varchar(30), in pag int)
begin
update libros
set
titulo= tit,isbn=isb,editorial=edit,paginas=pag
where codigo_l=codig_l;
end $$

delimiter $$
create procedure actualizar_usuarios(in codig_u int, in nomb char(30),in direc varchar(30), in tel
varchar(30))
begin
update usuarios
set
nombre=nomb,direccion=direc,telefono=tel
where codigo_u=codig_u;
end $$

delimiter $$
create procedure actualizar_ejemplares(in codig_e int,in localiz varchar(30), in codig_l int)
begin
update ejemplares
set
localizacion=localiz,codigo_l=codig_l
where codigo_e=codig_e;
end $$

delimiter $$
create procedure actualizar_escribe(in id_escri int,in codig_a int , in codig_l int)
begin
update escribe
set
codigo_a=codig_a,codigo_l=codig_l
where id_escribe=id_escri;
end $$

delimiter $$
create procedure actualizar_prestamos(in id_presta int, in codig_u int, in codig_e int, in
fecha_presta date, fecha_devoluc date)
begin
update prestamos
set
codigo_u=codig_u,codigo_e=codig_e,fecha_prestamo=fecha_presta,fecha_devolucion=fecha_dev
oluc
where id_prestamo=id_presta;
end $$

/*PROCEDIMIENTOS ALMACENADOS ELIMINAR*/
delimiter $$
create procedure eliminar_autores(in codig_a int)
begin
delete from autores
where codigo_a=codig_a;
end $$

delimiter $$
create procedure eliminar_libros(in codig_l int)
begin
delete from libros
where codigo_l=codig_l;
end $$

delimiter $$
create procedure eliminar_usuarios(in codi_u int )
begin
delete from usuarios
where codigo_u=codi_u;
end $$

delimiter $$
create procedure eliminar_ejemplares(in codi_e int)
begin
delete from ejemplares
where codigo_e=codi_e;
end $$

delimiter $$
create procedure eliminar_escribe(in id_escrib int)
begin
delete from escribe
where id_escribe=id_escrib;
end $$

delimiter $$
create procedure eliminar_prestamos(in c int)
begin
delete from prestamos
where id_prestamo=eliminar_escribe;
end $$

S-ar putea să vă placă și