SQL para iniciantes: SELECT, WHERE e ORDER BY com exemplos
SQL é a linguagem usada para consultar e organizar dados guardados em tabelas. Com SELECT você escolhe as colunas, com WHERE filtra as linhas, com ORDER BY ordena o resultado e com funções como COUNT e AVG faz contas sobre os dados. Os exemplos abaixo usam SQLite, o mesmo banco do editor do EasyCode.
O que é SQL
Quase todo sistema guarda informação em um banco de dados: cadastros, pedidos, notas. Os dados ficam em tabelas, parecidas com planilhas: cada coluna é um tipo de informação e cada linha é um registro. O SQL (Structured Query Language, "linguagem de consulta estruturada") é como você conversa com esse banco.
Criando uma tabela de exemplo
Vamos criar uma tabela de alunos com quatro colunas e quatro linhas. Você usará esta mesma tabela nos exemplos seguintes:
CREATE TABLE alunos (id INTEGER, nome TEXT, curso TEXT, nota REAL);
INSERT INTO alunos VALUES (1, 'Ana', 'Python', 8.5);
INSERT INTO alunos VALUES (2, 'Bruno', 'SQL', 6.0);
INSERT INTO alunos VALUES (3, 'Carla', 'Python', 9.5);
INSERT INTO alunos VALUES (4, 'Diego', 'JavaScript', 7.0);CREATE TABLE cria a tabela e diz o tipo de cada coluna. INSERT INTO ... VALUES adiciona uma linha.
SELECT: escolher o que mostrar
Para ver todas as colunas, use o asterisco:
SELECT * FROM alunos;Resultado:
id | nome | curso | nota
1 | Ana | Python | 8.5
2 | Bruno | SQL | 6.0
3 | Carla | Python | 9.5
4 | Diego | JavaScript | 7.0Para ver só algumas colunas, liste os nomes:
SELECT nome, nota FROM alunos;Resultado:
nome | nota
Ana | 8.5
Bruno | 6.0
Carla | 9.5
Diego | 7.0
WHERE: filtrar linhas
SELECT nome, nota FROM alunos WHERE curso = 'Python';Resultado:
nome | nota
Ana | 8.5
Carla | 9.5O WHERE deixa passar só as linhas em que a condição é verdadeira. Textos vão entre aspas simples. Você pode combinar condições com AND e OR.
SELECT nome FROM alunos WHERE curso = 'Python' AND nota > 9;Resultado:
nome
Carla
ORDER BY: ordenar o resultado
SELECT nome, nota FROM alunos ORDER BY nota DESC;Resultado:
nome | nota
Carla | 9.5
Ana | 8.5
Diego | 7.0
Bruno | 6.0DESC ordena do maior para o menor e ASC (o padrão) do menor para o maior. Para ver só os dois primeiros, junte o LIMIT:
SELECT nome, nota FROM alunos ORDER BY nota DESC LIMIT 2;Resultado:
nome | nota
Carla | 9.5
Ana | 8.5
Contando e calculando
SELECT COUNT(*) FROM alunos;Resultado:
COUNT(*)
4SELECT AVG(nota) FROM alunos;Resultado:
AVG(nota)
7.75E com GROUP BY você calcula por grupo, como a quantidade de alunos de cada curso:
SELECT curso, COUNT(*) FROM alunos GROUP BY curso ORDER BY curso;Resultado:
curso | COUNT(*)
JavaScript | 1
Python | 2
SQL | 1
Erros comuns
- Esquecer o ponto e vírgula no fim, em alguns programas.
- Usar aspas duplas para textos: o padrão é a aspa simples.
- Esquecer o WHERE em comandos que mudam dados (como
UPDATEeDELETE), o que afeta a tabela inteira. Em um banco real, tenha cuidado redobrado. - Escrever o nome da coluna errado. A mensagem de erro costuma dizer qual coluna não existe.
Quem tirou 8 ou mais?
Com a tabela de alunos criada acima, escreva uma consulta que mostre só os nomes de quem tem nota 8 ou maior, em ordem alfabética. Depois compare com a resposta.
SELECT nome FROM alunos WHERE nota >= 8 ORDER BY nome;
Resultado esperado:
nome
Ana
Carla
O WHERE filtra as notas de 8 para cima e o ORDER BY nome coloca os nomes em ordem alfabética.
Perguntas frequentes
SQL é uma linguagem de programação?
É uma linguagem específica para trabalhar com dados. Ela não serve para fazer qualquer programa, mas é essencial em muitas áreas.
Qual a diferença entre SQLite, MySQL e PostgreSQL?
São sistemas de banco de dados diferentes que entendem o SQL, com pequenas variações. O SQLite é leve e fica em um único arquivo, e os outros são usados em servidores.
SQL diferencia maiúsculas e minúsculas?
Os comandos, como SELECT, não diferenciam. Os textos que você compara, como 'Python', podem diferenciar, dependendo do banco.
O que é chave primária?
É a coluna que identifica cada linha de forma única, como o número de um cadastro. Ela evita registros repetidos.
Fontes e para saber mais
Apoie o EasyCode 💜
O EasyCode é gratuito, independente e sem anúncios. Manter a plataforma rápida, com compiladores no navegador e novos conteúdos atualizados tem custos reais todo mês. Se o site está te ajudando a aprender, veja como apoiar o projeto para continuarmos sempre no ar e acessíveis para todos.