CodeGym /Cursos /SQL SELF /Tipo lógico de dado: BOOLEAN

Tipo lógico de dado: BOOLEAN

SQL SELF
Nível 15, Lição 3
Disponível

Você já viu tipos de dados que guardam números e texto. Agora chegou a hora de falar do tipo lógico de dado — BOOLEAN. Esse é, talvez, o tipo de dado mais "sincero", porque ele só responde duas perguntas: "Sim" ou "Não". E às vezes — "Talvez" (leia-se: NULL).

O tipo lógico de dado BOOLEAN guarda valores que podem ser só:

  • TRUE (verdadeiro);
  • FALSE (falso);
  • NULL (sem valor).

Pensa num interruptor: ele pode estar ligado TRUE, desligado FALSE ou num estado desconhecido NULL, tipo se a lâmpada sumiu do nada.

Dá pra dizer que o tipo lógico de dado é a base pra tomar decisões e fazer lógica condicional no SQL. Sem ele, não dava pra fazer um filtro decente numa query ou marcar o status de alguma coisa.

Exemplos de uso

O tipo lógico de dado é super usado em bancos de dados. Olha só uns casos reais:

Flags e status.

Por exemplo, o campo is_active pode mostrar se o usuário tá ativo (TRUE) ou não (FALSE).

SELECT username, is_active
FROM users 
WHERE is_active = TRUE;

Controle de execução.

Por exemplo, o campo is_complete pode guardar se a tarefa foi concluída.

SELECT task_name
FROM tasks 
WHERE is_complete = FALSE;

Checagem de disponibilidade.

O campo is_available pode mostrar se o produto tá disponível no estoque.

Como usar BOOLEAN no PostgreSQL?

O tipo lógico de dado no PostgreSQL se chama simplesmente BOOLEAN. Bora criar uma tabela e colocar umas colunas nela:

  • Identificador único da tarefa
  • Nome da tarefa
  • Status lógico de conclusão da tarefa

Depois, bora adicionar alguns registros na tabela:

task_id task_name - VARCHAR(255) is_complete - BOOLEAN
1 Escrever relatório false
2 Ir ao mercado true
3 Ler um livro null

Extraindo dados

Agora vamos ver como pegar dados baseado no valor lógico. Por exemplo, pra pegar só as tarefas não concluídas, faz assim:

SELECT task_name
FROM tasks 
WHERE is_complete = FALSE;

Essa query vai trazer só as tarefas onde is_complete é FALSE.

Resultado:

task_name
Escrever relatório

Peculiaridades do BOOLEAN

Filtrando valores

Pra trabalhar com tipo lógico, tu pode usar essa sintaxe:

  • = TRUE — se quiser dizer que o valor é verdadeiro.
  • = FALSE — se quiser pegar os valores falsos.
  • IS NULL — se quiser pegar registros sem valor.

Exemplo:

SELECT task_name
FROM tasks 
WHERE is_complete IS NULL;

Simplificando condições

O PostgreSQL é tão "esperto" que muitas vezes nem precisa escrever = TRUE. Por exemplo:

SELECT task_name
FROM tasks 
WHERE is_complete;

Essa query é igual a WHERE is_complete = TRUE.

Erros comuns com BOOLEAN

Quando tu começa a mexer com um tipo de dado novo, é normal errar. Olha só uns problemas clássicos que podem rolar:

Comparando com NULL. Quem tá começando costuma escrever is_active = NULL. Mas NULL não pode ser comparado com =. Pra checar se o valor é NULL, usa IS NULL ou IS NOT NULL.

Escrever = TRUE à toa. Às vezes a galera coloca coisa a mais, tipo WHERE is_active = TRUE. Não é erro, mas dá pra simplificar e deixar só WHERE is_active.

Usar string errado. O tipo lógico é bem rígido. Não dá pra escrever is_active = 'TRUE' ou is_active = 'FALSE'. Usa direto os valores TRUE, FALSE ou NULL.

Pra que serve isso?

Talvez tu pense: pra que complicar, colocando esse BOOLEAN? Por que não usar número, tipo 1 pra verdadeiro e 0 pra falso?

A resposta é simples: BOOLEAN deixa teu código e teus dados mais claros. Quando alguém olha pra uma tabela com o campo is_active, já saca que esse campo guarda uma coisa lógica (sim/não). Isso melhora a leitura do esquema do banco e deixa teu modelo de dados mais fácil de entender pra outros devs.

2
Tarefa
SQL SELF, nível 15, lição 3
Bloqueado
Interpretação textual de valor lógico
Interpretação textual de valor lógico
2
Tarefa
SQL SELF, nível 15, lição 3
Bloqueado
Filtragem por valor booleano
Filtragem por valor booleano
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION