***Crear DB***** Create database veterinariadb; *****Crear Tablas**** create table Animal( idAnimal int not null auto_increment, AniCliente int not null, Nombre varchar(40) not null, dad int not null, !orei"n #e$(AniCliente ) re!erences Cliente (CarnetCliente), %rimar$ #e$(idAnimal)) auto_increment &'; create table Cliente( idCliente int not null, CarnetCliente int not null , CliTrabaador int not null, CliDireccion varchar(0) not null, CliDN+ int not null, CliTele!ono int not null, CliNombre varchar(0) not null, CliA%ellido varchar(0) not null, !orei"n #e$(CliTrabaador) re!erences Trabaador (idTrabaador ), %rimar$ #e$(CarnetCliente )) auto_increment &'; create table -istorial( id-istorial int not null auto_increment, -isAnimal int not null, -is.echa date not null, -isCiru"ia/evisionCura varchar('00)not null, !orei"n #e$(-isAnimal )re!erences Animal(idAnimal), %rimar$ #e$(id-istorial)) auto_increment &'; create table edido( idedido int not null auto_increment, ed1ervicio int not null, edTi%o varchar(20)not null, idArticulo int not null, !orei"n #e$(ed1ervicio )re!erences 1ervicio(id1ervicio), %rimar$ #e$(idedido )) auto_increment &'; create table roducto( idroducto int not null auto_increment, roedido int not null, roTi%o varchar(20)not null, ro1toc#3inimo int not null, ro1toc#Actual int not null, !orei"n #e$(roedido )re!erences edido(idedido ), %rimar$ #e$(idroducto )) auto_increment &';
create table roductohasroveedor( idroveedores int not null, idroducto int not null, !orei"n #e$(idroveedores )re!erences roveedores(idroveedores), !orei"n #e$(idroducto )re!erences roducto(idroducto), %rimar$ #e$(idroveedores ,idroducto )); create table roveedores( idroveedores int not null auto_increment, %rimar$ #e$(idroveedores)) auto_increment&'; create table /eservas( id/eservas int not null auto_increment, /ed1ervicio int not null, /es.echa-ora date not null, !orei"n #e$(/ed1ervicio)re!erences 1ervicio(id1ervicio ), %rimar$ #e$(id/eservas )) auto_increment &'; create table 1ervicio( id1ervicio int not null auto_increment, serCliente int not null, 1erClinica varchar(0)not null, 1er1alonBellea varchar(0)not null, 1erTienda varchar(4)not null, !orei"n #e$(serCliente )re!erences Cliente(CarnetCliente), %rimar$ #e$(id1ervicio )) auto_increment &'; create table Trabaador( idTrabaador int not null auto_increment, TraDN+ inte"er not null, TraDatos varchar(0) not null, %rimar$ #e$(idTrabaador)) auto_increment&'; ***************************************************************************** ***************************************************************************** ***************************************************************************** ****************************************************************************** ***************************************************************************** rocedimientos almacenados '5+nsertar datos en la tabla Trabaador create %rocedure ro+nsertTrabaador( in TraDN+ int, in TraDatos varchar(0)) insert into Trabaador (TraDN+,TraDatos) values(TraDN+,TraDatos);
ecutar rocedimiento call veterinariadb5ro+nsertTrabaador (6'76848,9Datos del trabaador9); *********************************************** 25+nsertad datos en la tabla roveedores create %rocedure ro+nsertroveedor() insert into %roveedores() values(); ecutar rocedimiento call veterinariadb5ro+nsertroveedor (); *********************************************** 75+nsertar datos en la tabla Cliente create %rocedure ro+nsertCliente( in idCliente int, in CarnetCliente int, in CliTrabaador int, in CliDireccion varchar(0), in CliDN+ int, in CliTele!ono int, in CliNombre varchar(0), in CliA%ellido varchar(0)) insert into Cliente (idCliente,CarnetCliente,CliTrabaador,CliDireccion,CliDN+,CliTele!ono,CliNombre,Cl iA%ellido) values(idCliente,CarnetCliente,CliTrabaador,CliDireccion,CliDN+,CliTele!ono,CliNom bre,CliA%ellido); ecutar rocedimiento call veterinariadb5ro+nsertCliente (',0',',9Direccion del trabaador9,','2748,9Nombre del cliente9,9A%ellido del cliente9); *********************************************************************************** ********** 45+nsertar datos en la tabla Animal create %rocedure ro+nsertAnimal( in AniCliente int, in Nombre varchar(40), in dad int) insert into Animal(AniCliente,Nombre,dad) values(AniCliente,Nombre,dad); ecutar rocedimiento call veterinariadb5ro+nsertAnimal (',9:uau9,8); ***************************************************************************** 5+nsertar datos en tabla historial create %rocedure ro+nsert-istorial( in -isAnimal int, in -is.echa date,
in -isCiru"ia/evisionCura varchar('00)) insert into -istorial(-isAnimal,-is.echa,-isCiru"ia/evisionCura) values(-isAnimal,-is.echa,-isCiru"ia/evisionCura); ecutar rocedimiento call veterinariadb5ro+nsert-istorial (',920'6''269,9Datos del -istorial9); ****************************************************************************** 85+nsertar datos en la tabla 1ervicio create %rocedure ro+nsert1ervicio( in serCliente int, in 1erClinica varchar(0), in 1er1alonBellea varchar(0), in 1erTienda varchar(4)) insert into 1ervicio(serCliente,1erClinica,1er1alonBellea,1erTienda) values(serCliente,1erClinica,1er1alonBellea,1erTienda); ecutar rocedimiento call veterinariadb5ro+nsert1ervicio (',91ervicio Clinica9,91ervicio salon bellea9,91ervicio tienda9); ************************************************************************** 65+nsertar datos en la tabla %edido create %rocedure ro+nsertedido( in ed1ervicio int, in edTi%o varchar(20), in idArticulo int) insert into edido(ed1ervicio,edTi%o,idArticulo) values(ed1ervicio,edTi%o,idArticulo); ecutar %rocedimiento call veterinariadb5ro+nsertedido (',9Ti%o de %edido9,'); ********************************************************** 5insertar datos en la tabla roducto create %rocedure ro+nsertroducto( in roedido int, in roTi%o varchar(20), in ro1toc#3inimo int, in ro1toc#Actual int) insert into roducto(roedido,roTi%o,ro1toc#3inimo,ro1toc#Actual) values(roedido,roTi%o,ro1toc#3inimo,ro1toc#Actual); ecutar rocedimineto call veterinariadb5ro+nsertroducto (',9Ti%o %roducto9,','); ************************************************************* <5insertar datos en la tabla roducto has roveedor create %rocedure ro+nsertroducroveedor( in idroveedores int, in idroducto int) insert into roductohas%roveedor(idroveedores,idroducto)
values(idroveedores,idroducto); ecutar rocedimiento call veterinariadb5ro+nsertroducroveedor (','); ******************************************************************* '05+nsertar datos en la tabla reservas create %rocedure ro+nsert/eserva( in /ed1ervicio int, in /es.echa-ora date) insert into /eservas(/ed1ervicio,/es.echa-ora) values(/ed1ervicio,/es.echa-ora); ecutar rocedimiento call veterinariadb5ro+nsert/eserva (',920'6''269); *********************************************************************************** ********** *********************************************************************************** ********** .unciones '5.uncion =ue %ermite conocer la cantidad de clientes =ue esta atendiendo el centro veterinario5 delimiter create !unction cuantosclientes() returns int be"in declare cantidad int; select count(*) into cantidad !rom cliente; return cantidad; end ; 25!uncion =ue determina el %romedio de edades de los animales en el centro veterinario5 delimiter create !unction %romedioedadanimal() returns !loat be"in declare %romedioedadanimal !loat; select av"(edad) into %romedioedadanimal !rom animal; return %romedioedadanimal; end;
75 .uncion =ue %ermite conocer el animal con la edad mas corta en a� os5 delimiter create !unction animalmenor() returns varchar (2) be"in declare datos varchar (2); select concat_>s (9 9, nombre, edad) into datos !rom animal >here edad & (select min(edad) !rom animal); return datos; end;
45 !uncion %ara saber
del animal mas lon"evo o vieo del centro5
delimiter create !unction lon"evoanimal() returns varchar (2) be"in declare in!o varchar (2); select concat_>s(9 9, nombre, edad) into in!o !rom animal >here edad & (select ma?(edad) !rom animal); return in!o; end;
5 !uncion con la =ue evidenciamos la cantidad de animales atendidos en el centro veterinario5 delimiter create !unction cantidadanimal() returns int be"in declare cantidad int; select count(*) into cantidad !rom animal; return cantidad; end; *********************************************************************************** ************ *********************************************************************************** ************ desencadenadores5 T/+::/ '5 C/AT T/+::/ animalu%date B.@/ DAT @N animal .@/ AC- /@ +N1/T +NT@ tri""er_animal (DocumentoAnterior, ClaseAnterior, NombreAnterior, dadAnterior, DocumentoNuevo, ClaseNuevo, NombreNuevo, dadNuevo) A1 (@D5idAnimal, @D5Anicliente, @D5nombre, @D5dad, N5idAnimal, N5aniCliente, N5nombre, N5edad); 25 C/AT T/+::/ clienteu%date B.@/ DAT @N cliente .@/ AC- /@ +N1/T +NT@ tri""er_cliente (DocumentoAnterior,CarnetAnterior,TrabaadorAnterior,DireccionAnterior,DN+Anterior, Tele!onoAnterior,NombreAnterior,A%ellidoAnterior,DocumentoNuevo,CarnetNuevo,Trabaa dorNuevo,DireccionNuevo,DN+Nuevo,Tele!onoNuevo,NombreNuevo,A%ellidoNuevo) A1 (@D5idCliente,@D5CarnetCliente,@D5CliTrabaador,@D5CliDireccion,@D5CliDN+,@D5 CliTele!ono,@D5Clinombre,@D5CliA%ellido,N5idCliente,N5CarnetCliente,N5CliTr abaador,N5CliDireccion,N5CliDN+,N5CliTele!ono,N5Clinombre,N5CliA%ellido) ; 75 C/AT T/+::/ %edidou%date B.@/ DAT @N %edido .@/ AC- /@ +N1/T +NT@ tri""er_%edido (DocumentoAnterior, 1ervicioAnterior, Ti%oAnterior, ArticuloAnterior, DocumentoNuevo, 1ervicioNuevo, ti%oNuevo, ArticuloNuevo) A1 (@D5idedido, @D5ed1ervicio, @D5edTi%o, @D5idArticulo, N5idedido, N5ed1ervicio, N5edTi%o, N5idArticulo);
45 C/AT T/+::/ %roveedoresu%date B.@/ DAT @N %roveedores .@/ AC- /@ +N1/T +NT@ tri""er_%roveedores (DocumentoAnterior, DocumentoNuevo) A1 (@D5idroveedores, N5idroveedores); 5 C/AT T/+::/ trabaadoru%date B.@/ DAT @N trabaador .@/ AC- /@ +N1/T +NT@ tri""er_trabaador (DocumentoAnterior, DN+Anterior, DatosAnterior, DocumentoNuevo, DN+Nuevo, DatosNuevo) A1 (@D5idTrabaador, @D5TraDN+, @D5TraDatos, N5idtrabaador, N5TraDN+, N5TraDatos);