ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
DB ÀÎÄÚµù ÄÁ¹öÀü

ÀÛ¼ºÀÚ: ½Å±â¹è(¼ÒŸ) nonun@nate.com

Contents

1 ÀÎÄÚµù
2 ¼­¹ö ÀÎÄÚµù
3 Ŭ¶óÀÌ¾ðÆ® ÀÎÄÚµù
4 ÀÎÄÚµù Á¦¾à
5 ÀÎÄÚµù º¯È¯ Ç¥
6 Âü°í ÀÚ·á
6.1 libpq ÀÎÅÍÆäÀ̽º
6.2 PostgreSQL ¸Å´º¾ó


1 ÀÎÄÚµù

  • PostgreSQLÀº ¸¹Àº ¾ð¾î ÀÎÄÚµù/ÄÁ¹öÀüÀ» Áö¿øÇÑ´Ù.
  • Çѱ۰ú °ü·ÃµÇ¾î 3°¡ÁöÀÇ ÀÎÄÚµùÀ» Áö¿øÇÑ´Ù. EUC_KR, UNICODE, UHC

2 ¼­¹ö ÀÎÄÚµù


[root@linux root]# createdb --help 
createdb creates a PostgreSQL database. 
 
Usage: 
  createdb [OPTION]... [DBNAME] [DESCRIPTION] 
 
Options: 
  -D, --location=PATH       alternative place to store the database 
  -E, --encoding=ENCODING   encoding for the database 
  -O, --owner=OWNER         database user to own the new database 
  -T, --template=TEMPLATE   template database to copy 
  -e, --echo                show the commands being sent to the server 
  -q, --quiet               don't write any messages 
  --help                    show this help, then exit 
  --version                 output version information, then exit 
 
Connection options: 
  -h, --host=HOSTNAME       database server host or socket directory 
  -p, --port=PORT           database server port 
  -U, --username=USERNAME   user name to connect as 
  -W, --password            prompt for password 
 
By default, a database with the same name as the current user is created. 
 
Report bugs to <pgsql-bugs@postgresql.org>. 
 
  • Àß º¸½Ã¶ó. DB¸¶´Ù ÀÎÄÚµùÀ» ´Ù¸£°Ô ¼³Á¤ÇÒ ¼ö ÀÖ´Ù.

    [root@linux root]# createdb -E UNICODE root 
    CREATE DATABASE 
    [root@linux root]# psql 
    Welcome to psql 7.4.1, the PostgreSQL interactive terminal. 
     
    Type:  \copyright for distribution terms 
           \h for help with SQL commands 
           \? for help on internal slash commands 
           \g or terminate with semicolon to execute query 
           \q to quit 
     
    root=# SHOW server_encoding ; 
     server_encoding 
    ----------------- 
     UNICODE 
    (1 row) 
     
  • À¯´ÏÄÚµå·Î DB°¡ ¸¸µé¾îÁ³´Ù.

  • 3 Ŭ¶óÀÌ¾ðÆ® ÀÎÄÚµù

    • ±×·¸´Ù¸é ÀÎÄÚµù ÄÁ¹öÀüÀº ¾ðÁ¦ ÀϾ´Â°¡?
    • UNICODE·Î »ý¼ºµÈ DB´Â UNICODE·Î µ¥ÀÌÅ͸¦ ÀÔ·ÂÇØÁà¾ß¸¸ ÇÑ´Ù. (Àû¾îµµ ´Ù¸¥ DBMS¿¡¼­´Â ±×·² °ÍÀÌ´Ù.) ÇÏÁö¸¸ ´ëºÎºÐÀÇ °æ¿ì¿¡¼­ pgsqlÀº ±×·² Çʿ䰡 ¾ø´Ù.


      root=# SHOW server_encoding ; 
       server_encoding 
      ----------------- 
       UNICODE 
      (1 row) 
       
      root=# SHOW client_encoding ; 
       client_encoding 
      ----------------- 
       UNICODE 
      (1 row) 
       
    • º¸Åë ÀϹÝÀûÀÎ »óÅ·δ ÀÌ·¸´Ù. ÇÏÁö¸¸ psqlÀ̳ª ´Ù¸¥ ÀÎÅÍÆäÀ̽º(°¡·É À¥)¿¡¼­ uhc³ª euc_kr À» ÀÌ¿ëÇØ Á¢±ÙÇÏ·Á ÇÑ´Ù¸é.

      root=# SET client_encoding='uhc'; 
      SET 
      root=# SHOW client_encoding ; 
       client_encoding 
      ----------------- 
       uhc 
      (1 row) 
       
    • ÀÌÁ¦ µ¥ÀÌÅ͸¦ ÀÔ·ÂÇØº¸ÀÚ. uhc ÀÎÄÚµùÀÇ µ¥ÀÌÅͰ¡ ÀÚ¿¬½º·´°Ô UNICODE·Î ÀúÀåµÈ´Ù. À̰ÍÀÌ pgsqlÀÇ °íÀ¯Çϸ鼭 ¶Ù¾î³­ ±â´ÉÀÌ´Ù.

    • Âü°í·Î ÇÊÀÚ´Â postgresql.conf ¿¡ ¾Æ¿¹ client_encoding = uhc ·Î ÇØ³õ°í ÀÖ´Ù. psql, À¥À» Æ÷ÇÔÇÑ ¸ðµç ÀÎÅÍÆäÀ̽º¿¡¼­ uhc·Î ÀÔ·ÂÇÏ°í ¸ðµç DB´Â UNICODE·Î ÀúÀåµÇ°í ÀÖ´Ù. utf_encode, decode ÀÌ·± ÇÔ¼ö¸¦ ½áº»Áö ³Ê¹« ¿À·¡ µÇ¾ú´Ù.

    • Ŭ¶óÀÌ¾ðÆ® ÀÎÄÚµùÀ» ¹Ù²Ù´Â ¹æ¹ýÀº 2°¡ÁöÀÌ´Ù.

      root=# \encoding 
      UNICODE 
      root=# \encoding uhc 
      root=# \encoding 
      UHC 
      root=# SET client_encoding='uhc'; 
      SET 
       

    4 ÀÎÄÚµù Á¦¾à

    • "¾Æ햏햏" À̶ó´Â ´Ü¾î´Â uhc¿Í UNICODE¿¡¼­´Â À¯È¿ÇÏ´Ù. ÇÏÁö¸¸ euc_kr¿¡¼­´Â À¯È¿ÇÏÁö ¾Ê´Ù. pgsql¿¡ euc_kr·Î DB¸¦ »ý¼ºÇϰí "¾Æ햏햏" À̶ó´Â ´Ü¾î¸¦ ÀÔ·ÂÇÏ¸é ¿Ã¹Ù¸£Áö ¾ÊÀº ij¸¯ÅͶó´Â ¿¡·¯¸¸ 밷¾î ³½´Ù. ¾ð¾î ¼±ÅÃÀ» Àß ÇØ¾ß ÇÑ´Ù. UNICODE°¡ ´ë¼¼´Ù. ±×¸®°í ´ëºÎºÐÀÇ ¾ð¾î°¡ UNICODE¿Í´Â »óÈ£ ÄÁ¹öÀü µÇ°í ÀÖ´Ù.

    5 ÀÎÄÚµù º¯È¯ Ç¥

    • ¸ðµç ÀÎÄÚµùÀÌ ¼­·Î º¯È¯µÇ´Â °ÍÀº ¾Æ´Ï´Ù. ´ëºÎºÐ UNICODE¿Í´Â »óÈ£ º¯È¯ µÇÁö¸¸ euc_kr°ú uhc´Â ¼­·Î ȣȯµÇÁö ¾Ê´Â´Ù.
      Server Character Set Available Client Character Sets
      SQL_ASCII SQL_ASCII, UNICODE, MULE_INTERNAL
      EUC_JP EUC_JP, SJIS, UNICODE, MULE_INTERNAL
      EUC_CN EUC_CN, UNICODE, MULE_INTERNAL
      EUC_KR EUC_KR, UNICODE, MULE_INTERNAL
      JOHAB JOHAB, UNICODE
      EUC_TW EUC_TW, BIG5, UNICODE, MULE_INTERNAL
      LATIN1 LATIN1, UNICODE MULE_INTERNAL
      LATIN2 LATIN2, WIN1250, UNICODE, MULE_INTERNAL
      LATIN3 LATIN3, UNICODE, MULE_INTERNAL
      LATIN4 LATIN4, UNICODE, MULE_INTERNAL
      LATIN5 LATIN5, UNICODE
      LATIN6 LATIN6, UNICODE, MULE_INTERNAL
      LATIN7 LATIN7, UNICODE, MULE_INTERNAL
      LATIN8 LATIN8, UNICODE, MULE_INTERNAL
      LATIN9 LATIN9, UNICODE, MULE_INTERNAL
      LATIN10 LATIN10, UNICODE, MULE_INTERNAL
      ISO_8859_5 ISO_8859_5, UNICODE, MULE_INTERNAL, WIN, ALT, KOI8
      ISO_8859_6 ISO_8859_6, UNICODE
      ISO_8859_7 ISO_8859_7, UNICODE
      ISO_8859_8 ISO_8859_8, UNICODE
      UNICODE EUC_JP, SJIS, EUC_KR, UHC, JOHAB, EUC_CN, GBK, EUC_TW, BIG5, LATIN1 to LATIN10, ISO_8859_5, ISO_8859_6, ISO_8859_7, ISO_8859_8, WIN, ALT, KOI8, WIN1256, TCVN, WIN874, GB18030, WIN1250
      MULE_INTERNAL EUC_JP, SJIS, EUC_KR, EUC_CN, EUC_TW, BIG5, LATIN1 to LATIN5, WIN, ALT, WIN1250, BIG5, ISO_8859_5, KOI8
      KOI8 ISO_8859_5, WIN, ALT, KOI8, UNICODE, MULE_INTERNAL
      WIN ISO_8859_5, WIN, ALT, KOI8, UNICODE, MULE_INTERNAL
      ALT ISO_8859_5, WIN, ALT, KOI8, UNICODE, MULE_INTERNAL
      WIN1256 WIN1256, UNICODE
      TCVN TCVN, UNICODE
      WIN874 WIN874, UNICODE

    Conversion Name Source Encoding Destination Encoding
    ascii_to_mic SQL_ASCII MULE_INTERNAL
    ascii_to_utf_8 SQL_ASCII UNICODE
    big5_to_euc_tw BIG5 EUC_TW
    big5_to_mic BIG5 MULE_INTERNAL
    big5_to_utf_8 BIG5 UNICODE
    euc_cn_to_mic EUC_CN MULE_INTERNAL
    euc_cn_to_utf_8 EUC_CN UNICODE
    euc_jp_to_mic EUC_JP MULE_INTERNAL
    euc_jp_to_sjis EUC_JP SJIS
    euc_jp_to_utf_8 EUC_JP UNICODE
    euc_kr_to_mic EUC_KR MULE_INTERNAL
    euc_kr_to_utf_8 EUC_KR UNICODE
    euc_tw_to_big5 EUC_TW BIG5
    euc_tw_to_mic EUC_TW MULE_INTERNAL
    euc_tw_to_utf_8 EUC_TW UNICODE
    gb18030_to_utf_8 GB18030 UNICODE
    gbk_to_utf_8 GBK UNICODE
    iso_8859_10_to_utf_8 LATIN6 UNICODE
    iso_8859_13_to_utf_8 LATIN7 UNICODE
    iso_8859_14_to_utf_8 LATIN8 UNICODE
    iso_8859_15_to_utf_8 LATIN9 UNICODE
    iso_8859_16_to_utf_8 LATIN10 UNICODE
    iso_8859_1_to_mic LATIN1 MULE_INTERNAL
    iso_8859_1_to_utf_8 LATIN1 UNICODE
    iso_8859_2_to_mic LATIN2 MULE_INTERNAL
    iso_8859_2_to_utf_8 LATIN2 UNICODE
    iso_8859_2_to_windows_1250 LATIN2 WIN1250
    iso_8859_3_to_mic LATIN3 MULE_INTERNAL
    iso_8859_3_to_utf_8 LATIN3 UNICODE
    iso_8859_4_to_mic LATIN4 MULE_INTERNAL
    iso_8859_4_to_utf_8 LATIN4 UNICODE
    iso_8859_5_to_koi8_r ISO_8859_5 KOI8
    iso_8859_5_to_mic ISO_8859_5 MULE_INTERNAL
    iso_8859_5_to_utf_8 ISO_8859_5 UNICODE
    iso_8859_5_to_windows_1251 ISO_8859_5 WIN
    iso_8859_5_to_windows_866 ISO_8859_5 ALT
    iso_8859_6_to_utf_8 ISO_8859_6 UNICODE
    iso_8859_7_to_utf_8 ISO_8859_7 UNICODE
    iso_8859_8_to_utf_8 ISO_8859_8 UNICODE
    iso_8859_9_to_utf_8 LATIN5 UNICODE
    johab_to_utf_8 JOHAB UNICODE
    koi8_r_to_iso_8859_5 KOI8 ISO_8859_5
    koi8_r_to_mic KOI8 MULE_INTERNAL
    koi8_r_to_utf_8 KOI8 UNICODE
    koi8_r_to_windows_1251 KOI8 WIN
    koi8_r_to_windows_866 KOI8 ALT
    mic_to_ascii MULE_INTERNAL SQL_ASCII
    mic_to_big5 MULE_INTERNAL BIG5
    mic_to_euc_cn MULE_INTERNAL EUC_CN
    mic_to_euc_jp MULE_INTERNAL EUC_JP
    mic_to_euc_kr MULE_INTERNAL EUC_KR
    mic_to_euc_tw MULE_INTERNAL EUC_TW
    mic_to_iso_8859_1 MULE_INTERNAL LATIN1
    mic_to_iso_8859_2 MULE_INTERNAL LATIN2
    mic_to_iso_8859_3 MULE_INTERNAL LATIN3
    mic_to_iso_8859_4 MULE_INTERNAL LATIN4
    mic_to_iso_8859_5 MULE_INTERNAL ISO_8859_5
    mic_to_koi8_r MULE_INTERNAL KOI8
    mic_to_sjis MULE_INTERNAL SJIS
    mic_to_windows_1250 MULE_INTERNAL WIN1250
    mic_to_windows_1251 MULE_INTERNAL WIN
    mic_to_windows_866 MULE_INTERNAL ALT
    sjis_to_euc_jp SJIS EUC_JP
    sjis_to_mic SJIS MULE_INTERNAL
    sjis_to_utf_8 SJIS UNICODE
    tcvn_to_utf_8 TCVN UNICODE
    uhc_to_utf_8 UHC UNICODE
    utf_8_to_ascii UNICODE SQL_ASCII
    utf_8_to_big5 UNICODE BIG5
    utf_8_to_euc_cn UNICODE EUC_CN
    utf_8_to_euc_jp UNICODE EUC_JP
    utf_8_to_euc_kr UNICODE EUC_KR
    utf_8_to_euc_tw UNICODE EUC_TW
    utf_8_to_gb18030 UNICODE GB18030
    utf_8_to_gbk UNICODE GBK
    utf_8_to_iso_8859_1 UNICODE LATIN1
    utf_8_to_iso_8859_10 UNICODE LATIN6
    utf_8_to_iso_8859_13 UNICODE LATIN7
    utf_8_to_iso_8859_14 UNICODE LATIN8
    utf_8_to_iso_8859_15 UNICODE LATIN9
    utf_8_to_iso_8859_16 UNICODE LATIN10
    utf_8_to_iso_8859_2 UNICODE LATIN2
    utf_8_to_iso_8859_3 UNICODE LATIN3
    utf_8_to_iso_8859_4 UNICODE LATIN4
    utf_8_to_iso_8859_5 UNICODE ISO_8859_5
    utf_8_to_iso_8859_6 UNICODE ISO_8859_6
    utf_8_to_iso_8859_7 UNICODE ISO_8859_7
    utf_8_to_iso_8859_8 UNICODE ISO_8859_8
    utf_8_to_iso_8859_9 UNICODE LATIN5
    utf_8_to_johab UNICODE JOHAB
    utf_8_to_koi8_r UNICODE KOI8
    utf_8_to_sjis UNICODE SJIS
    utf_8_to_tcvn UNICODE TCVN
    utf_8_to_uhc UNICODE UHC
    utf_8_to_windows_1250 UNICODE WIN1250
    utf_8_to_windows_1251 UNICODE WIN
    utf_8_to_windows_1256 UNICODE WIN1256
    utf_8_to_windows_866 UNICODE ALT
    utf_8_to_windows_874 UNICODE WIN874
    windows_1250_to_iso_8859_2 WIN1250 LATIN2
    windows_1250_to_mic WIN1250 MULE_INTERNAL
    windows_1250_to_utf_8 WIN1250 UNICODE
    windows_1251_to_iso_8859_5 WIN ISO_8859_5
    windows_1251_to_koi8_r WIN KOI8
    windows_1251_to_mic WIN MULE_INTERNAL
    windows_1251_to_utf_8 WIN UNICODE
    windows_1251_to_windows_866 WIN ALT
    windows_1256_to_utf_8 WIN1256 UNICODE
    windows_866_to_iso_8859_5 ALT ISO_8859_5
    windows_866_to_koi8_r ALT KOI8
    windows_866_to_mic ALT MULE_INTERNAL
    windows_866_to_utf_8 ALT UNICODE
    windows_866_to_windows_1251 ALT WIN
    windows_874_to_utf_8 WIN874 UNICODE

    6 Âü°í ÀÚ·á

    6.1 libpq ÀÎÅÍÆäÀ̽º

  • Ŭ¶óÀÌ¾ðÆ® ÀÎÄÚµùÀ» ¼¼ÆÃÇÑ´Ù.
    int PQsetClientEncoding(PGconn *conn, const char *encoding); ¸®ÅϰªÀº ¼º°øÀº 0, ½ÇÆÐ´Â -1
  • Ŭ¶óÀÌ¾ðÆ® ÀÎÄÚµù ¼³Á¤À» °¡Á®¿Â´Ù.
    int PQclientEncoding(const PGconn *conn); ¸®ÅϰªÀº Ŭ¶óÀÌ¾ðÆ® ÀÎÄÚµù ID ÀÌ´Ù.
  • PQclientEncodingÀÌ ¸®ÅÏÇÑ ÀÎÄÚµù ID¸¦ ¹®ÀÚ·Î º¯°æÇÑ´Ù.
    char *pg_encoding_to_char(int encoding_id); ¸®ÅϰªÀº Ŭ¶óÀÌ¾ðÆ® ÀÎÄÚµù ¹®ÀÚ¿­ÀÌ´Ù.

    6.2 PostgreSQL ¸Å´º¾ó

  • 20.2. Character Set Support
  • 9.4. String Functions and Operators (Table 9-8. Built-in Conversions)
  • EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.