typ danych Bit & Boolean w SQL Server

typ danych bit SQL Server to 1 bitowy numeryczny typ danych. Jest również stosowany jako typ danych typu Boolean w SQL Server. Można przechowywać tylko 0, 1 lub NULL w typie danych bitowych. Gdy jest używany jako typ danych logicznych, 0 jest traktowane jako false, A 1 jako true.

Optymalizacja pamięci dla kolumny bitów

typ danych bitów potrzebuje tylko 1 bit pamięci. Ale bajt zawiera 8 bitów.

SQL Server optymalizuje przechowywanie kolumn bitowych poprzez scalanie innych kolumn bitowych w jeden bajt. Jeśli w tabeli jest 8 lub mniej kolumn bitowych, serwer SQL łączy je w 1 bajt. Jeśli istnieje od 9 do 16-bitowych kolumn, łączy je w 2 bajty.

typ danych Boolean

typ danych boolean jest typem danych, który może przechowywać wartość True lub False. W SQL serwerze nie ma osobnego typu danych Boolean. Dlatego zamiast tego używane są typy danych bitowych. Wartość 1 to true & 0 jako false

przykłady kolumny bitowej

Tworzenie tabeli z kolumną bitową lub logiczną

poniższe zapytanie pokazuje, jak utworzyć tabelę z kolumnami logicznymi bitów &

1
2
3
4
5
6
7

Utwórz tabelę testBit (
BIT col1,
BIT col2,
BIT col3,
);

bitowy i logiczny typ danych w SQL Server

Wstawianie wartości do kolumny bit / Boolean

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

insert into testBit
(col1, col2,col3)
wartości (1,0,null)
select * from testBit
——- ——- ——-
1 0 NULL

konwersja na Bit

Konwersja łańcuchów TRUE I FALSE daje 1 dla TRUE & 0 dla FALSE.

Konwersja innych ciągów powoduje błąd.

konwersja na bit Promuje dowolną wartość niezerową do 1.

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

wstaw do testBit
(col1, col2,col3)
wartości(’TRUE’, 'FALSE’,100)
select * from testBit
* * * Result
——- ——- ——-
1 0 1

Konwertuj kolumnę bitów na liczbę całkowitą

chociaż typ danych bitów jest typem danych number, możesz je dodać. Aby to zrobić, użyj funkcji cast, aby przekonwertować ją na liczbę całkowitą przed dodaniem ich

1
2
3
4

wybierz obsadę (col1 jako int) + obsadę(col1 jako int) + obsadę(col2 jako int)
z testBit

Write a Comment

Twój adres e-mail nie zostanie opublikowany.