Quase todas as aplicações guardam dados: utilizadores, produtos, encomendas, mensagens. O SQL é a linguagem usada para falar com as bases de dados onde esses dados ficam. Aprendê-la é uma das competências mais valorizadas para quem trabalha em programação, análise de dados ou administração de sistemas.
O que é uma base de dados relacional
Pensa numa folha de cálculo com várias abas. Cada aba é uma tabela, cada coluna é um campo (nome, email, preço) e cada linha é um registo. Uma base de dados relacional liga as tabelas entre si por identificadores.
Exemplo de tabela clientes:
| id | nome | cidade |
|---|---|---|
| 1 | Ana | Luanda |
| 2 | Pedro | Benguela |
| 3 | Rita | Lisboa |
Sistemas populares: MySQL, MariaDB, PostgreSQL, SQLite e SQL Server. A sintaxe básica é quase igual em todos.
Criar uma tabela
CREATE TABLE clientes (
id INT PRIMARY KEY AUTO_INCREMENT,
nome VARCHAR(100) NOT NULL,
cidade VARCHAR(80)
);A chave primária (PRIMARY KEY) identifica cada registo de forma única.
Inserir dados
INSERT INTO clientes (nome, cidade) VALUES ('Ana', 'Luanda');
INSERT INTO clientes (nome, cidade) VALUES ('Pedro', 'Benguela');Consultar dados: SELECT
SELECT * FROM clientes;
SELECT nome, cidade FROM clientes;
SELECT nome FROM clientes WHERE cidade = 'Luanda';
SELECT * FROM clientes ORDER BY nome ASC LIMIT 10;WHEREfiltra.ORDER BYordena.LIMITlimita o número de resultados.LIKE '%an%'procura texto parcial.
Atualizar e apagar
UPDATE clientes SET cidade = 'Lobito' WHERE id = 2;
DELETE FROM clientes WHERE id = 3;Atenção: se esqueceres o
WHERE, oUPDATEe oDELETEafetam todas as linhas. Em dados importantes, faz sempre umSELECTcom a mesma condição antes, e tem cópias de segurança.
Funções de agregação
SELECT COUNT(*) FROM clientes;
SELECT cidade, COUNT(*) AS total FROM clientes GROUP BY cidade;
SELECT AVG(preco), MAX(preco), MIN(preco) FROM produtos;GROUP BY agrupa registos para contar, somar ou calcular médias por grupo.
Relacionar tabelas: JOIN
Imagina uma tabela encomendas com cliente_id. Para mostrar o nome do cliente junto da encomenda:
SELECT encomendas.id, clientes.nome, encomendas.total
FROM encomendas
JOIN clientes ON encomendas.cliente_id = clientes.id;O JOIN combina linhas de duas tabelas usando a coluna que as liga. É o conceito que mais confunde no início, mas dominá-lo muda tudo.
Boas práticas
- Dá nomes claros às tabelas e colunas.
- Usa sempre chave primária.
- Define o tipo certo para cada campo (números como números, datas como datas).
- Faz cópias de segurança regulares.
- Nunca montes consultas juntando texto que vem do utilizador. Usa consultas preparadas para evitar SQL injection (ver segurança web básica).
Como praticar
- Instala o SQLite ou usa um editor online de SQL e cria uma base com
clientes,produtoseencomendas. - Faz 20 consultas diferentes: filtros, ordenação, contagens, junções.
- Liga a base de dados a um pequeno programa em Python ou PHP.
Perguntas frequentes
SQL é uma linguagem de programação?
É uma linguagem específica para consultar e gerir bases de dados. Não serve para criar aplicações completas sozinha, mas é essencial em quase todas.
SQL ou NoSQL?
SQL é a escolha segura para começar e cobre a maior parte dos casos. NoSQL (como MongoDB) aprende-se depois, para necessidades específicas.
Posso aprender SQL sem saber programar?
Sim. É uma boa porta de entrada, sobretudo para quem quer trabalhar com dados.




