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.