USE contactos; CREATE TABLE Tipos_Cliente ( id_TipoCliente INT(2) primary key, tipo VARCHAR(255) )ENGINE=innoDB; CREATE TABLE Localidades ( id_Localidad INT(3) primary key, nombre_localidad VARCHAR() )ENGINE=innoDB;
CREATE TABLE clientes (
id INT(3) primary key, nombre VARCHAR(100), tipo_cliente INT(2), localidad INT(3), constraint fk_idTipoCliente Foreign key(tipo_cliente) references Tipos_cliente(i d_TipoCliente) on delete cascade on update cascade, constraint fk_idLocalidad Foreign key(localidad) references Localidades(id_Local idad) on delete cascade on update cascade )ENGINE=innoDB;
#rellenamos la tabla tipos_cliente
INSERT INTO tipos_cliente VALUES ( 1, 'Desarrollador' ); INSERT INTO tipos_cliente VALUES ( 2, 'Diseñador' ); INSERT INTO tipos_cliente VALUES ( 3, 'Otros' ); # rellenamos la tabla localidades INSERT INTO localidades VALUES ( 1, 'Oviedo' ); INSERT INTO localidades VALUES ( 2, 'Girona' ); INSERT INTO localidades VALUES ( 3, 'Barcelona' ); # rellenamos la tabla "clientes" INSERT INTO clientes VALUES ( 1, 'Marcos Gonzalez', 1, 1 ); INSERT INTO clientes VALUES ( 2, 'Ingeniería y Mezclas', 3, 3 ); INSERT INTO clientes VALUES ( 3, 'Daniel Aguilar', 1, 3 ); INSERT INTO clientes VALUES ( 4, 'Abel Molina', 2, 1 );
e)crear un procedimiento almacenado de manera tal que si al llamar una localidad
, cuente la cantidad de clientes habitados en esa localidad. DROP PROCEDURE IF EXISTS SP_localidad; delimiter // CREATE procedure SP_localidad( IN nombre_localidad varchar(255)) begin IF nombre_localidad = nombre_localidad then SELECT count(*) FROM Clientes where localidad=localidad; else SELECT "NO hay valor"; end IF; end; // DELIMITER ;