¿Cómo agregar una columna de tipo de datos booleano a una tabla existente en SQL?

En SQL Server, se puede crear un tipo de datos booleano manteniendo el tipo de datos BIT. Aunque es un tipo de datos numérico, solo puede aceptar valores 0 o 1 o NULL. Por lo tanto, fácilmente podemos asignar valores FALSO a 0 y valores VERDADEROS a 1. Esto proporcionará la naturaleza booleana para un tipo de datos. 

Con respecto al almacenamiento, si hay menos de 9 columnas de datos de bit en la tabla, se almacenan como 1 byte. Y para columnas de 9 a 16 BIT, su consumo es de 2 bytes y así sucesivamente. En este artículo, veamos cómo podemos agregar un tipo de datos booleano, es decir, BIT, a una tabla existente en SQL SERVER.

Supongamos que hay una base de datos «GEEKSFORGEEKS» disponible y hay una tabla llamada «Autores» disponible con los siguientes datos.

Consulta:

USE GEEKSFORGEEKS
SELECT * FROM Authors;

Producción:

Agreguemos un tipo de datos BIT a la tabla «Autores». El tipo de datos Bit es útil para representar la naturaleza booleana, ya sea True(1) o False(0) y son los únicos valores permitidos para el tipo de datos BIT.

-- Add a column named "isActiveAuthor" 
with BIT datatype for "Authors" table
ALTER TABLE Authors  ADD isActiveAuthor BIT;

Como ya hay pocas filas disponibles en la tabla, podemos agregar una nueva columna «isActiveAuthor» solo como un patrón NULL. Después de eso, podemos actualizar los datos. Después de agregar la columna, 

Consulta:

SELECT * FROM Authors;

Producción:

Por lo tanto, cuando se agrega una columna de tipo de datos BIT a una tabla existente, su valor se completará con valores «NULL».

Ahora intentemos actualizar la columna con la condición de que si «NumberOfPosts» > 5, configure «isActiveAuthor» para que tenga el valor 1 o 0. 

-- Let us assume that if "NumberOfPosts" 
   is more than 5, author is active enough to write articles
-- Hence for this condition , set "isActiveAuthor"
   column to have value 1
UPDATE Authors SET isActiveAuthor = 1 WHERE NumberOfPosts > 5;

-- On the other hand, if "NumberOfPosts"
   is less  than and equal to 5, 
-- author is not active in the recent days
   and hence set "isActiveAuthor" column to have value 0
UPDATE Authors SET isActiveAuthor = 0 WHERE NumberOfPosts <= 5;

SELECT * FROM Authors;

Producción:

Como la columna BIT solo admite 0 o 1 como valores, hemos rellenado como se indica arriba.

Intentemos actualizar el valor que no sea 0 o 1 

-- Trying to update the "isActiveAuthor"
   with value 2, though errors are not 
   produced, output is different
UPDATE Authors SET isActiveAuthor = 
2 WHERE NumberOfPosts = 5;

SELECT * FROM Authors;

Producción:

Motivo del valor actualizado de 1 en la tercera fila:

Aunque se proporciona una actualización para obtener el valor de 2, debido al tipo de datos «BIT» para la columna «isActiveAuthor», su valor se convierte a 1 solo porque el tipo de datos «BIT» solo admite 0 o 1. es decir, los valores distintos de 0 se convierten en 1 y se actualizan en la tabla.

Podemos comprobar lo mismo aquí con diferentes ejemplos.

DECLARE @isValid BIT

-- Initially it will have "NULL" value 
SELECT @isValid AS BitType
 
--Assigning any nonzero value converts it to 1
-- i.e. other than 0, if any
   value is provided , it is converted to 1
SET @isValid=9
 
SELECT @isValid AS BitType
 
--Assigning any nonzero value converts it to 1
SET @isValid=-100
 
SELECT @isValid AS BitType

Producción:

Esto prueba que el tipo de datos «BIT» acepta solo el valor «booleano», es decir, solo 0 o 1. Si se da un valor distinto de cero, se convierte a 1 solamente.

ventajas :

  • Siempre que los valores esperados sean 0 o 1 más NULL, es un buen enfoque mantener la columna como tipo de datos «BIT» a medida que el código se vuelve lógico.
  • En cuanto al almacenamiento, su uso es económico ya que ocupa un poco de espacio en comparación con otros tipos de datos.

Al considerar las ventajas, el tipo de datos BIT es el enfoque correcto para almacenar datos booleanos

Publicación traducida automáticamente

Artículo escrito por priyarajtt y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *