Hasta ahora hemos aprendido a crear tablas y manipular datos mediante INSERT, SELECT, UPDATE y DELETE. Sin embargo, todav铆a no hemos hablado de una pregunta fundamental:
¿Qu茅 ocurre cuando no conocemos el valor de un dato?
Para responder esta pregunta, PostgreSQL utiliza el concepto de NULL.
馃 ¿Qu茅 es NULL?
NULL representa la ausencia de un valor.
No significa:
- Cero (
0) - Cadena vac铆a (
'') - Espacio en blanco (
' ')
Significa simplemente:
"No existe un valor almacenado para esta columna."
Por ejemplo, supongamos una tabla de empleados:
| id | nombre | telefono |
|---|---|---|
| 1 | Juan P茅rez | 555123456 |
| 2 | Ana L贸pez | NULL |
En este caso, no sabemos el tel茅fono de Ana L贸pez o simplemente no se ha registrado.
馃摝 ¿Cu谩ndo utilizar NULL?
Algunos ejemplos comunes son:
- Un cliente a煤n no ha proporcionado su tel茅fono.
- Un empleado no tiene fecha de baja.
- Un producto todav铆a no tiene descripci贸n.
- Un pedido a煤n no ha sido entregado.
En estos casos, permitir valores NULL tiene sentido.
馃敀 ¿Qu茅 es NOT NULL?
NOT NULL es una restricci贸n que obliga a proporcionar un valor para una columna.
Cuando una columna tiene la restricci贸n NOT NULL:
✅ Se debe proporcionar un valor.
❌ No se permite almacenar NULL.
馃彈️ Crear una tabla con NOT NULL
Supongamos que estamos creando una tabla de empleados.
En este ejemplo:
ides obligatorio.nombrees obligatorio.departamentoes opcional.salarioes opcional.
✅ Insertar datos v谩lidos
Este INSERT funciona correctamente:
Todos los campos obligatorios contienen un valor.
❌ Intentar insertar NULL en una columna NOT NULL
Ahora intentemos insertar un empleado sin nombre.
PostgreSQL devolver谩 un error similar a:
Esto ocurre porque la columna nombre fue definida como NOT NULL.
❌ Omitir una columna obligatoria
Tambi茅n obtendremos un error si omitimos una columna obligatoria.
Resultado:
Aunque no escribimos expl铆citamente NULL, PostgreSQL intent贸 asignarlo autom谩ticamente al no encontrar un valor para la columna.
✅ Insertar NULL en columnas que lo permiten
Las columnas sin NOT NULL aceptan valores nulos.
Este registro se insertar谩 correctamente.
馃攳 Consultar valores NULL
Veamos los datos:
Resultado:
⚠️ Comparar NULL correctamente
Uno de los errores m谩s comunes es intentar buscar valores NULL utilizando el operador =.
❌ Incorrecto
Esta consulta no devolver谩 resultados.
Forma correcta
Para buscar valores nulos se utilizan:
o
Buscar registros con NULL
Buscar registros con valor
馃И Ejemplo completo
Crear tabla
Insertar registro v谩lido
Insertar registro con campos opcionales
Funciona porque 煤nicamente se omitieron columnas que permiten NULL.
Intentar omitir un campo obligatorio
Resultado:
馃敡 Agregar NOT NULL a una columna existente
Tambi茅n es posible modificar una tabla ya creada.
Por ejemplo:
A partir de ese momento todos los registros nuevos deber谩n incluir un valor para nombre.
馃敡 Eliminar NOT NULL
Si posteriormente decidimos permitir valores nulos:
馃挕 Buenas pr谩cticas
Usa NOT NULL en datos obligatorios
Generalmente deber铆an ser obligatorios:
- Nombre de un cliente
- Nombre de un producto
- Correo electr贸nico (dependiendo del sistema)
- Fecha de creaci贸n
- Identificadores
Ejemplo:
No uses NOT NULL en informaci贸n opcional
Por ejemplo:
- Segundo apellido
- Comentarios
- Observaciones
- Fecha de baja
Estos campos suelen permitir valores nulos.
Define la obligatoriedad desde el dise帽o
Es m谩s f谩cil decidir desde el principio qu茅 datos son obligatorios que modificar tablas con millones de registros posteriormente.
✅ Conclusi贸n
NULL representa la ausencia de un valor, mientras que NOT NULL obliga a que una columna siempre tenga informaci贸n.
Los conceptos m谩s importantes son:
NULLno es cero ni una cadena vac铆a.- Las columnas permiten
NULLpor defecto. NOT NULLconvierte una columna en obligatoria.- Intentar insertar
NULLen una columnaNOT NULLgenera un error. - Para buscar valores nulos se utiliza
IS NULL. - Para buscar valores no nulos se utiliza
IS NOT NULL.
No hay comentarios:
Publicar un comentario