Last active
October 19, 2021 03:25
-
-
Save wellingtonpgp/430963fb13011de35b24438cbfaa3294 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CREATE TABLE pessoa ( | |
id serial NOT NULL, | |
nome text, | |
interesses jsonb, | |
informacoes_adicionais jsonb | |
); | |
INSERT INTO pessoa VALUES (1, 'João', '["futebol", "natação"]', '{"idade": 28, "time": "Chapecoense"}'); | |
INSERT INTO pessoa VALUES (2, 'Maria', '["leitura", "programação", "dança"]', '{"idade": 39, "trabalha-com-programacao": true, "area": "back-end"}'); | |
INSERT INTO pessoa VALUES (3, 'Ana', '["programação"]', '{"idade": 29, "trabalha-com-programacao": false, "area": "front-end", "areas-de-interesse": ["mobile", "design"]}'); | |
SELECT nome, interesses, informacoes_adicionais->'trabalha-com-programacao' FROM pessoa | |
SELECT jsonb_array_elements_text(interesses) FROM pessoa WHERE nome = 'Maria' | |
SELECT nome, informacoes_adicionais->'area' as area FROM pessoa | |
WHERE | |
informacoes_adicionais ? 'area' | |
AND informacoes_adicionais->'trabalha-com-programacao' = 'true' | |
SELECT jsonb_array_elements_text(interesses) FROM pessoa | |
WHERE (informacoes_adicionais->'idade')::text::integer <= 28 | |
SELECT * FROM pessoa WHERE interesses @> '["programação"]' | |
CREATE INDEX idx_trabalha_com_programacao ON pessoa ((informacoes_adicionais->'trabalha-com-programacao')); | |
UPDATE pessoa | |
SET informacoes_adicionais = jsonb_set(informacoes_adicionais, '{idade}', '"30"', TRUE) | |
WHERE id = 1 | |
update pessoa | |
set informacoes_adicionais = informacoes_adicionais - 'Idade' || jsonb_build_object('idade', informacoes_adicionais->'Idade') | |
where informacoes_adicionais ? 'Idade' | |
returning *; | |
UPDATE pessoa SET informacoes_adicionais = informacoes_adicionais - 'idade'; | |
UPDATE pessoa SET informacoes_adicionais = informacoes_adicionais || '{"country": "Egypt"}' WHERE informacoes_adicionais->>'area' = ''; | |
https://andrewrosario.medium.com/utilizando-json-no-postgresql-com-jsonb-data-types-3c4d10dd4ea3 | |
https://levelup.gitconnected.com/working-with-a-jsonb-array-of-objects-in-postgresql-d2b7e7f4db87 | |
https://stackoverflow.com/questions/50095322/querying-data-in-postgresql-by-applying-filter-on-a-jsonb-column |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment