Bit & Boolean datový typ v SQL Server

SQL Server bit datový typ je 1 bit číselný datový typ. Používá se také jako booleovský datový typ v SQL Serveru. V bitovém datovém typu můžete uložit pouze 0, 1 nebo NULL. Při použití jako booleovský datový typ se 0 považuje za false a 1 za true.

optimalizace úložiště bitového sloupce

bitový datový typ potřebuje pouze 1 bit úložiště. Ale bajt obsahuje 8 bitů.

SQL Server optimalizuje ukládání bitových sloupců sloučením dalších bitových sloupců do jednoho bajtu. Pokud je v tabulce 8 nebo méně bitových sloupců, SQL server je kombinuje do 1 bajtu. Pokud existuje 9 až 16bitových sloupců, kombinuje je do 2 bajtů.

booleovský datový typ

booleovský datový typ je datový typ, který může ukládat hodnotu True nebo False. Neexistuje žádný samostatný booleovský datový typ v SQL Serveru. Proto se místo toho používají bitové datové typy. Hodnota 1 je true & 0 jako false

příklady bitového sloupce

vytvoření tabulky s bitovým nebo booleovským sloupcem

následující dotaz ukazuje, jak vytvořit tabulku s bitem & Booleovské sloupce

1
2
3
4
5
6
7

vytvořit tabulku testBit (
col1 BIT,
col2 BIT,
col3 BIT,
col3 BIT,
);

bitový A booleovský datový typ v SQL Serveru

vkládání hodnot do sloupce bit/Boolean

1
2
3
4
5
6
7
8
9
10
11
12

vložit do testBit
(col1, col2,col3)
hodnoty (1,0, null)
vyberte * z testBit
——- ——- ——-
1 0 NULL

převod na Bit

hodnoty konvertujícího řetězce TRUE a FALSE vedou k 1 pro TRUE & 0 pro FALSE.

převod dalších řetězců má za následek chybu.

převod na bit podporuje libovolnou nenulovou hodnotu na 1.

1
2
3
4
5
6
7
8
9
10
11
12

vložit do testBit
(col1, col2,col3)
hodnoty (‚TRUE‘, ‚FALSE‘,100)
vyberte * z testBit
* * * výsledek
——- ——- ——-
1 0 1

převést bitový sloupec na celé číslo

ačkoli bitový datový typ je číselný datový typ, můžete je přidat. Chcete-li to provést, použijte funkci cast převést na celé číslo před jejich přidáním

1
2
3
4

vyberte obsazení(col1 jako int) + obsazení(col1 jako int) + obsazení (col2 jako int)
z testBit

Write a Comment

Vaše e-mailová adresa nebude zveřejněna.