DEV Community

Yuri Peixinho
Yuri Peixinho

Posted on

SQL Keyword, Tipos de Dados & Operators

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 SELECTFROMWHEREORDER BYGROUP BYHAVINGLIMIT
Junção JOININNER JOINLEFT JOINON
Manipulação INSERTUPDATEDELETEINTOVALUESSET
Estrutura CREATEALTERDROPTABLEINDEX
Auxiliares ASDISTINCTNULLNOT NULLDEFAULTANDORINLIKE

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)
Enter fullscreen mode Exit fullscreen mode

DECIMAL é preferível para valores monetários porque não tem os erros de arredondamento do FLOATFLOAT(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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Booleano e Nulo

ativo BOOLEAN       -- TRUE ou FALSE
apelido VARCHAR(50)-- pode receber NULL (ausência de valor)
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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)