Noções básicas de colunas de matriz
Crie e leia valores de matriz.
Noções básicas de colunas de matriz é uma aula grátis de SQL Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de SQL Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de SQL Academy inclui 4 aulas no total.
O que é uma coluna de matriz
PostgreSQL oferece suporte a colunas de matriz, que permitem que uma única célula contenha vários valores do mesmo tipo. Em vez de armazenar texto separado por vírgulas, você obtém uma lista devidamente tipada que pode consultar, indexar e manipular com funções integradas.
As matrizes podem conter números inteiros, texto, valores booleanos, datas ou qualquer outro tipo do PostgreSQL. A sintaxe é semelhante a integer[] ou text[].
Declarando uma coluna de matriz
Adicione [] depois de qualquer nome de tipo ao escrever uma instrução CREATE TABLE para declarar uma coluna de matriz. A tabela abaixo armazena uma lista de etiquetas para cada artigo.
CREATE TABLE articles (
id serial PRIMARY KEY,
title text NOT NULL,
tags text[]
);Inserindo valores de matriz
Use literais com chaves entre aspas simples para inserir dados de matriz. Cada elemento é separado por uma vírgula dentro das chaves: '{"sql","database"}'.
Como alternativa, você pode usar a sintaxe do construtor ARRAY[...] mostrada na segunda linha.
INSERT INTO articles (title, tags) VALUES
('Intro to SQL', '{"sql","beginner"}'),
('Advanced Joins', ARRAY['sql','joins','performance']),
('NULL Handling', '{"sql","nulls","tips"}');Lendo a matriz inteira
Selecionar uma coluna de matriz funciona exatamente como selecionar qualquer outra coluna. PostgreSQL retorna a matriz inteira como um único valor no conjunto de resultados, exibido no formato com chaves.
SELECT id, title, tags
FROM articles;Acessando um único elemento
Os índices de matrizes no PostgreSQL são baseados em 1 (o primeiro elemento está no índice 1, não no 0). Use colchetes depois do nome da coluna para acessar um elemento específico.
SELECT title,
tags[1] AS first_tag,
tags[2] AS second_tag
FROM articles;Fatiando uma matriz
Você pode extrair um intervalo de elementos usando a sintaxe de fatia lower:upper dentro de colchetes. Os dois limites são inclusivos.
SELECT title,
tags[1:2] AS first_two_tags
FROM articles;Filtrando com ANY
Para encontrar linhas em que uma matriz contém um valor específico, use a expressão = ANY(column). Ela retorna as linhas em que pelo menos um elemento da matriz corresponde ao valor fornecido.
SELECT id, title, tags
FROM articles
WHERE 'joins' = ANY(tags);Filtrando com o operador @>
O operador de contém @> verifica se a matriz da esquerda contém todos os elementos da matriz da direita. Isso é útil quando você quer linhas que incluam um conjunto de etiquetas obrigatórias.
SELECT id, title, tags
FROM articles
WHERE tags @> ARRAY['sql','tips'];Obtendo o comprimento da matriz
A função array_length(arr, dimension) retorna o número de elementos ao longo de uma determinada dimensão. Para uma matriz unidimensional, use 1 como segundo argumento.
SELECT title,
array_length(tags, 1) AS tag_count
FROM articles
ORDER BY tag_count DESC;Adicionando elementos
Use a função array_append(array, element) ou o operador de concatenação || para adicionar um novo elemento ao final de uma coluna de matriz existente.
UPDATE articles
SET tags = array_append(tags, 'featured')
WHERE title = 'Intro to SQL';
SELECT title, tags FROM articles WHERE title = 'Intro to SQL';Convertendo uma matriz em linhas
A função unnest(array) expande uma matriz em um conjunto de linhas — uma linha por elemento. Isso é útil para agregações, junções ou qualquer operação que precise tratar cada elemento separadamente.
SELECT title, unnest(tags) AS tag
FROM articles
ORDER BY title, tag;Verificação rápida
Teste sua compreensão sobre colunas de matriz do PostgreSQL.
Resumo: conceitos básicos de colunas de matriz
Nesta lição, você aprendeu como as colunas de matriz do PostgreSQL funcionam de ponta a ponta:
- Declare matrizes com a sintaxe
type[]emCREATE TABLE - Insira valores usando literais com chaves ou
ARRAY[...] - Acesse elementos por índice baseado em 1 e use fatias com
lower:upper - Filtre com
= ANY(col)para um único valor ou com@>para um subconjunto - Meça o comprimento com
array_length(col, 1) - Adicione elementos usando
array_append()ou|| - Expanda matrizes em linhas com
unnest()
As matrizes são um recurso poderoso do PostgreSQL que pode simplificar os esquemas quando uma lista de valores pertence a uma única entidade.
Perguntas Frequentes
A aula “Noções básicas de colunas de matriz” é grátis?
Sim — o texto completo de “Noções básicas de colunas de matriz” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de SQL Academy, atualize para CoddyKit PRO. O curso de SQL Academy inclui 4 aulas no total.
O que vou aprender em “Noções básicas de colunas de matriz”?
Crie e leia valores de matriz. Você pratica SQL Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar SQL Academy?
Nenhuma experiência prévia é necessária. SQL Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Noções básicas de colunas de matriz”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de SQL Academy?
Sim. Cada aula de SQL Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Noções básicas de colunas de matriz
- Pesquisando dentro de matrizes
- UNNEST e agregação
- Matrizes versus tabelas normalizadas