Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Complemento para o Exercício CREATE TABLE e MASSA DE TESTE mais um EXERCÍCIO extra.

PessoALL,

Caso queira complementar seu exercício criando a tabela e montando uma massa de testes, segue:

CRIAR O BANCO DE DADOS:

CREATE TABLE tb_object_departamento (
    Numero_Departamento int,
    JSONVALUE json
);

MASSA DE TESTES:

INSERT INTO tb_object_departamento (Numero_Departamento, JSONVALUE)
VALUES (1, '{"Numero_Departamento":"1","Data_Inicio_Gerente":"1980-09-05","Nome_Departamento":"Produção","Cpf_Gerente":"98701011430","Projeto":[{"Numero_Projeto":"1","Nome_Projeto":"Produto X","Local_Projeto":"Piracicaba"},{"Numero_Projeto":"3","Nome_Projeto":"Produto Z","Local_Projeto":"São Paulo"}]}'),
       (2, '{"Numero_Departamento":"2","Data_Inicio_Gerente":"1987-07-07","Nome_De4partamento":"Desenvolvimento","Cpf_Gerente":"25328357701","Projeto":[{"Numero_Projeto":"3","Nome_Projeto":"Produto Z","Local_Projeto":"São Paulo"}]}'),
       (3, '{"Numero_Departamento":"3","Data_Inicio_Gerente":"1987-07-11","Nome_Departamento":"Recrutamento","Cpf_Gerente":"64511115540","Projeto":[{"Numero_Projeto":"2","Nome_Projeto":"Produto Y","Local_Projeto":"Itu"}]}'),
       (4, '{"Numero_Departamento":"4","Data_Inicio_Gerente":"1988-01-01","Nome_Departamento":"Manutenção","Cpf_Gerente":"36210837662","Projeto":[{"Numero_Projeto":"1","Nome_Projeto":"Produto X","Local_Projeto":"Piracicaba"},{"Numero_Projeto":"2","Nome_Projeto":"Produto Y","Local_Projeto":"Itu"},{"Numero_Projeto":"3","Nome_Projeto":"Produto Z","Local_Projeto":"São Paulo"}]}'),
       (5, '{"Numero_Departamento":"5","Data_Inicio_Gerente":"1988-05-22","Nome_Departamento":"Pesquisa","Cpf_Gerente":"33344555587","Projeto":[{"Numero_Projeto":"3","Nome_Projeto":"Produto Z","Local_Projeto":"São Paulo"},{"Numero_Projeto":"2","Nome_Projeto":"Produto Y","Local_Projeto":"Itu"}]}'),
       (6, '{"Numero_Departamento":"6","Data_Inicio_Gerente":"1990-11-11","Nome_Departamento":"Laboratório","Cpf_Gerente":"97313536402","Projeto":[{"Numero_Projeto":"2","Nome_Projeto":"Produto Y","Local_Projeto":"Itu"},{"Numero_Projeto":"4","Nome_Projeto":"Produto A","Local_Projeto":"Rio de Janeiro"},{"Numero_Projeto":"5","Nome_Projeto":"Produto K","Local_Projeto":"Toledo"}]}'),
       (7, '{"Numero_Departamento":"7","Data_Inicio_Gerente":"2000-02-28","Nome_Departamento":"Elétrica","Cpf_Gerente":"07526572325","Projeto":[{"Numero_Projeto":"6","Nome_Projeto":"Produto B","Local_Projeto":"Belém"},{"Numero_Projeto":"5","Nome_Projeto":"Produto K","Local_Projeto":"Toledo"},{"Numero_Projeto":"7","Nome_Projeto":"Produto C","Local_Projeto":"São Paulo"}]}'),
       (8, '{"Numero_Departamento":"8","Data_Inicio_Gerente":"2005-04-20","Nome_Departamento":"Mecânica","Cpf_Gerente":"73682332235","Projeto":[{"Numero_Projeto":"5","Nome_Projeto":"Produto K","Local_Projeto":"Toledo"},{"Numero_Projeto":"6","Nome_Projeto":"Produto B","Local_Projeto":"Belém"},{"Numero_Projeto":"7","Nome_Projeto":"Produto C","Local_Projeto":"São Paulo"}]}'),
       (9, '{"Numero_Departamento":"9","Data_Inicio_Gerente":"2005-06-05","Nome_Departamento":"Hidráulica","Cpf_Gerente":"11570566879","Projeto":[{"Numero_Projeto":"7","Nome_Projeto":"Produto C","Local_Projeto":"São Paulo"},{"Numero_Projeto":"6","Nome_Projeto":"Produto B","Local_Projeto":"Belém"}]}'),
       (10, '{"Numero_Departamento":"10","Data_Inicio_Gerente":"2005-10-15","Nome_Departamento":"Informática","Cpf_Gerente":"41199543829","Projeto":[{"Numero_Projeto":"6","Nome_Projeto":"Produto B","Local_Projeto":"Belém"},{"Numero_Projeto":"11","Nome_Projeto":"Produto E","Local_Projeto":"Cuiabá"},{"Numero_Projeto":"7","Nome_Projeto":"Produto C","Local_Projeto":"São Paulo"},{"Numero_Projeto":"8","Nome_Projeto":"Produto D","Local_Projeto":"Goiás"},{"Numero_Projeto":"9","Nome_Projeto":"Produto E","Local_Projeto":"Manaus"}]}');

SELECIONAR OS DADOS:

SELECT Numero_Departamento,
REPLACE(json_extract(JSONVALUE,"$.Numero_Departamento"),"""","") as Numero_Departamento,
REPLACE(json_extract(JSONVALUE,"$.Data_Inicio_Gerente"),"""","") as Data_Inicio_Gerente,
REPLACE(json_extract(JSONVALUE,"$.Nome_Departamento"),"""","") as Nome_Departamento,
REPLACE(json_extract(JSONVALUE,"$.Cpf_Gerente"),"""","") as Cpf_Gerente,
REPLACE(json_extract(JSONVALUE,"$.Projeto[*]"),"""","") as Projeto,
REPLACE(json_extract(JSONVALUE,"$.Projeto[1]"),"""","") as Projeto,
REPLACE(json_extract(JSONVALUE,"$.Projeto[1].Numero_Projeto"),"""","") as Projeto,
REPLACE(json_extract(JSONVALUE,"$.Projeto[1].Nome_Projeto"),"""","") as Projeto,
REPLACE(json_extract(JSONVALUE,"$.Projeto[1].Local_Projeto"),"""","") as Projeto
FROM tb_object_departamento;

SUPER EXERCÍCIO:

  • Listar todos os nomes de projetos (Nome_Projeto) que estão localizados em São Paulo (Local_Projeto).

Por favor leia a documentação do MySQL:

==========================================================

11.5 O tipo de dados JSON

https://dev.mysql.com/doc/refman/8.0/en/json.html

==========================================================

[]'s,

Fabio I.

1 resposta
solução!

Oi, Fabio! Tudo certo por aí?

Desde já, peço desculpas pela demora em te responder.

Valeu por compartilhar este complemento com o fórum, com certeza agregará conhecimentos às pessoas que estão fazendo tal curso.

Continue sempre sendo essa pessoa dedicada, Fabio! Se surgir alguma dúvida, estarei aqui para te auxiliar.

Abraços!