CREATE TABLE nome_tabela (
coluna1 TIPO restrições,
coluna2 TIPO restrições,
...
);
Tipos comuns:
INT → número inteiro
VARCHAR(n) → texto até n caracteres
DATE → data
Restrições úteis:
PRIMARY KEY → identificador único
NOT NULL → obrigatório
UNIQUE → valor não pode repetir
DEFAULT valor → valor padrão
FOREIGN KEY (coluna1) REFERENCES outra_tabela(coluna_chave_estrangeira)
INSERT INTO nome_tabela (coluna1, coluna2, ...)
VALUES
(valor1, valor2, ...),
(valor3, valor4, ...);
Números → Sem aspas
VARCHAR e DATE → Com aspas (' ')
SELECT coluna1, coluna2 FROM nome_tabela;
Ou todas os campos:
SELECT * FROM nome_tabela;
Com filtro:
SELECT campo 1, campo 2, campo X
FROM tabela
WHERE campo operador valor;
Exemplo:
SELECT nome, idade, nacionalidade
FROM alunos
WHERE idade > 18 and nacionalidade = "cabo-verdiana";
Usando o JOIN:
Sintaxe geral:
SELECT colunas
FROM TabelaA
TIPO_JOIN TabelaB
ON TabelaA.chave = TabelaB.chave
Exemplo INNER JOIN:
SELECT A.nome_aluno, A.data_nasc, B.num_turma
FROM alunos A
INNER JOIN turmas T
ON A.id_turma = T.id_turma;
Exemplo LEFT JOIN:
SELECT A.nome_aluno, A.data_nasc, B.num_turma
FROM alunos A
LEFT JOIN turmas T
ON A.id_turma = T.id_turma;
AND = todas as condições têm de ser verdade ao mesmo tempo
OR = basta uma das condições ser verdade
Operadores aritméticos: =, >, <, >=, <=, !=
IS NULL: Serve para verificar campos vazios ou não preenchidos.
LIKE: Permite procurar padrões de texto, usando o %.
BETWEEN: Seleciona valores entre dois limites (inclusive).
IN: Permite listar vários valores possíveis de forma prática
DISTINCT: Elimina valores repetidos
ORDER BY: Devolve os dados organizados em ordem crescente (ASC) ou decrescente (DESC).
LIMIT: Serve para limitar o número de linhas devolvidas
COUNT: Conta o número de linhas da tabela
SUM: Soma dos valores da coluna
MAX: Máximo valor da coluna
MIN: Mínimo valor da coluna
AVG: Média dos valores da coluna
GROUP BY -> Serve para aplicar funções em grupos
WHERE → filtra linhas
HAVING → filtra grupos
JOIN - O JOIN permite combinar linhas de duas (ou mais) tabelas com base numa coluna com uma chave estrangeira (foreign key).
INNER JOIN
Devolve apenas as linhas que têm correspondência nas DUAS tabelas.
Se um registo não tiver par na outra tabela, NÃO aparece no resultado.
LEFT JOIN:
Devolve TODOS os registos da tabela da ESQUERDA (FROM).
Se existir correspondência na tabela da direita, os dados aparecem.
Se NÃO existir correspondência, os campos da tabela direita ficam NULL.