8.10. ºñÆ® ¹®ÀÚ¿­ ÀÚ·áÇü

ºñÆ® ¹®ÀÚ¿­À̶õ 1°ú 0À¸·Î ±¸¼ºµÈ ¹®ÀÚ¿­ÀÌ´Ù. ÀÌ°ÍÀº ºñÆ® ¸¶½ºÅ© ÀúÀå°ú Ãâ·Â¿¡ À¯¿ëÇÏ°Ô »ç¿ëµÈ´Ù. ÀÌ ÀÚ·áÇüÀ¸·Î´Â bit(n) ¶Ç´Â bit varying(n) ÇüÅ·Π»ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç, n °ªÀ¸·Î ¾ç¼ö¸¦ »ç¿ëÇÑ´Ù.

bit ÀÚ·áÇüÀ¸·Î »ç¿ëÇÏ´Â ÀÚ·áÀÇ ±æÀÌ´Â n °ª°ú Á¤È®È÷ ¸Â¾Æ¾ßÇÑ´Ù; ¸¸ÀÏ ±× ÀÚ·áÀÇ ±æÀÌ°¡ Å©°Å³ª ÀÛÀ¸¸é ¿À·ù°¡ »ý±ä´Ù. bit varying ÀÚ·áÇüÀ¸·Î »ç¿ëÇÏ´Â ÀÚ·áÀÇ ±æÀÌ´Â n °ªÀÌ ÃÖ´ë ±æÀÌÀÌ´Ù; ÀÛÀ¸¸é ±¦Âú°í, Å©¸é ¿À·ù°¡ »ý±ä´Ù. ±æÀÌ°ªÀ» ÁöÁ¤ÇÏÁö ¾Ê°í, bit ¸¸À¸·Î ÁöÁ¤Çϸé, bit(1) ÇüÅ·Π»ç¿ëµÇ¸ç, bit varying ¸¸À¸·Î ÁöÁ¤Çϸé, ±æÀÌ Á¦ÇÑÀÌ ¾ø´Â ÇüÅ·Π»ç¿ëµÈ´Ù.

참고: ºñÆ® ÀÚ·áÇüÀ¸·Î ¹Ù²Ù°íÀÚ ÇÒ ¶§, bit(n) ÇüŸ¦ »ç¿ëÇÏ°Ô µÇ¸é, n ±æÀÌ ¸¸Å­ À߸®°Å³ª, 0À¸·Î ä¿öÁö¸é¼­ º¯È¯µÇ¸ç, bit varying(n) ÇüŸ¦ »ç¿ëÇÏ°Ô µÇ¸é, n ±æÀ̺¸´Ù Ŭ °æ¿ì´Â À߸®°í, ÀÛÀ» °æ¿ì´Â ¿ø·¡ ÀÚ·áÇüÀÇ º¯È¯µÈ ±æÀ̸¸Å­À¸·Î º¯È¯µÈ´Ù.

ºñÆ® ¹®ÀÚ¿­ ±¸¹®¿¡ ´ëÇÑ Á¤º¸´Â 4.1.2.5절À» ÂüÁ¶ÇÏ°í, ºñÆ® ¿¬»ê, °ü·Ã ÇÔ¼ö´Â 9.6절À» Âü°íÇϽöó.

예 8-7. ºñÆ® ¹®ÀÚ¿­ ÀÚ·áÇü »ç¿ëÇϱâ

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');
¿À·ù:  ±æÀÌ°¡ 2ÀÎ ºñÆ® ¹®ÀÚ¿­ ÀÚ·á´Â bit(3) ÀÚ·áÇüÀÇ ±æÀÌ¿Í ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù
INSERT INTO test VALUES (B'10'::bit(3), B'101');
SELECT * FROM test;
  a  |  b
-----+-----
 101 | 00
 100 | 101

A bit string value requires 1 byte for each group of 8 bits, plus 5 or 8 bytes overhead depending on the length of the string (but long values may be compressed or moved out-of-line, as explained in 8.3절 for character strings).