Introdução
Keywords são as palavras reservadas da linguagem, termos com significado especial que o banco de dados reconhece e interpreta. Elas formam a espinha dorsal de qualquer instrução SQL.
Por convenção, keywords são escritas em maiúsculas, embora o SQL seja case-insensitive. select funciona igual a SELECT, mas o uso de maiúsculas é uma convenção amplamente adotada que melhora a legibilidade, deixando claro o que é comando e o que é nome de tabela ou coluna.
As principais keywords se organizam por função:
| Categoria | Keywords |
|---|---|
| Consulta |
SELECT, FROM, WHERE, ORDER BY, GROUP BY, HAVING, LIMIT
|
| Junção |
JOIN, INNER JOIN, LEFT JOIN, ON
|
| Manipulação |
INSERT, UPDATE, DELETE, INTO, VALUES, SET
|
| Estrutura |
CREATE, ALTER, DROP, TABLE, INDEX
|
| Auxiliares |
AS, DISTINCT, NULL, NOT NULL, DEFAULT, AND, OR, IN, LIKE
|
Nomes de tabelas e colunas não podem ser keywords reservadas, ou, se forem, precisam ser envolvidos em aspas ou colchetes dependendo do banco. Chamar uma coluna de order ou select, por exemplo, vai causar um erro de sintaxe.
Tipos de Dados
Ao criar uma tabela, cada coluna precisa de um tipo de dado. Esse tipo define o que pode ser armazenado ali, e o banco de dados garante que nenhum valor inválido seja inserido. É a primeira camada de validação dos dados.
Numéricos
id INT -- inteiro, de -2 bilhões a 2 bilhões
populacao BIGINT -- inteiro grande, para números acima de 2 bilhões
preco DECIMAL(10,2) -- número exato com 10 dígitos, 2 decimais (ideal para dinheiro)
peso FLOAT -- número de ponto flutuante (menos preciso, mais rápido)
DECIMAL é preferível para valores monetários porque não tem os erros de arredondamento do FLOAT. FLOAT(1.1) + FLOAT(2.2) pode resultar em 3.3000000000000003 — um problema clássico de ponto flutuante.
Texto
nome VARCHAR(100)-- texto de tamanho variável, até 100 caracteres
sigla CHAR(2)-- texto de tamanho fixo, sempre 2 caracteres
descricao TEXT -- texto longo sem limite definido
CHAR ocupa espaço fixo independente do conteúdo — CHAR(2) para 'SP' e para 'A' ocupa o mesmo espaço. VARCHAR ocupa só o necessário, sendo mais eficiente para campos de tamanho variável.
Data e Hora
nascimento DATE -- apenas data: 1990-04-15
abertura TIME -- apenas hora: 09:30:00
criado_em TIMESTAMP -- data e hora: 2024-03-10 14:22:00
Booleano e Nulo
ativo BOOLEAN -- TRUE ou FALSE
apelido VARCHAR(50)-- pode receber NULL (ausência de valor)
NULL não é um tipo, mas um estado — significa que o valor é desconhecido ou ausente. É diferente de zero ou de uma string vazia. Uma coluna sem NOT NULL aceita NULL por padrão.
Operators
Operadores são os símbolos e palavras usados para comparar, combinar e filtrar valores dentro de uma consulta. Eles aparecem principalmente na cláusula WHERE.
Comparação
WHERE preco= 99.90 -- igual
WHERE preco!= 99.90 -- diferente (também pode ser <>)
WHERE preco> 50 -- maior que
WHERE preco<= 100 -- menor ou igual
Lógicos
Combinam múltiplas condições:
WHERE preco> 50 AND estoque> 0 -- ambas verdadeiras
WHERE cidade= 'SP' OR cidade= 'RJ' -- pelo menos uma verdadeira
WHERE NOT ativo-- inverte a condição
BETWEEN, IN e LIKE
-- BETWEEN: intervalo inclusivo
WHERE precoBETWEEN 50 AND 200
-- IN: pertence a uma lista
WHERE cidadeIN ('SP','RJ','BH')
-- LIKE: correspondência de padrão
WHERE nomeLIKE 'Ana%' -- começa com "Ana"
WHERE emailLIKE '%@gmail%' -- contém "@gmail"
WHERE codigoLIKE 'BR_' -- "BR" seguido de exatamente um caractere
No LIKE, % substitui qualquer sequência de caracteres e _ substitui exatamente um caractere.
IS NULL / IS NOT NULL
WHERE telefoneIS NULL -- campo sem valor
WHERE telefoneIS NOT NULL -- campo preenchido
Nunca use = NULL — isso não funciona em SQL. O operador de igualdade não consegue comparar com NULL; use sempre IS NULL.
Top comments (0)