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

Tipo de dato lógico: BOOLEAN

SQL SELF
Nivel 15 , Lección 3
Disponible

Ya conoces los tipos de datos que almacenan números y texto. Ahora es el momento de hablar del tipo de dato lógico — BOOLEAN. Es probablemente el tipo de dato más "sincero", porque solo responde a dos preguntas: "Sí" o "No". Y a veces — "Quizás" (léase: NULL).

El tipo de dato lógico BOOLEAN guarda valores que solo pueden ser:

  • TRUE (verdadero);
  • FALSE (falso);
  • NULL (ausencia de valor).

Imagínate un interruptor: puede estar encendido TRUE, apagado FALSE o en estado desconocido NULL, si la bombilla de repente desapareció.

Se puede decir que el tipo de dato lógico es la base para tomar decisiones y lógica condicional en SQL. Sin él, no podrías construir un filtro decente en una consulta ni marcar el estado de algo.

Ejemplos de uso

El tipo de dato lógico se usa mucho en bases de datos. Aquí tienes algunos casos reales:

Flags y estados.

Por ejemplo, el campo is_active puede mostrar si un usuario está activo (TRUE) o no (FALSE).

SELECT username, is_active
FROM users 
WHERE is_active = TRUE;

Control de finalización.

Por ejemplo, el campo is_complete puede guardar información sobre si una tarea está terminada.

SELECT task_name
FROM tasks 
WHERE is_complete = FALSE;

Comprobación de disponibilidad.

El campo is_available puede reflejar si un producto está disponible en el almacén.

¿Cómo usar BOOLEAN en PostgreSQL?

El tipo de dato lógico en PostgreSQL se llama simplemente BOOLEAN. Vamos a crear una tabla y añadirle algunas columnas:

  • Identificador único de la tarea
  • Nombre de la tarea
  • Estado lógico de finalización de la tarea

Después, vamos a añadir algunos registros a la tabla:

task_id task_name - VARCHAR(255) is_complete - BOOLEAN
1 Escribir informe false
2 Ir a la tienda true
3 Leer un libro null

Extracción de datos

Ahora veamos cómo extraer datos según el valor lógico. Por ejemplo, para obtener solo las tareas no completadas, escribimos:

SELECT task_name
FROM tasks 
WHERE is_complete = FALSE;

Esta consulta solo devolverá las tareas donde is_complete es igual a FALSE.

Resultado:

task_name
Escribir informe

Características de trabajar con BOOLEAN

Filtrado de valores

Para trabajar con el tipo lógico puedes usar la siguiente sintaxis:

  • = TRUE — si quieres indicar explícitamente que el valor es verdadero.
  • = FALSE — si quieres seleccionar los valores falsos.
  • IS NULL — si quieres seleccionar registros sin valor.

Ejemplo:

SELECT task_name
FROM tasks 
WHERE is_complete IS NULL;

Simplificación de condiciones

PostgreSQL es tan "listo" que muchas veces ni siquiera necesitas escribir = TRUE explícitamente. Por ejemplo:

SELECT task_name
FROM tasks 
WHERE is_complete;

Esta consulta es equivalente a WHERE is_complete = TRUE.

Errores típicos al trabajar con BOOLEAN

Cuando empiezas a trabajar con un tipo de dato nuevo, es normal cometer errores. Aquí tienes algunos problemas típicos que pueden aparecer:

Comparación con NULL. Los principiantes a menudo escriben is_active = NULL. Pero NULL no se puede comparar con =. Para comprobar si un valor es NULL, usa IS NULL o IS NOT NULL.

Indicar explícitamente = TRUE. A veces los programadores añaden construcciones innecesarias como WHERE is_active = TRUE. No es un error, pero puedes simplificarlo dejando solo WHERE is_active.

Uso incorrecto de cadenas. El tipo lógico es fuertemente tipado. No puedes escribir is_active = 'TRUE' o is_active = 'FALSE'. Usa directamente los valores TRUE, FALSE o NULL.

¿Para qué sirve esto?

Quizás te preguntes: ¿por qué complicarse la vida añadiendo este BOOLEAN? ¿Por qué no usar simplemente números, donde 1 es verdadero y 0 es falso?

La respuesta es sencilla: BOOLEAN hace que tu código y tus datos sean más expresivos. Cuando alguien ve una tabla con el campo is_active, queda claro al instante que ese campo guarda una entidad lógica (sí/no). Esto mejora la legibilidad del esquema de la base de datos y hace que tu modelo de datos sea más comprensible para otros desarrolladores.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION