SQL Not Null: Restricción en columna

La especificación SQL  NOT NULL para una columna, garantiza que todos los campos de esa columna contendrán un valor. Se devuelve un error si intenta insertar datos de fila que no tienen un valor para la columna o tienen un NULL para la columna.

Si se especifica una restricción SQL NOT NULL para una columna en una declaración ALTER TABLE, también se debe especificar una restricción DEFAULT o WITH DEFAULT a menos que la tabla esté vacía.

Esto garantiza que cualquier campo vacío en esa columna se proporcionará con valores predeterminados de conformidad con la especificación NOT NULL.

Configurar columna SQL not null con Management Studio

  1. Clic derecho en la tabla a configurar
  2. Hacer Clic en Diseño en el menú contextual

sql not null

Aparecerá la siguiente ventana

sql not null

Observe la imagen de arriba, donde la casilla de verificación Nombre, Apellido, correo electrónico.. son Columna activa  y Permitir valores nulos está marcada, lo que significa que estos campos aceptarán valores nulos en la tabla de la base de datos. por el contrario; el campo ID no esta marcado por lo que no permite valores nulos.

Recomendación: como mejor práctica, considere especificar en una tabla SQL NOT NULL para todas las columnas a menos que haya una razón válida para permitir valores nulos.
Si una columna debe contener valores nulos, asegúrese de comprender qué significa NULL para la columna, ya que NULL tiene muchas interpretaciones. En algunos casos, es mejor definir un valor predeterminado no nulo en lugar de permitir valores nulos. 

 si no se colocan realmente nulos en la columna, cada fila tendrá un bit de presencia para que la columna indique su anulabilidad. Esto puede causar un aumento en el tamaño de la fila si se requiere un byte de presencia adicional para acomodar este bit de presencia. Si la columna no debe tener nulos, especificar en SQL NOT NULL elimina la necesidad del bit de presencia y potencialmente ahorra un byte por fila.

Especificar en SQL NOT NULL también permite una mejor optimización de algunas consultas, ya que se puede evitar el procesamiento adicional para manejar los valores nulos, o el potencial de los valores nulos en una columna.

SQL NOT NULL al Crear una tabla

Ahora vamos a ver como usamos en sql Not Null para indicar que las columnas «cod_produ»,«produ_decripcion», «produ_Cantidad» y «produ_venta» NO acepten valores NULO cuando se cree la tabla «Productos»:

CREATE TABLE Productos(
   cod_produ int NOT NULL,
   produ_decripcion varchar(255) NOT NULLL,
   produ_ubicacion varchar(255) NOT NULLL,
   produ_Cantidad  int NOT NULL,
   produ_Ventas int

NOT NULL en SQL usando ALTER TABLE

Es muy posible que después de crear una tabla, cuando comience a usarla, descubra que olvidó mencionar la restricción SQL NOT NULL.

En tal situación, puede usar la ALTER TABLE declaración para alterar o cambiar una tabla existente agregando, cambiando o eliminando una columna en la tabla.  Ejemplo con la columna Cod_produ.

ALTER TABLE EMPLEADO modify Cod_produ int NOT NULL;

¿Cómo eliminar la restricción NOT NULL en SQL?

El comando ALTER TABLE también ayuda a eliminar la restricción NOT NULL en SQL. En algunas situaciones, puede ser necesario eliminar la restricción NOT NULL de algunas columnas de nuestra tabla. Supongamos que la tabla CALIFICACIONES se crea utilizando la siguiente consulta:

ALTER TABLE EMPLEADO
 ALTER Column Em_ombre VARCHAR  NULL;

La columna Emp_nombre no permiten valores NULL debido a la restricción NOT NULL que se le aplica. Pero supongamos que quiere permitir valores NULOS en la columna. ¿Cómo eliminamos la restricción NOT NULL? Hacemos uso de la cláusula ALTER TABLE.

Uso de la restricción NOT NULL con la consulta de selección

Ahora, recuperaremos solo la cantidad de registros de la tabla EMPLEADO que no tendrán un valor NULL en la columna de tiempo de estado de unión. Para esto, usaremos la restricción IS NOT NULL en nuestra declaración SELECT, y nuestra declaración de consulta será la siguiente:

SELECT * 
FROM empleados 
WHERE nombre IS NOT NULL;

Usando la restricción NOT NULL con el comando Update

Al actualizar los registros, puede haber un escenario en el que desee actualizar solo aquellos registros que tienen valores de ciertas columnas establecidos en algún valor NO NULO. Supongamos en nuestra tabla anterior; tenemos que actualizar el contenido de la tabla EMPLEADO y establecer el valor de la columna SUELDO en 30000 para los registros que no tienen un valor NULL en la columna en NOMBRE. En este caso, podemos usar la siguiente declaración de consulta para actualizar nuestros registros.

UPDATE Empleado SET sueldo = 30000 WHERE nombre IS NOT NULL;

Resumen

 NOT NULL se puede especificar en el momento de la creación de la tabla con el comando CREATE TABLE o más tarde mediante la instrucción ALTER TABLE. La restricción también se puede eliminar si no se requiere en un momento posterior mediante una sentencia ALTER TABLE. También vimos que las columnas con este tipo de restricción se pueden manipular con is not null. Gracia por llegar hasta aquí.

Deja un comentario