Prévia do material em texto
Representar dados booleanos no SQL Server com BIT Não há um tipo de dados boolean específico no SQL Server. Porém, podemos usar o tipo de dados inteiros BIT para representar dados booleanos quando necessário. Um campo que utilize o tipo BIT pode armazenar os valores 0, 1 e NULL. O valor 0 pode representar o valor lógico FALSE, enquanto o valor 1 pode representar o valor lógico TRUE. Na prática, qualquer valor numérico atribuído a um campo BIT que não seja 0 será avaliado como 1 (ou seja, TRUE). Assim, temos os seguintes valores possíveis para um campo BIT: · 0 = FALSE · 1 = TRUE · NULL Recomenda-se que, ao usarmos o tipo BIT para representar valores lógicos, o campo seja declarado como NOT NULL, para evitar a existência de um estado indefinido para o campo em questão (“lógica de três valores”). Este tipo de dado é muito empregado para armazenar valores do tipo sim / não, como por exemplo o status de envio de um produto, disponibilidade de um item e outras informações que sejam representadas por valores binários, ocupando muito pouco espaço de armazenamento no banco de dados. Porém, note que o tipo BIT não é realmente equivalente a um tipo Boolean. Ele se comporta como um tipo integer, porém com o intervalo de valores possíveis restrito a 0 e 1 (e NULL, se não for usada uma restrição NOT NULL ao criar o campo). Caso um valor maior que 1 seja atribuído a um campo BIT, ele será armazenado exatamente com o valor 1, pois qualquer valor diferente de zero será interpretado como um. Note também que, ao usarmos o tipo BIT em uma coluna, não é possível usar essa coluna em uma expressão que contenha operadores booleanos, como AND e OR. Exemplo Vamos criar uma tabela com um campo de bit (booleano) para armazenar a situação de uma pessoa – se ela está aposentada ou não: CREATE TABLE StatusAP ( Cod INT PRIMARY KEY IDENTITY, Nome VARCHAR(40), Aposentado BIT NOT NULL ); Inserimos alguns dados na tabela para os testes: INSERT INTO StatusAP VALUES ('João', 1), ('Marta', 0), ('Renan', 0), ('Fábio', 0), ('Ana', 0), ('Amélia', 1); E então fazemos nossa primeira consulta para saber quais usuários estão aposentados: SELECT Nome FROM StatusAP WHERE Aposentado = 1; Resultado: Também é possível inserir dados em um campo BIT usando as palavras-chave TRUE e FALSE, que são interpretadas respectivamente como os bits 1 e 0 pelo SQL Server. Veja o exemplo: INSERT INTO StatusAP VALUES ('Renata', 'TRUE'), ('Monica', 'FALSE'); Verificando: SELECT * FROM StatusAP; Resultado: