10.5.1- SELECT - O Comando essencial

Módulo 3 – Introdução à Linguagem SQL: Consultando os Dados

Agora que já estruturamos nosso banco de dados no Supabase, com suas respectivas tabelas, colunas e chaves, é hora de aprendermos a consultar as informações que foram armazenadas. Para isso, utilizaremos a linguagem SQL (Structured Query Language) – a linguagem padrão utilizada para comunicação com bancos de dados relacionais.

Com SQL, é possível realizar diversas operações, como: buscar registros, inserir novos dados, atualizar valores existentes ou até mesmo excluir informações. Neste módulo, o foco será no comando mais utilizado do SQL: o SELECT. Ele permite visualizar os dados armazenados em uma ou mais tabelas.


Consulta Básica: SELECT * FROM nome_da_tabela

A forma mais simples de consultar dados é utilizando o SELECT para retornar todas as colunas de uma tabela.

Sintaxe:

SELECT * FROM nome_da_tabela;

Explicação:

  • SELECT: palavra-chave que inicia a consulta.

  • *: símbolo curinga que indica todas as colunas.

  • FROM: indica de qual tabela os dados serão consultados.

  • nome_da_tabela: nome da tabela que será consultada.

  • ;: indica o fim do comando.

Exemplo: Suponha a seguinte tabela chamada usuarios:

id (PK)
nome
email
data_nascimento
cidade

f47ac10b...

João Silva

joao.silva@email.com

2006-05-10

Rio de Janeiro

z9y8x7w6...

Maria Souza

maria.s@outroemail.com

2007-11-22

São Paulo

a1b2c3d4...

Carlos Pereira

carlos.p@email.com

2005-02-15

Rio de Janeiro

Com o comando:

SELECT * FROM usuarios;

Você visualizará todas as colunas e linhas da tabela.

Dica: No Supabase, esse tipo de comando pode ser executado diretamente no SQL Editor (ícone </> no painel).


Selecionando Colunas Específicas

Se não for necessário visualizar todas as colunas, é possível selecionar apenas aquelas que forem relevantes para a consulta.

Sintaxe:

 coluna1, coluna2 FROM nome_da_tabela;

Exemplo:

nome, email FROM usuarios;

Resultado esperado:

nome
email

João Silva

joao.silva@email.com

Maria Souza

maria.s@outroemail.com

Carlos Pereira

carlos.p@email.com


Aplicando Filtros com WHERE

A cláusula WHERE permite restringir os resultados com base em condições lógicas.

Sintaxe:

coluna1, coluna2 FROM nome_da_tabela WHERE condicao;

Operadores comuns:

  • = : igual

  • > : maior que

  • < : menor que

  • >=, <=: maior/menor ou igual

  • <> ou !=: diferente de

Exemplos:

  1. Usuários do Rio de Janeiro:

SELECT * FROM usuarios WHERE cidade = 'Rio de Janeiro';
  1. Nomes dos usuários nascidos antes de 2007:

Select nome FROM usuarios WHERE data_nascimento < '2007-01-01';
  1. Posts que não foram feitos pelo João (supondo o ID dele):

SELECT texto_do_post FROM posts WHERE usuario_id <> 'f47ac10b-58cc-4372-a567-0e02b2c3d479';

Combinando Condições com AND e OR

É possível combinar múltiplas condições utilizando os operadores lógicos AND e OR.

  • AND: todas as condições devem ser verdadeiras.

  • OR: pelo menos uma das condições deve ser verdadeira.

Exemplos:

  1. Usuários do Rio de Janeiro e nascidos antes de 2007:

Select  nome FROM usuarios 
WHERE cidade = 'Rio de Janeiro' AND data_nascimento < '2007-01-01';
  1. Posts do João ou com mais de 20 curtidas:

SELECT texto_do_post FROM posts 
WHERE usuario_id = 'f47ac10b-58cc-4372-a567-0e02b2c3d479' OR numero_likes > 20;

Observação: Use parênteses para tornar a lógica da condição mais clara, especialmente ao misturar AND e OR.


Ordenando Resultados com ORDER BY

Para exibir os dados em uma ordem específica, utilize a cláusula ORDER BY.

Sintaxe:

SELECT ... FROM ... WHERE ... ORDER BY coluna [ASC | DESC];
  • ASC (padrão): ordem crescente.

  • DESC: ordem decrescente.

Exemplos:

  1. Ordenar usuários por nome (A–Z):

SELECT nome, email FROM usuarios ORDER BY nome;
  1. Posts do mais recente para o mais antigo:

SELECT texto_do_post, data_publicacao FROM posts ORDER BY data_publicacao DESC;
  1. Usuários do Rio de Janeiro, do mais novo para o mais velho:

SELECT nome, data_nascimento 
FROM usuarios 
WHERE cidade = 'Rio de Janeiro' 
ORDER BY data_nascimento DESC;

Last updated