8.3. ¹®ÀÚÇü

Table 8-4. ¹®ÀÚÇü

À̸§ ¼³¸í
character varying( n ), varchar( n ) »óÇÑ Ã·ºÎ °¡º¯±æÀÌ
character( n ), char( n ) °ø¹é¿¡¼­ ÆÐµå µÈ °íÁ¤±æÀÌ
text ¹«Á¦ÇÑ °¡º¯±æÀÌ

Table 8-4´Â PostgreSQL·Î »ç¿ë °¡´ÉÇÑ ¹ü¿ë ¹®ÀÚÇüÀ» ³ªÅ¸³½ °ÍÀÔ´Ï´Ù.

SQL´Â 2°³ÀÇ ÁÖ¿äÇÑ ¹®ÀÚ µ¥ÀÌÅÍÇüÀ» Á¤ÀÇÇϰí ÀÖ½À´Ï´Ù. character varying( n )¿Ícharacter( n )ÀÔ´Ï´Ù. ¿©±â¼­ n ´Â ¾çÀÇ Á¤¼öÀÔ´Ï´Ù. ÀÌ·¯ÇÑ µ¥ÀÌÅÍÇüÀº 2°³ ¸ðµÎ n ¹®ÀÚ ±æÀ̱îÁöÀÇ Ä³¸¯ÅÍ ¶óÀÎÀ» º¸Á¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÃʰúÇϰí ÀÖ´Â ¹®ÀÚ°¡ ¸ðµÎ °ø¹éÀÇ °æ¿ì¸¦ Á¦¿ÜÇØ, »óÇÑÀ» ³ÑÀº ij¸¯ÅÍ ¶óÀÎÀ» ÀÌ ÇüÅÂÀÇ ¿­¿¡ º¸Á¸ÇÏ·Á°í ÇÏ¸é ¿¡·¯°¡ µË´Ï´Ù. ¸ðµÎ °ø¹éÀÇ °æ¿ì´Â ±æÀÌÀÇ ÇѰ迡¼­ Àß¶ó ¹ö¸± ¼ö ÀÖ½À´Ï´Ù (ÀÌ Ç³°Ý ¹Ù²ï ¿¹¿Ü´Â Ç¥ÁØSQL·Î ¿ä±¸µÇ°í ÀÖ½À´Ï´Ù). ¸¸¾à ¼±¾ðµÈ »óÇѺ¸´Ù ij¸¯ÅÍ ¶óÀÎÀÌ ÂªÀ» ¶§´ÂcharacterÀÇ °ªÀº °ø¹é¿¡¼­ ¹¯À» ¼ö ÀÖ¾î character varyingÀÇ °ªÀº ´ÜÁö ±× ªÀº ij¸¯ÅÍ ¶óÀÎÀ¸·Î º¸Á¸µË´Ï´Ù.

¸í½ÃÀûÀ¸·Î °ªÀ» character varying( n )¶Ç´Âcharacter( n )¿¡ ij½ºÆ® ÇßÀ» °æ¿ì, ÁöÁ¤ ±æÀÌÀ» ³ÑÀ¸¸é ¿¡·¯¾øÀÌ n ¹®ÀÚ±îÁö Àý¾àÇÒ ¼ö ÀÖ½À´Ï´Ù. (À̰͵µ ¶Ç Ç¥ÁØSQLÀÇ »ç¾çÀÔ´Ï´Ù. )

char( n )¹×varchar( n )¶ó°í Çϴ ǥ±â¹ýÀº °¢°¢character( n )¿Ícharacter varying( n )ÀÇ º°¸íÀÔ´Ï´Ù. ±æÀÌ ÁöÁ¤ÀÌ ¾ø´Âcharacter´Âcharacter(1)¿Í °°½À´Ï´Ù. character varying°¡ ±æÀÌ ÁöÁ¤¾øÀÌ »ç¿ëµÇ¾úÀ» ¶§´Â, ¾î¶°ÇÑ ±æÀÌÀÇ Ä³¸¯ÅÍ ¶óÀο¡¼­µµ ¹Þ¾ÆµéÀÔ´Ï´Ù. ÈÄÀÚ´ÂPostgreSQLÀÇ È®ÀåÀÔ´Ï´Ù.

ÇÑÃþ ´õPostgreSQL´Â, ¾î¶°ÇÑ ±æÀÌÀÇ Ä³¸¯ÅÍ ¶óÀο¡¼­µµ ÀúÀåÇÒ ¼ö ÀÖ´Âtext¸¦ ¼­Æ÷Æ®ÇÕ´Ï´Ù. textÇüÀº Ç¥ÁØSQL¿¡´Â ¾øÁö¸¸, ¸¹Àº ´Ù¸¥ SQL µ¥ÀÌÅͺ£À̽º °ü¸® ½Ã½ºÅÛµµ ÀÌ¿Í °°ÀÌ ¼­Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù.

characterÇüÀÇ °ªÀº, ÁöÁ¤ Æø n °¡ µÉ ¶§±îÁö ¹°¸®ÀûÀ¸·Î °ø¹é¿¡ ³ÖÀ» ¼ö ÀÖ¾î ±×´ë·Î ÀúÀåµÇ°í Ç¥½ÃµË´Ï´Ù. ±×·¯³ª, Ãß°¡µÈ °ø¹éÀº ÀǹÌÀûÀ¸·Î Áß¿äÇÏÁö ¾Ê´Â °ÍÀ¸·Î¼­ ´Ù·ç¾îÁý´Ï´Ù. ¸¶Áö¸· °ø¹éÀº, 2°³ÀÇcharacterÇüÀÇ °ªÀ» ºñ±³ÇÏ·Á¸é ¹«½ÃµË´Ï´Ù. ¶Ç,characterÄ¡¸¦ ´Ù¸¥ ij¸¯ÅÍ ¶óÀÎÇüÀ¸·Î º¯È¯ÇÏ·Á¸é Á¦°ÅµË´Ï´Ù. character varyingÇü°útextÇüÀÇ °ªÀ¸·Î´Â, ¸¶Áö¸· °ø¹éÀº ÀǹÌÀûÀ¸·Î Áß¿ä ÀÎ °Í À̹ǷÎ, ÁÖÀÇÇØ ÁÖ¼¼¿ä.

ÀÌ·¯ÇÑ µ¥ÀÌÅÍÀÇ Å¸ÀÔÀº 4¹ÙÀÌÆ®°¡ ÀúÀåÀ» À§ÇØ ÇÊ¿äÇÕ´Ï´Ù. ½ÇÁ¦ÀÇ ¹®ÀÚ¿­ÀÌ ´õÇÑ »çÀÌÁî°¡ ÇÊ¿äÇÏ¸ç ¸¸ÀÏÀÇ °æ¿ì ÆÐµùÀ¸·Î ´õÇØÁø character ŸÀÔµµ ´õÇØÁý´Ï´Ù. ±ä ij¸¯ÅÍ ¶óÀÎÀº ½Ã½ºÅÛ¿¡ ÀÇÇØ ÀÚµ¿ÀûÀ¸·Î ¾ÐÃàµÇ±â ¶§¹®¿¡, µð½ºÅ©»óÀÇ ¹°¸®Àû ÇÊ¿ä ¿ë·® »çÀÌÁî´Â º¸´Ù ÀÛ¾ÆÁúÁöµµ ¸ð¸¨´Ï´Ù ¶Ç, ¸Å¿ì ±ä °ªÀº º¸´Ù ªÀº ¿­ÀÇ °ª¿¡ÀÇ °í¼Ó ¾×¼¼½º¿¡ °£¼·ÇÏÁö ¾Ê°Ô, ¹é±×¶ó¿îµå Å×ÀÌºí¿¡ ÀúÀåµË´Ï´Ù. ¾î´À °æ¿ì¿¡ À־ º¸Á¸ÇÒ ¼ö ÀÖ´Â ÃÖÀåÀÇ Ä³¸¯ÅÍ ¶óÀÎÀº ¾à 1±â°¡¹ÙÀÌÆ®ÀÔ´Ï´Ù (µ¥ÀÌÅÍÇü ¼±¾ð¿¡ »ç¿ëµÇ´Â n ¿¡ ¿ë¼­µÇ´Â ÃÖ´ëÄ¡´Â À̰ͺ¸´Ù ÀÛÀº °ÍÀÔ´Ï´Ù ¸ÖƼ ¹ÙÀÌÆ® ¹®ÀÚ encode ¹æ½Ä¿¡ ´ëÇØ ¹®ÀÚ¼ö¿Í ¹ÙÀÌÆ®¼ö´Â ¿ÏÀüÈ÷ Â÷À̰¡ ³ª±â ¶§¹®¿¡, ÀÌ °ªÀÇ º¯°æÀº ±×¸¸Å­ Æí¸®ÇÏÁö´Â ¾Ê½À´Ï´Ù. ƯÁ¤ÀÇ »óÇѼ±À» ¸¶·ÃÇÏÁö ¾Ê°í ±ä ij¸¯ÅÍ ¶óÀÎÀ» º¸Á¸ÇÏ°í ½ÍÀº °æ¿ì´Â, ÀÓÀÇÀÇ »óÇÑÀ» ¸¶·ÃÇÏ´Â °Íº¸´Ùµµ ±æÀÌÀÇ ÁöÁ¤ÀÌ ¾ø´ÂtextȤÀºcharacter varying¸¦ »ç¿ëÇØ ÁÖ¼¼¿ä).

Tip: °ø¹é¿¡¼­ ÆÐµå µÇ´Â ÇüŸ¦ »ç¿ëÇßÀ» °æ¿ìÀÇ º¸Á¸ ¿µ¿ªÀÇ Áõ°¡¿Í ´Þ¸® À̰͵é 3°³ÀÇ ÇüÅÂÀÇ »çÀÌ¿¡ ¼º´É¿¡ °üÇÑ Â÷ÀÌ´Â ¾ø½À´Ï´Ù. ´Ù¸¥ ÀϺÎÀÇ µ¥ÀÌÅͺ£À̽º ½Ã½ºÅÛ¿¡¼­´Âcharacter( n )¿¡´Â ¼º´ÉÀûÀÎ ¿ìÀ§¼ºÀÌ ÀÖ½À´Ï´Ù¸¸,PostgreSQL¿¡¼­´Â ÀÌ·¯ÇÑ ÀÌÁ¡Àº ¾ø½À´Ï´Ù. ´ëºÎºÐÀÇ »óȲ¿¡¼­´Â, ´ë½Å¿¡text³ªcharacter varying°¡ »ç¿ëµË´Ï´Ù.

ij¸¯ÅÍ ¶óÀÎ ¸®ÅÍ·²ÀÇ ±¸¹®¿¡ ´ëÇØ¼­´ÂSection 4.1.2.1, ÀÌ¿ë °¡´ÉÇÑ ¿¬»êÀÚ¿Í ÇÔ¼ö¿¡ ´ëÇØ¼­´ÂChapter 9À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä. µ¥ÀÌÅͺ£À̽ºÀÇ Ä³¸¯ÅÍ ¼¼Æ®´Â, ÅØ½ºÆ®ÀÇ °ªÀ» ÀúÀåÇÒ ¶§¿¡ »ç¿ëµÇ´Â ij¸¯ÅÍ ¼¼Æ®¸¦ °áÁ¤ÇÕ´Ï´Ù. ij¸¯ÅÍ ¼¼Æ®ÀÇ ¼­Æ÷Æ®¿¡ °üÇÑ »ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´ÂSection 21.2À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.

Example 8-1. ¹®ÀÚ µ¥ÀÌÅÍÇü »ç¿ë

CREATE TABLE test1 (a character(4));
INSERT INTO test1 VALUES ('ok');
SELECT a, char_length(a) FROM test1; -- 
(1)

  a   | char_length
------+-------------
 ok   |           2

CREATE TABLE test2 (b varchar(5));
INSERT INTO test2 VALUES ('ok');
INSERT INTO test2 VALUES ('good      ');
INSERT INTO test2 VALUES ('too long');
ERROR:  value too long for type character varying(5)
INSERT INTO test2 VALUES ('too long'::varchar(5)); -- explicit truncation
SELECT b, char_length(b) FROM test2;
   b   | char_length
-------+-------------
 ok    |           2
 good  |           5
 too l |           5
(1)
char_lengthÇÔ¼ö´ÂSection 9.4À¸·Î ¼³¸íµÇ°í ÀÖ½À´Ï´Ù.

PostgreSQL¿¡´Â,Table 8-5¿¡ ³ªÅ¸³»µµ·Ï ÀÌ Å¸2°³ÀÇ °íÁ¤ ±æÀÌ ¹®ÀÚÇüÀÌ ÀÖ½À´Ï´Ù. nameÇüÀº ³»ºÎÀÇ ½Ã½ºÅÛ Ä«Å»·Î±×³»ÀÇ ½Äº°ÀÚÀÇ ÀúÀåÀ» À§Çؼ­ ¸¶¼Å Á¸ÀçÇØ¼­ , ÀÏ¹Ý À¯Àú¿¡ ÀÇÇØ »ç¿ëµÇ´Â °ÍÀ» ÀǵµÇϰí ÀÖ½À´Ï´Ù. ÇöÀç ±æÀÌ´Â 64¹ÙÀÌÆ®(63¹ÙÀÌÆ®ÀÇ ÀÌ¿ë °¡´É ¹®ÀÚ¿Í Á¾°á ¹®ÀÚ)·Î Á¤Àǵǰí ÀÖ½À´Ï´Ù¸¸,NAMEDATALEN»ó¼ö¸¦ »ç¿ëÇØ ÂüÁ¶µÉ Çʿ䰡 ÀÖ½À´Ï´Ù. ÀÌ ±æÀÌ´Â ÄÄÆÄÀϽ÷Π¼³Á¤µË´Ï´Ù(±× ¶§¹®¿¡ Ưº°ÇÑ ¿ëµµ¿¡ ¸ÂÃß°í Á¶Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù). µðÆúÆ®ÀÇ ÃÖ´ë ±æÀÌ´Â ÇâÈÄÀÇ ¸±¸®½º·Î º¯°æµÉ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. "char"(ÀÌÁß ÀοëºÎÈ£¿¡ ÁÖÀÇ)´Â,char(1)°ú´Â ´Þ¸®, 1¹ÙÀÌÆ®ÀÇ ¿µ¿ª ¹Û¿¡ »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù. ¾È ÁÁÀº ¿­°ÅÇüÀ¸·Î¼­ ½Ã½ºÅÛ Ä«Å»·Î±×¿¡¼­ ³»ºÎÀûÀ¸·Î »ç¿ëµË´Ï´Ù.

Table 8-5. Ưº°ÇÑ ¹®ÀÚ µ¥ÀÌÅÍÇü

À̸§ ÀúÀå Å©±â ¼³¸í
"char" 1¹ÙÀÌÆ® ´ÜÀÏ ¹ÙÀÌÆ® ³»ºÎ µ¥ÀÌÅÍÇü
name 64¹ÙÀÌÆ® ¿ÀºêÁ§Æ®¸í¿ëÀÇ ³»ºÎ µ¥ÀÌÅÍÇü