SQL’s
Sumário
(a) ... 2
(b) ... 4
(c) ... 5
(d) ... 6
(e) ... 6
(f) ... 7
(g) ... 9
(h) ... 10
(i) ... 10
(j) ... 12
(a) Criação de todas as tabelas e de todas as restrições de integridade. Todas as restrições de chave (PRIMARY KEY) e de integridade referencial (FOREIGN KEY) devem ser criadas. Além disso, crie pelo menos um exemplo com cada uma das restrições UNIQUE e DEFAULT (valor:
2,5%);
-- Criação da Tabela Convênio
CREATE TABLE `convenio` (
`id` int(11) NOT NULL AUTO_INCREMENT, `nome` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Criação da Tabela Exame
CREATE TABLE `exame` (
`id` int(11) NOT NULL AUTO_INCREMENT, `pagamento` varchar(30) DEFAULT NULL, `data` date DEFAULT NULL,
`descricao` text DEFAULT NULL, PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Criação da Tabela Médico
CREATE TABLE `medico` (
`cpf` varchar(11) NOT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT, `n_crm` varchar(20) DEFAULT NULL,
`especialidade` varchar(20) DEFAULT NULL, `sexo` char(1) DEFAULT NULL,
`nome` varchar(80) DEFAULT NULL, PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4;
-- Criação da Tabela Paciente
CREATE TABLE `paciente` (
`id` int(11) NOT NULL AUTO_INCREMENT, `cpf` varchar(11) NOT NULL,
`nome` varchar(80) DEFAULT NULL, `datanasc` date DEFAULT NULL,
`telefone` varchar(15) DEFAULT NULL, `sexo` char(1) DEFAULT NULL,
`email` varchar(100) DEFAULT NULL, `rua` varchar(50) DEFAULT NULL, `estado` varchar(2) DEFAULT NULL, `cep` varchar(8) DEFAULT NULL, `bairro` varchar(50) DEFAULT NULL, `cidade` varchar(40) DEFAULT NULL, `numero` int(4) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Criação da Tabela Rede
CREATE TABLE `rede` (
`id` int(11) NOT NULL AUTO_INCREMENT, `nome` varchar(40) DEFAULT NULL, PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Criação da Tabela Unidade
CREATE TABLE `unidade` (
`id` int(11) NOT NULL AUTO_INCREMENT, `nome` varchar(80) DEFAULT NULL, `rua` varchar(50) DEFAULT NULL, `estado` varchar(2) DEFAULT NULL, `cep` varchar(8) DEFAULT NULL, `bairro` varchar(50) DEFAULT NULL, `cidade` varchar(40) DEFAULT NULL, `numero` int(4) DEFAULT NULL, PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Criação da Tabela Concebe
CREATE TABLE `concebe` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id_medico` int(11) NOT NULL,
`id_exame` int(11) NOT NULL, PRIMARY KEY (`id`),
KEY `concebe_FK` (`id_exame`), KEY `concebe_FK_1` (`id_medico`),
CONSTRAINT `concebe_FK` FOREIGN KEY (`id_exame`) REFERENCES `exame` (`id`), CONSTRAINT `concebe_FK_1` FOREIGN KEY (`id_medico`) REFERENCES `medico`
(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Criação da Tabela Constitui
CREATE TABLE `constitui` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id_rede` int(11) NOT NULL,
`id_exame` int(11) NOT NULL, PRIMARY KEY (`id`),
KEY `constitui_FK` (`id_rede`), KEY `constitui_FK_1` (`id_exame`),
CONSTRAINT `constitui_FK` FOREIGN KEY (`id_rede`) REFERENCES `rede` (`id`), CONSTRAINT `constitui_FK_1` FOREIGN KEY (`id_exame`) REFERENCES `exame`
(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Criação da Tabela Possui
CREATE TABLE `possui` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id_paciente` int(11) NOT NULL,
`id_convenio` int(11) NOT NULL, PRIMARY KEY (`id`),
KEY `possui_FK` (`id_paciente`), KEY `possui_FK_1` (`id_convenio`),
CONSTRAINT `possui_FK` FOREIGN KEY (`id_paciente`) REFERENCES `paciente`
(`id`),
CONSTRAINT `possui_FK_1` FOREIGN KEY (`id_convenio`) REFERENCES `convenio`
(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Criação da Tabela Produz
CREATE TABLE `produz` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id_unidade` int(11) NOT NULL,
`id_exame` int(11) NOT NULL, PRIMARY KEY (`id`),
KEY `produz_FK` (`id_unidade`), KEY `produz_FK_1` (`id_exame`),
CONSTRAINT `produz_FK` FOREIGN KEY (`id_unidade`) REFERENCES `unidade`
(`id`),
CONSTRAINT `produz_FK_1` FOREIGN KEY (`id_exame`) REFERENCES `exame` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Criação da Tabela Realiza
CREATE TABLE `realiza` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id_paciente` int(11) NOT NULL,
`id_exame` int(11) NOT NULL, PRIMARY KEY (`id`),
KEY `realiza_FK` (`id_exame`), KEY `realiza_FK_1` (`id_paciente`),
CONSTRAINT `realiza_FK` FOREIGN KEY (`id_exame`) REFERENCES `exame` (`id`), CONSTRAINT `realiza_FK_1` FOREIGN KEY (`id_paciente`) REFERENCES `paciente`
(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
(b) Exemplos de ALTER TABLE (pelo menos 3 exemplos, envolvendo alterações diversas) e DROP TABLE. Crie uma tabela extra que não existe no seu trabalho, somente para exemplificar, e a apague no final com o DROP TABLE (valor: 2,5%);
-- Adiciona o campo “uf_crm” na tabela “medico”
ALTER TABLE isbd.medico ADD uf_crm varchar(20) NULL;
-- “uf_crm” na tabela “medico”, se torna uma unique key
ALTER TABLE isbd.medico ADD CONSTRAINT medico_un UNIQUE KEY (uf_crm);
-- Adiciona o campo “email” na tabela “medico”
ALTER TABLE isbd.medico ADD email VARCHAR(100) NULL;
-- Exclui a tabela “auxiliar”
DROP TABLE auxiliar;
(c) Exemplo de uma inserção de dados em cada uma das tabelas. Para testar o trabalho, recomenda-se inserir dezenas de registros em cada tabela. Mostre esses dados na apresentação do trabalho (valor: 1,7%);
-- Realiza a inserção do nome na tabela “convenio”
INSERT INTO isbd.convenio (nome) VALUES ('UFLAMed');
-- Realiza a inserção do pagamento, data e descricao na tabela “exame”
INSERT INTO isbd.exame (pagamento,`data`,descricao) VALUES ('Cartão','2021- 11-15','Pagamento realizado à prazo em 12x.');
-- Realiza a inserção do cpf, n_crm, especialidade, sexo e nome na tabela
“medico”
INSERT INTO isbd.medico (cpf,n_crm,especialidade,sexo,nome) VALUES ('12345678910','123456','Cirurgião Plástico','M','Fulano');
-- Realiza a inserção do cpf, nome, datanasc, telefone, sexo, email, rua, estado, cep, bairro, cidade e numero na tabela “paciente”
INSERT INTO isbd.paciente
(cpf,nome,datanasc,telefone,sexo,email,rua,estado,cep,bairro,cidade,numero) VALUES ('74185296311','Ciclano de Tal','1990-05-
25','35999999999','M','[email protected]','Rua Ali Perto','MG','37260000','Rio dos Lagos','Lavras',22);
INSERT INTO isbd.rede (nome) VALUES ('Rede UFLA');
-- Realiza a inserção do nome, rua, estado, cep, bairro, cidade e numero na tabela “unidade”
INSERT INTO isbd.unidade (nome,rua,estado,cep,bairro,cidade,numero) VALUES ('Pavilhão 8','Rua DCC','MG','37260100','Naves','Lavras',22);
-- Realiza a inserção do id_medico e id_exame na tabela “concebe”
INSERT INTO isbd.concebe (id_medico,id_exame) VALUES (5,1);
-- Realiza a inserção do id_rede e id_exame na tabela “constitui”
INSERT INTO isbd.constitui (id_rede,id_exame) VALUES (1,1);
-- Realiza a inserção do id_paciente e id_convenio na tabela “possui”
INSERT INTO isbd.possui (id_paciente,id_convenio) VALUES (1,2);
-- Realiza a inserção do id_unidade e id_exame na tabela “produz”
INSERT INTO isbd.produz (id_unidade,id_exame) VALUES (1,1);
-- Realiza a inserção do id_unidade e id_exame na tabela “realiza”
INSERT INTO isbd.realiza (id_paciente,id_exame) VALUES (1,1);
(d) Exemplos de modificação de dados em 5 tabelas. Mostre pelo menos um exemplo com UPDATE aninhado, envolvendo mais de uma tabela (valor: 1,7%);
-- Realiza a alteração do nome do convênio onde o id é 2 UPDATE isbd.convenio SET nome='UFLAMedi' WHERE id=2;
-- Realiza a alteração do n_crm, especialidade e cpf do médico onde o id é 14 UPDATE isbd.medico SET n_crm='511802225', especialidade='Otorrino',
cpf='1233212324' WHERE id=14;
-- Realiza a alteração do cpf, bairro, nome, numero, data de nascimento, cep e telefone do paciente onde o id é 10
UPDATE isbd.paciente SET cpf='3123214232',bairro='Quipa Alves,nome='Casimiro Naves',numero=771,datanasc='1994-10-11',cep='21452021',telefone='21997485200' WHERE id=10;
-- Realiza a alteração do id_exame, e id_paciente da tabela realiza onde o id é 2
UPDATE isbd.realiza SET id_exame=5,id_paciente=3 WHERE id=2;
-- Realiza a alteração da cidade do paciente onde a cidade da unidade e a cidade do paciente for Rio de Janeiro
UPDATE isbd.paciente SET paciente.cidade = unidade.cidade FROM isbd.paciente, isbd.unidade WHERE paciente.cidade = unidade.cidade AND unidade.cidade = 'Rio de Janeiro';
(e) Exemplos de exclusão de dados em 5 tabelas. Mostre pelo menos um exemplo com DELETE aninhado, envolvendo mais de uma tabela (valor: 1,7%);
-- Deleta o campo da tabela médico onde o id for 6 DELETE FROM isbd.medico WHERE id=6;
-- Deleta o campo da tabela paciente onde o id for 1 DELETE FROM isbd.paciente WHERE id=1;
-- Deleta o campo da tabela exame onde o id for entre 1 e 5 DELETE FROM isbd.exame WHERE id BETWEEN 1 and 5;
-- Deleta o campo da tabela unidade onde o id for 5, 8 e 10 DELETE FROM isbd.unidade WHERE id IN (5, 8, 10);
-- Deleta o paciente que o pagamento do exame for cheque e seu estado for Rio de Janeiro
DELETE p FROM paciente p JOIN exame e ON e.pagamento = 'Cheque' WHERE p.estado like 'RJ';
(f) Exemplos de, pelo menos, 12 consultas. Inclua consultas simples e complexas, envolvendo todas as cláusulas do comando de consulta (SELECT, FROM, WHERE, ORDER BY, GROUP BY, HAVING), os operadores (JOIN, OUTER JOIN, UNION, AND, OR, NOT, BETWEEN, IN, LIKE, IS NULL, ANY/SOME, ALL, EXISTS), além de funções agregadas e consultas aninhadas (subconsultas). Não faça aninhamentos "forçados", somente os use em situações onde é difícil escrever uma consulta sem aninhamento. Será avaliado o nível de complexidade das consultas apresentadas. Não se esqueça de descrever em detalhes o que cada consulta recupera (ex:
recupera o nome e o endereço dos gerentes dos departamentos que controlam os projetos localizados em Lavras) (valor: 50%);
-- consulta para trazer os exames realizados em setembro de 2021 por profissionais do sexo feminino e sua especialidade
select e.data,m.nome,m.sexo,m.especialidade from concebe c
inner join exame e on c.id_exame = e.id inner join medico m on c.id_medico = m.id
where e.data between '2021-09-01' and '2021-09-30' and m.sexo = 'F'
order by e.data
-- Consulta para trazer pacientes que realizaram exames em uma das unidades na Região Sudeste e que não constam o telefone na base
select p2.nome,p2.telefone , u.nome ,u.estado from produz p inner join unidade u on u.id = p.id_unidade
inner join exame e on e.id = p.id_exame inner join realiza r on r.id_exame = e.id
inner join paciente p2 on p2.id = r.id_paciente where u.estado in ('SP','MG','RJ','ES')
and p2.telefone is null or p2.telefone = ''
-- Consulta para identificar estados do país que contém mais de uma unidade select u.estado,count(*) from unidade u
group by u.estado having count(*) > 1
-- Consulta para verificar quais pacientes residem em uma cidade que possua uma unidade, independendo se esses já fizeram algum exame
select p.nome,p.cidade from realiza r
left join paciente p on p.id = r.id_paciente left join exame e on e.id = r.id_exame
where p.cidade = any (select cidade from unidade)
-- Consulta para trazer o nome de todos os convênios de pessoas que realizaram exame e não pagaram no dinheiro
select all c.nome from possui p
inner join convenio c on c.id = p.id_convenio inner join paciente p2 on p2.id = p.id_paciente inner join realiza r on r.id_paciente = p2.id inner join exame e on e.id = r.id_exame
where e.pagamento not in ('Dinheiro')
-- Consultar os dados dos médicos que têm o CPF começando com 00 select m.* from medico m
inner join concebe c on c.id_medico = m.id where m.cpf like '00%'
-- Consultar os pacientes que realizaram algum tipo de exame select * from paciente p
where exists (select r.id_paciente from realiza r) order by p.nome
-- Consultar os convênios que possuem vínculo com mais de um paciente select count(*),c.nome from possui p
inner join convenio c on c.id = p.id_convenio inner join paciente p2 on p2.id = p.id_paciente inner join possui p3 on p3.id_paciente = p2.id group by c.id
having count(*) > 1 order by 1 desc
-- Consulta para ver os pacientes que fizeram algum exame e que têm mais de 65 anos, além de qual unidade foi feito o exame para que tenham desconto na próxima ida
select p.nome,p.datanasc ,p.telefone ,p.email,u.nome, u.estado from paciente p
inner join realiza r on r.id_paciente = p.id inner join exame e on e.id = r.id_exame inner join produz p2 on p2.id_exame = e.id inner join unidade u on u.id = p2.id_unidade where p. datanasc < '1956-01-01'
-- Consulta para ver qual médico mais realizou exames select count(*),m.nome from concebe c
inner join medico m on m.id = c.id_medico inner join exame e on e.id = c.id_exame group by c.id_medico
order by 1 desc limit 1
-- Consulta para saber entre os exames realizados em qual década a pessoa nasceu para se fazer um estudo de acordo com a idade média dos pacientes
select count(*),
case
when p.datanasc >= '1970-01-01' and p.datanasc <= '1979-12-31' then 'Década de 70'
when p.datanasc >= '1980-01-01' and p.datanasc <= '1989-12-31' then 'Década de 80'
when p.datanasc >= '1990-01-01' and p.datanasc <= '1999-12-31' then 'Década de 90'
when p.datanasc >= '2000-01-01' then 'Anos 2000' else 'Outras Décadas'
end as decada from paciente p
inner join realiza r on r.id_paciente = p.id inner join exame e on e.id = r.id_exame group by decada
order by count(*) desc
-- Consulta para retornar o nome e documento do médico e paciente quando a forma de pagamento foi Cartão
select m.nome,m.cpf,p.nome,p.cpf ,e.data,e.pagamento from medico m
inner join concebe c on c.id_medico = m.id inner join exame e on e.id = c.id_exame inner join realiza r on r.id_exame = e.id inner join paciente p on p.id = r.id_paciente where e.pagamento = 'Cartão'
and e.data between '2021-11-01' and '2021-11-30'
(g) Exemplos de criação de 3 visões (Views). Inclua também exemplos de como usar cada uma das visões (valor: 5%);
-- A visão realiza a consulta do todos os pacientes que realizam algum exame -- select * from vw_paciente_exame;
CREATE OR REPLACE VIEW isbd.vw_paciente_exame AS create view vw_paciente_exame as
select p.nome as Paciente, e.pagamento as Pagamento, e.descricao as Forma from paciente p
inner join realiza r on r.id_paciente = p.id inner join exame e on e.id = r.id_exame;
-- A visão realiza a consulta do todos os pacientes que são de Minas Gerais e que realizam algum exame em uma unidade do mesmo estado
-- select * from vw_local_paciente_unidade;
CREATE OR REPLACE VIEW isbd.vw_local_paciente_unidade AS create view vw_local_paciente_unidade_mg as
select p.nome as paciente, u.nome as unidade from paciente p inner join realiza r on r.id_paciente = p.id
inner join exame e on e.id = r.id_exame inner join produz pz on pz.id_exame = e.id
inner join unidade u on u.id = pz.id_unidade where u.estado = 'MG' and p.estado = 'MG';
-- A visão realiza a consulta, entre os exames realizados, em qual década a pessoa nasceu para se fazer um estudo de acordo com a idade média dos pacientes -- select * from vw_media_idade_paciente;
CREATE OR REPLACE VIEW isbd.vw_media_idade_paciente AS create view vw_media_idade_paciente as
select count(*), case
when p.datanasc >= '1970-01-01' and p.datanasc <= '1979-12-31' then 'Década de 70'
when p.datanasc >= '1980-01-01' and p.datanasc <= '1989-12-31' then 'Década de 80'
when p.datanasc >= '1990-01-01' and p.datanasc <= '1999-12-31' then 'Década de 90'
when p.datanasc >= '2000-01-01' then 'Anos 2000' else 'Outras Décadas'
end as decada from paciente p
inner join realiza r on r.id_paciente = p.id inner join exame e on e.id = r.id_exame group by decada
order by count(*) desc;
(h) Exemplos de criação de usuários (pelo menos 2), concessão (GRANT) e revocação (REVOKE) de permissão de acesso (valor: 5%);
-- Cria um usuário tester identificado pelo número 0000
CREATE USER 'tester'@'localhost' IDENTIFIED BY '0000';
-- Cria um usuário admin identificado pelo número 0001 CREATE USER 'admin'@'localhost' IDENTIFIED BY '0001';
-- Concede ao usuário 'admin' em 'localhost' todos os privilégios à tabela paciente
GRANT ALL ON isbd.paciente TO 'admin'@'localhost';
-- Revoga, do usuário 'tester' em 'localhost', o direito de alterar a coluna 'nome' na table medico.
REVOKE UPDATE (nome) ON isbd.medico FROM 'tester'@'localhost';
(i) Exemplos de 3 procedimentos/funções, com e sem parâmetros, de entrada e de saída, contendo alguns comandos tais como IF, CASE WHEN, WHILE, declaração de variáveis e funções prontas. Inclua exemplos de como executar esses procedimentos/ funções (valor: 10%);
-- Lista os pacientes aniversariantes de cada mês
-- chamada do procedimento: CALL Aniversariantes();
DELIMITER $$
$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `isbd`.`Aniversariantes`() BEGIN
SELECT CASE EXTRACT(MONTH FROM isbd.paciente.datanasc) WHEN 01 THEN 'JANEIRO'
WHEN 02 THEN 'FEVEREIRO' WHEN 03 THEN 'MARÇO' WHEN 04 THEN 'ABRIL' WHEN 05 THEN 'MAIO' WHEN 06 THEN 'JUNHO' WHEN 07 THEN 'JULHO' WHEN 08 THEN 'AGOSTO' WHEN 09 THEN 'SETEMBRO' WHEN 10 THEN 'OUTUBRO' WHEN 11 THEN 'NOVEMBRO' WHEN 12 THEN 'DEZEMBRO'
END AS mes, GROUP_CONCAT(isbd.paciente.nome) AS paciente FROM isbd.paciente
GROUP BY mes
ORDER BY paciente;
END$$
DELIMITER ;
-- Lista a quantidade de exames a prazo que o médico (informado pelo nome) realiza
-- chamada do procedimento:
CALL Numero_medicos('NomeDoMedico', @nExames);
SELECT @nExames as exames_a_prazo;
DELIMITER $$
$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `isbd`.`Numero_medicos`(IN nome varchar(30), OUT nExames DECIMAL(4))
BEGIN
SELECT Count(*) INTO nExames FROM isbd.medico m
inner join isbd.concebe c on c.id_medico = m.id inner join isbd.exame e on e.id = c.id_exame
WHERE e.descricao like '%prazo%' and c.id_exame = e.id and m.nome = nome;
END$$
DELIMITER ;
-- Corrige nomes que possuem a inicial com a letra minúscula -- chamada do procedimento:
CALL Ajusta_nome('nome', @nomeCorrigido);
SELECT @nomeCorrigido nome;
DELIMITER $$
$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `isbd`.`Ajusta_nome`(IN nome varchar(30), OUT str VARCHAR(30))
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE myc, pc CHAR(1);
DECLARE outstr VARCHAR(1000) DEFAULT str;
WHILE i <= CHAR_LENGTH(nome) DO SET myc = SUBSTRING(nome, i, 1);
SET pc = CASE WHEN i = 1 THEN ' '
ELSE SUBSTRING(nome, i - 1, 1) END;
IF pc IN (' ', '&', '''', '_', '?', ';', ':', '!', ',', '-', '/', '(', '.') THEN
SET outstr = INSERT(outstr, i, 1, UPPER(myc));
END IF;
SET i = i + 1;
END WHILE;
SET nome = outstr;
END
$$
DELIMITER ;
(j) Exemplos de 3 triggers, um para cada evento (inserção, alteração e exclusão). Inclua exemplos de como disparar os triggers (valor: 10%).
- A trigger é disparada quando a descrição do exame for alterada - UPDATE isbd.exame SET descricao='Exemplo':
USE isbd;
DELIMITER $$
$$
CREATE DEFINER=`root`@`localhost` TRIGGER `exame_before_update` BEFORE UPDATE ON `exame` FOR EACH ROW BEGIN
IF (OLD.descricao != NEW.descricao) THEN
SET NEW.data = NOW();
END IF;
END$$
DELIMITER ;
- A trigger é disparada quando o usuário não apresentar um número de telefone na inserção:
USE isbd;
DELIMITER $$
$$
CREATE DEFINER=`root`@`localhost` TRIGGER `paciente_before_update` BEFORE INSERT ON `paciente` FOR EACH ROW BEGIN
IF (NEW.telefone = NULL) THEN
SET NEW.telefone = 'Não informado pelo usuário';
END IF;
END$$
DELIMITER ;
- A trigger é disparada quando há a exclusão da unidade com o nome Pavilhão 8, que logo, será inserida e renomeada para Antigo Pavilhão 8 - DELETE FROM isbd.unidade WHERE nome=’Pavilhão 8’;
USE isbd;
DELIMITER $$
$$
CREATE DEFINER=`root`@`localhost` TRIGGER `unidade_before_update` BEFORE DELETE ON `unidade` FOR EACH ROW BEGIN
IF (OLD.nome == 'Pavilhão 8') THEN
INSERT INTO isbd.unidade
(nome,rua,estado,cep,bairro,cidade,numero) VALUES ('Antigo Pavilhão 8','Rua DCC','MG','37260100','Naves','Lavras',22);
END IF;
END$$
DELIMITER ;