?
このドキュメントでは、 php中國(guó)語(yǔ)ネットマニュアル リリース
位串就是一串1和0的字符串。它們可以用于存儲(chǔ)和直觀化位掩碼。 我們有兩種SQL位類(lèi)型:bit(n)和bit varying(n),這里的n是一個(gè)正整數(shù)。
bit類(lèi)型的數(shù)據(jù)必須準(zhǔn)確匹配長(zhǎng)度n, 試圖存儲(chǔ)短些或者長(zhǎng)一些的數(shù)據(jù)都是錯(cuò)誤的。 bit varying類(lèi)型數(shù)據(jù)是最長(zhǎng)n的變長(zhǎng)類(lèi)型; 更長(zhǎng)的串會(huì)被拒絕。寫(xiě)一個(gè)沒(méi)有長(zhǎng)度的bit 等效于bit(1),沒(méi)有長(zhǎng)度的vbit varying意思是沒(méi)有長(zhǎng)度限制。
Note: 如果我們明確地把一個(gè)位串值轉(zhuǎn)換成bit(n), 那么它的右邊將被截?cái)嗷蛘咴谟疫呇a(bǔ)齊零, 直到剛好n位,而不會(huì)拋出任何錯(cuò)誤。類(lèi)似地, 如果我們明確地把一個(gè)位串?dāng)?shù)值轉(zhuǎn)換成bit varying(n), 如果它超過(guò)了n位,那么它的右邊將被截?cái)唷?
請(qǐng)參考Section 4.1.2.5獲取有關(guān)位串常量的語(yǔ)法信息。 還有一些位邏輯操作符和位處理函數(shù)可用;參見(jiàn)Section 9.6。
Example 8-3. 使用位串類(lèi)型
CREATE TABLE test (a BIT(3), b BIT VARYING(5)); INSERT INTO test VALUES (B'101', B'00'); INSERT INTO test VALUES (B'10', B'101'); ERROR: bit string length 2 does not match type bit(3) INSERT INTO test VALUES (B'10'::bit(3), B'101'); SELECT * FROM test; a | b -----+----- 101 | 00 100 | 101
位字符串值需要1字節(jié),每組8位,增加5或8字節(jié)的開(kāi)銷(xiāo)取決于字符串的長(zhǎng)度(Section 8.3中有相關(guān)解釋?zhuān)?