| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 4. SQLÀÇ ±¸¹® | Fast Forward | Next |
SQLÀÇ ÀÔ·ÂÀº, ¸í·ÉÀÇ ½ÃÄö½º·Î ±¸¼º µË´Ï´Ù. ¸í·ÉÀº ÅäÅ«ÀÌ ¿¬°áµÈ °ÍÀ¸·Î ±¸¼ºµÇ¾î ¸¶Áö¸·Àº ¼¼¹ÌÄÝ·Ð(";")À¸·Î ³¡³³´Ï´Ù. ÀÔ·Â È帧ÀÇ Á¾·áµµ ¿ª½Ã ¸í·ÉÀ» ³¡³À´Ï´Ù. ¾î´À ÅäÅ«ÀÌ À¯È¿¿©ºÎ´Â ƯÁ¤ ¸í·ÉÀÇ ±¸¹®À» µû¸¨´Ï´Ù.
ÅäÅ«Àº Ű¿öµå, ½Äº°ÀÚ, ÀοëºÎÈ£·Î µÑ·¯½ÎÀÎ ½Äº°ÀÚ, ¸®ÅÍ·²(ȤÀº Á¤¼ö), Ưº°ÇÑ ¹®ÀÚ ½Éº¼ÀÔ´Ï´Ù. ÅäÅ«Àº Åë»ó °ø¹é(½ºÆäÀ̽º, ÅÇ, °³Çà)¿¡¼ ´Ü¶ôÁö¾îÁý´Ï´Ù¸¸, ¾Ö¸ÅÇÔÀÌ ¾øÀ¸¸é(ÀϹÝÀûÀ¸·Î´Â Ưº°ÇÑ ¹®ÀÚ°¡ ´Ù¸¥ ÅäÅ«Çü°ú ÀÎÁ¢Çϰí ÀÖ´Â °æ¿ì¸¸) ÇÊ¿ä ¾ø½À´Ï´Ù.
°Ô´Ù°¡ ÀÔ·ÂµÈ SQL¿¡ ÄÚ¸àÆ®°¡ ºÙ¾î À־ »ó°üÇÏÁö ¾Ê½À´Ï´Ù. ÄÚ¸àÆ®´Â ÅäÅ«Àº ¾Æ´Ï°í, ±× È¿°ú´Â °ø¹é°ú °°½À´Ï´Ù.
¿¹¸¦ µé¸é, ÀÌÇÏÀÇ °ÍÀº(±¸¹®ÀûÀ¸·Î) ¿Ã¹Ù¸¥ SQLÀÇ ÀÔ·ÂÀÔ´Ï´Ù.
SELECT * FROM MY_TABLE; UPDATE MY_TABLE SET A = 5; INSERT INTO MY_TABLE VALUES (3, 'hi there');
ÀÌ ¿¹´Â 1Çà¿¡ 1°³ÀÇ ¸í·ÉÀ» ±â¼úÇÑ, 3°³ÀÇ ¸í·ÉÀÌ ¿¬¼ÓÇϰí ÀÖ½À´Ï´Ù(¹Ýµå½Ã 1°³ÀÇ ¸í·ÉÀ» 1ÇàÀ¸·Î ¾µ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. 1Çà¿¡ º¹¼öÀÇ ¸í·ÉÀ» ÀÔ·ÂÇÏ´Â Àϵµ °¡´ÉÇϰí, 1°³ÀÇ ¸í·ÉÀ» º¹¼öÇàÀ¸·Î ³ª´©¾î ±â¼úÇÏ´Â Àϵµ °¡´ÉÇÕ´Ï´Ù).
SQL ±¸¹®Àº, ÅäÅ«ÀÌ ¸í·ÉÀ» ½Äº°ÇØ, ¾î¶² °ÍÀÌ ¿ÀÆÛ·£µå·Î ¾î¶² °ÍÀÌ ¸Å°³º¯¼öÀΰ¡¿¡ °üÇØ¼´Â ±×´ÙÁö ½ÃÁ¾ ÀϰüÇϰí ÀÖÁö ¾Ê½À´Ï´Ù. ÃÖÃÊÀÇ ¸î°³ÀÇ ÅäÅ«Àº ÀϹÝÀûÀ¸·Î ¸í·É¸íÀÔ´Ï´Ù. µû¶ó¼, »ó±âÀÇ ¿¹¿¡ ´ëÇØ "SELECT", "UPDATE", "INSERT"¸í·É¿¡ ´ëÇØ Åë»ó ¼³¸íÇÏ°Ô µË´Ï´Ù. ±×·¯³ª, ¿¹¸¦ µé¸é UPDATE¸í·É¿¡¼´Â, SETÅäÅ«ÀÌ Æ¯Á¤ÀÇ À§Ä¡¿¡ Ç×»ó ±â¼úµÇ¾î¾ß Çϰí, ÀÌ ¿¹·Î »ç¿ëµÇ°í ÀÖ´Â INSERT¸í·ÉÀ» ¿Ï°áÇϱâ À§Çؼ´Â VALUESÅäÅ«ÀÌ ÇÊ¿äÇÕ´Ï´Ù. °¢°¢ÀÇ ¸í·ÉÀÇ Á¤È®ÇÑ ±¸¹® ±ÔÄ¢Àº Part VIÀ¸·Î ¼³¸íµÇ°í ÀÖ½À´Ï´Ù.
»ó±âÀÇ ¿¹¿¡ ³ª¿À´Â SELECT, UPDATE, ȤÀº VALUES¿Í °°Àº ÅäÅ«Àº, Ű¿öµåÀÇ ÀÏ·ÊÀÔ´Ï´Ù. Ű¿öµå¶õ, SQL ¾ð¾î·Î Á¤ÇØÁø Àǹ̸¦ °¡Áö°í ÀÖ´Â ´Ü¾îÀÔ´Ï´Ù. MY_TABLEÅäÅ«À̳ª AÅäÅ«Àº ½Äº°ÀÚÀÇ ÀÏ·ÊÀÔ´Ï´Ù. À̰͵éÀº, »ç¿ëµÇ´Â ¸í·É¿¡ ÀÇÇØ, Å×À̺í, ¿, ´Ù¸¥ µ¥ÀÌÅͺ£À̽º °´Ã¼ÀÇ À̸§À» ½Äº°ÇÕ´Ï´Ù. µû¶ó¼, ´ÜÁö "À̸§"À¸·Î ºÒ¸®´Â Àϵµ ÀÖ½À´Ï´Ù. Ű¿öµå¿Í ½Äº°ÀÚ´Â °°Àº ¾îÈÖÀÇ ±¸Á¶¸¦ °¡Áö±â ¶§¹®¿¡, ¾ð¾î¸¦ ¸ð¸£¸é ÅäÅ«ÀÌ ½Äº°ÀÚÀÎÁö Ű¿öµåÀÎÁö ¸ð¸£´Â °ÍÀÌ µË´Ï´Ù. ¸ðµç Ű¿öµåÀÇ ¸®½ºÆ®´Â Appendix C¿¡ ÀÖ½À´Ï´Ù.
SQL ½Äº°ÀÚ¿Í Å°¿öµå´Â, ¹®ÀÚ(a~z¹× ¹ßÀ½ ±¸º° ºÎÈ£¿Í ºñLatin ¹®ÀÚ), ¾ð´õ ½ºÄÚ¾î(_)·Î ½ÃÀÛµÇÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. ½Äº°ÀÚ ¶Ç´Â Ű¿öµå Áß ¿¡¼ °è¼ÓµÇ´Â ¹®ÀÚ´Â, ¹®ÀÚ, ¾ð´õ ½ºÄÚ¾î, ¼ýÀÚ(0~9)¸¦ »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. Ç¥ÁØ SQLÀÇ ±â¼ú¿¡ µû¸£¸é, ´Þ·¯ ±âÈ£´Â ½Äº°ÀÚ³»¿¡¼´Â »ç¿ëÇÒ ¼ö ¾ø´Â °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä. ±×·¯´Ï±î, À̰ÍÀ» »ç¿ëÇÏ¸é ¾îÇø®ÄÉÀ̼ÇÀÇ À̽ļºÀº ³·¾ÆÁú °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. Ç¥ÁØ SQL¿¡¼´Â, ¼ýÀÚ¸¦ Æ÷ÇÔÇÑ, ȤÀº ¾ð´õ ½ºÄÚ¾î·Î ½ÃÀ۵ǰųª ³¡³ª´Â Ű¿öµå´Â Á¤Àǵǰí ÀÖÁö ¾Ê½À´Ï´Ù. µû¶ó¼, ÀÌ Çü½ÄÀÇ ½Äº°Àڴ ǥÁØÀÇ ÇâÈÄÀÇ È®Àå°ú Ãæµ¹ ÇÒ °¡´É¼ºÀÌ ¾ø´Ù´Â Àǹ̷Π¾ÈÀüÇÏ´Ù°í ÇÒ ¼ö ÀÖ½À´Ï´Ù.
½Ã½ºÅÛÀº NAMEDATALEN-1¹ÙÀÌÆ®º¸´Ù ±ä ½Äº°ÀÚÀÇ ¹®ÀÚ¼ö¸¦ »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù. º¸´Ù ±ä À̸§À» ¸í·ÉÀ¸·Î ¾µ ¼ö ÀÖ½À´Ï´Ù¸¸, ª°Ô À߸³´Ï´Ù. ±âº»°ª¿¡¼´Â NAMEDATALEN´Â 64À̹ǷÎ, ½Äº°ÀÚ´Â °¡Àå ±ä °ÍÀÌ 63¹ÙÀÌÆ®ÀÔ´Ï´Ù. ÀÌ Á¦ÇÑÀÌ ¹®Á¦°¡ µÇ´Â °æ¿ì´Â, src/include/postgres_ext.h³»ÀÇ NAMEDATALENÁ¤¼öÀÇ °ªÀ» º¯°æÇØ ´Ã¸± ¼ö°¡ ÀÖ½À´Ï´Ù.
½Äº°ÀÚ¿Í Å°¿öµå¸íÀº ´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê½À´Ï´Ù. µû¶ó¼,
UPDATE MY_TABLE SET A = 5;
´Â, ÀÌÇÏÀÇ ¹®Àå°ú °°Àº Àǹ̰¡ µË´Ï´Ù.
uPDaTE my_TabLE SeT a = 5;
°ü½ÀÀûÀ¸·Î´Â, Ű¿öµå¸¦ ´ë¹®ÀÚ·Î, À̸§À» ¼Ò¹®ÀÚ·Î ¾¹´Ï´Ù. ¿¹¸¦ µé¸é ¾Æ·¡¿Í °°ÀÌ µË´Ï´Ù.
UPDATE my_table SET a = 5;
½Äº°ÀÚ¿¡´Â ºÎÂ÷ÀûÀÎ Á¾·ùµµ ÀÖ½À´Ï´Ù. ´Ü¶ô ½Äº°ÀÚ È¤Àº ÀοëºÎÈ£ ÷ºÎ ½Äº°ÀÚÀÔ´Ï´Ù. ÀÓÀÇÀÇ ¹®ÀÚÀÇ ÀÏ·Ä Á¤·ÄÀ» ÀÌÁß ÀοëºÎÈ£(")·Î µÑ·¯½Ñ °ÍÀÔ´Ï´Ù. ´Ü¶ô ½Äº°ÀÚ´Â Ç×»ó ½Äº°ÀÚÀ̸ç, Ű¿öµå°¡ ¾Æ´Õ´Ï´Ù. ±×·¯´Ï±î, "select"´Â "select"¶ó´Â À̸§ÀÇ ¿ ȤÀº Å×À̺íÀ» Äõ¸®Çϱâ À§Çؼ »ç¿ëÇÒ ¼ö ÀÖÁö¸¸, ÀοëºÎÈ£°¡ ºÙÁö ¾Ê´Â select´Â Ű¿öµå·Î¼ ÀÌÇØµÇ¹Ç·Î, Å×À̺í ȤÀº ·Ä¸íÀÌ ±â´ëµÇ´Â ºÎºÐ¿¡¼´Â ÇØ¼® ¿¡·¯¸¦ ÀÏÀ¸Åµ´Ï´Ù. ÀοëºÎÈ£ ÷ºÎ ½Äº°ÀÚ´Â ¾Æ·¡¿Í °°Àº ¿¹¿Í °°ÀÌ ¾µ ¼ö°¡ ÀÖ½À´Ï´Ù.
UPDATE "my_table" SET "a" = 5;
ÀοëºÎÈ£ ÷ºÎ ½Äº°ÀÚ´Â, ¹®ÀÚ ÄÚµå 0ÀÌ¿ÜÀÌ¸é ¾î¶°ÇÑ ¹®ÀÚ¿¡¼µµ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù (ÀÌÁß ÀοëºÎÈ£¸¦ Æ÷ÇÔÇÏ°í ½ÍÀº °æ¿ì´Â, ÀÌÁß ÀοëºÎÈ£¸¦ 2°³ ÀÔ·ÂÇÕ´Ï´Ù). Æò»ó½Ã »ç¿ëÇÒ ¼ö ¾ø´Â °ø¹éÀ̳ª ampersand(&)(&)¸¦ Æ÷ÇÔÇÑ Å×À̺í¸íÀ̳ª ·Ä¸íÀ» ¸¸µå´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù. ÀÌ °æ¿ì¿¡ ´ëÇØµµ ±æÀÌÀÇ Á¦ÇÑÀº Àû¿ëµË´Ï´Ù.
ÀοëºÎÈ£°¡ ºÙÁö ¾Ê´Â À̸§Àº Ç×»ó ¼Ò¹®ÀÚ·Î ÇØ¼®µË´Ï´Ù¸¸, ½Äº°ÀÚ¸¦ ÀοëºÎÈ£·Î µÑ·¯½Î´Â °Í¿¡ ÀÇÇØ ´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ°¡ ±¸º°µÇ°Ô µË´Ï´Ù. ¿¹¸¦ µé¸é, ½Äº°ÀÚFOO, foo, "foo"´Â PostgreSQL¿¡ ÀÇÇÏ¸é °°Àº °ÍÀ¸·Î¼ ÇØ¼®µË´Ï´Ù¸¸, "Foo"¿Í "FOO"´Â, À̰͵é 3 °³ ¸ðµÎ, ¶Ç ¼·Î ´Ù¸¥ °ÍÀ¸·Î¼ ÇØ¼®µË´Ï´Ù (PostgreSQL°¡ ÀοëºÎÈ£°¡ ºÙÁö ¾Ê´Â À̸§À» ¼Ò¹®Àڷμ ÇØ¼®ÇÏ´Â °ÍÀº Ç¥ÁØ SQL¿Í ȣȯ¼ºÀÌ ¾ø½À´Ï´Ù. Ç¥ÁØ SQL¿¡¼´Â ÀοëºÎÈ£°¡ ºÙÁö ¾Ê´Â À̸§Àº ´ë¹®ÀÚ·Î ÇØ¼®µÇ¾î¾ß ÇÑ´Ù°í ÇÕ´Ï´Ù. µû¶ó¼ Ç¥ÁØ SQL¿¡ ÀÇÇϸé, foo´Â "FOO"¿Í °°¾Æ¼, "foo"¿Í´Â ´Ù¸¦ °ÍÀÔ´Ï´Ù. ¸¸¾à ÀÌ½Ä °¡´ÉÇÑ ¾îÇø®ÄÉÀ̼ÇÀ» ¾²°í ½Í´Ù¸é, ƯÁ¤ÀÇ À̸§Àº Ç×»ó ÀοëºÎÈ£·Î µÑ·¯½Îµç°¡, ȤÀº ÀüÇô µÑ·¯½ÎÁö ¾Ê´Â ¾î´À ÇÑ ÂÊ¿¡ ÅëÀÏÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù).
PostgreSQL¿¡´Â, 3°³ÀÇ ¾Ï½ÃÀûÀ¸·Î ÀÔ·ÂµÈ Á¤¼ö°¡ ÀÖ½À´Ï´Ù. ¹®ÀÚ¿, ºñÆ® ¹®ÀÚ¿, ±×¸®°í ¼ýÀÚÀÔ´Ï´Ù. Á¤¼ö´Â ¸í½ÃÀûÀÎ ÇüÅ·ΠÁöÁ¤ÇÒ ¼öµµ ÀÖ¾î ±× °æ¿ì´Â ½Ã½ºÅÛ¿¡ ÀÇÇÑ, º¸´Ù Á¤È®ÇÑ Ç¥Çö°ú È¿À²ÀÌ ÁÁÀº Á¶ÀÛÀÌ °¡´ÉÇÏ°Ô µË´Ï´Ù. ÀÌ·¯ÇÑ ´Ù¸¥ ¹æ¹ý¿¡ ´ëÇØ¼´Â Àá½Ã ÈÄ¿¡ ¼³¸íÇÕ´Ï´Ù.
SQL¿¡ ÀÖ¾î¼ÀÇ ¹®ÀÚ¿ Á¤¼ö´Â, ´ÜÀÏ ÀοëºÎÈ£(')·Î Ç¥½ÃµÈ ¹®ÀÚÀÇ ÁÙÀÔ´Ï´Ù. ¿¹¸¦ µé¸é, 'This is a string'ÀÔ´Ï´Ù. ¹®ÀÚ¿ Á¤¼ö³»ÀÇ ´ÜÀÏ ÀοëºÎÈ£ÀÇ ±â¼ú ¹æ¹ýÀº, µÎ ±ÙÁ¢ÇÑ ´ÜÀÏ ÀοëºÎÈ£¸¦ ±â¼úÇÏ´Â °ÍÀÔ´Ï´Ù. ¿¹¸¦ µé¸é, 'Dianne''s horse'ÀÔ´Ï´Ù. ÀÌÁß ÀοëºÎÈ£(")¿Í´Â µ¿ÀÏÇÏÁö ¾ÊÀ¸ Á¡¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä.
2°³ÀÇ ¹®ÀÚ¿ Á¤¼ö°¡, Àû¾îµµ 1°³ÀÇ °³Çà À» Æ÷ÇÔÇÑ °ø¹é¿¡¼ ´Ü¶ôÁö¾îÁö°í ÀÖ´Â °æ¿ì´Â, 2°³ÀÇ Á¤¼ö´Â ¿¬°áµÇ¾î, ¸¶Ä¡ 1°³ÀÇ Á¤¼ö·Î¼ ¾²¿©Áø °Íó·³ È¿À²ÀûÀ¸·Î 󸮵˴ϴÙ. ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
SELECT 'foo' 'bar';
´Â,
SELECT 'foobar';
¿Í °°½À´Ï´Ù. ±×·¯³ª,
SELECT 'foo' 'bar';
´Â À¯È¿ÇÑ ±¸¹®ÀÌ ¾Æ´Õ´Ï´Ù (ÀÌ ¾à°£ÀÇ ÀÌ»óÇÑ ÇൿÀº SQL·Î °áÁ¤µÇ¾î ÀÖ¾î¼, PostgreSQL¿¡¼´Â ÀÌ Ç¥ÁØ¿¡ µû¸£°í ÀÖ½À´Ï´Ù).
PostgreSQL¿¡¼´Â, ¶Ç, "À̽ºÄÉÀÌÇÁ"¹®ÀÚ Á¤¼ö¸¦À» ¹Þ¾ÆµéÀÔ´Ï´Ù. À̰ÍÀº Ç¥ÁØ SQLÀÇ È®ÀåÀÔ´Ï´Ù. À̽ºÄÉÀÌÇÁ ¹®ÀÚ Á¤¼ö´Â, °³½Ã ´ÜÀÏ ÀοëºÎÈ£ÀÇ Á÷Àü¿¡ E(´ë¹®ÀÚ¿¡¼µµ ¼Ò¹®ÀÚ¿¡¼µµ ±¦Âú½À´Ï´Ù)¸¦ ±â¼úÇÏ´Â °ÍÀ¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹¸¦ µé¸é E'foo'ÀÔ´Ï´Ù. (º¹¼öÇà¿¡ °Ç³Ê´Â À̽ºÄÉÀÌÇÁ ¹®ÀÚ Á¤¼ö¿¡¼´Â, ÃÖÃÊÀÇ °³½Ã ÀοëºÎÈ£ÀÇ Àü¿¡¸¸ E¸¦ ±â¼úÇØ ÁÖ¼¼¿ä. ) À̽ºÄÉÀÌÇÁ ¹®ÀÚ¿ Áß¿¡¼´Â, backslash ¹®ÀÚ(\)¿¡ ÀÇÇØ C¾ð¾î¿Í °°Àº backslash¼ø¼°¡ ½ÃÀ۵˴ϴÙ. backslash¿Í °è¼ÓµÇ´Â ¹®ÀÚÀÇ Æí¼ºÀÌ Æ¯º°ÇÑ ¹ÙÀÌÆ®°ªÀ» Ç¥ÇöÇÕ´Ï´Ù. \b´Â ÈÄÅð(¹é ½ºÆäÀ̽º)¸¦, \f´Â ÆäÀÌÁö ³Ñ±â±â¸¦, \n´Â °³ÇàÀ», \r´Â º¹±Í(¿Õº¹ ¸®ÅÏ)¸¦, \t´Â ÅÇÀ» ³ªÅ¸³À´Ï´Ù. ¶Ç,\ digits ¶ó´Â Çü½Äµµ Áö¿øÇØ, digits ´Â 8 Áø¼ö ¹ÙÀÌÆ®°ªÀ» ³ªÅ¸³À´Ï´Ù. \x hexdigits ¶ó´Â Çü½Ä¿¡¼´Â, hexdigits ´Â 16 Áø¼ö ¹ÙÀÌÆ®°ªÀ» ³ªÅ¸³À´Ï´Ù. (ÀÛ¼ºÇÏ´Â ¹ÙÀÌÆ®ÀÇ ÁÙÀÌ ¼¹öÀÇ Ä³¸¯ÅÍ ¼¼Æ® ÀÎÄÚµù ¹æ½ÄÀ¸·Î¼ À¯È¿ÇÑÁö ¾Æ´ÑÁö´Â ÄÚµå ÀÛ¼ºÀÚÀÇ Ã¥ÀÓÀÔ´Ï´Ù. ) ¿©±â¿¡ ³ªÅ¸³½ ÀÌ¿ÜÀÇ backslashÀÇ µÚÀÇ ¹®ÀÚ´Â ±×´ë·Î ÇØ¼®µË´Ï´Ù. µû¶ó¼, backslash ¹®ÀÚ¸¦ Æ÷ÇÔÇÏ·Á¸é, 2°³ÀÇ backslash(\\)¸¦ ±â¼úÇØ ÁÖ¼¼¿ä. ¶Ç, Åë»óÀÇ ''¶ó´Â ¹æ¹ý À̿ܿ¡, \'¿Í ±â¼úÇÏ´Â °ÍÀ¸·Î ´ÜÀÏ ÀοëºÎÈ£¸¦ À̽ºÄÉÀÌÇÁ ¹®ÀÚ¿¿¡ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.
| Caution |
|
¼³Á¤ ¸Å°³º¯¼östandard_conforming_strings°¡ offÀÇ °æ¿ì, PostgreSQL´Â backslash À̽ºÄÉÀÌÇÁ¸¦ Åë»óÀÇ ¹®ÀÚ Á¤¼ö¿Í À̽ºÄÉÀÌÇÁ ¹®ÀÚ Á¤¼öÀÇ ¾çÂÊ ¸ðµÎ·Î ÀνÄÇÕ´Ï´Ù. À̰ÍÀº, backslash À̽ºÄÉÀÌÇÁ°¡ Ç×»ó Àνĵȴٴ ¿ª»çÀûÀÎ µ¿ÀÛÀ» À§ÇÑ, ÈĹæ ȣȯ¼ºÀ» À¯ÁöÇϱâ À§ÇÑÀÇ °ÍÀÔ´Ï´Ù. ÇöÀç standard_conforming_strings´Â ±âº»°ªÀ¸·ÎoffÀÔ´Ï´Ù¸¸, Ç¥ÁØ È£È¯¼ºÀ» ³ôÀ̱â À§Çؼ ÇâÈÄÀÇ ¸±¸®½º·Î ±âº»°ªon·Î º¯°æµÉÁöµµ ¸ð¸¨´Ï´Ù. ±×·¯¹Ç·Î, ¾îÇø®ÄÉÀ̼ǿ¡¼´Â backslash À̽ºÄÉÀÌÇÁÀÇ »ç¿ëÀ¸·ÎºÎÅÍ ÀÌÇà ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. Ư¼ö ¹®ÀÚ¸¦ Ç¥ÇöÇϱâ À§Çؼ backslash¸¦ »ç¿ëÇÒ Çʿ䰡 ÀÖ´Â °æ¿ì, E¸¦ ºÙ¿© Á¤¼ö¸¦ ±â¼úÇØ, ÇâÈÄÀÇ ¸±¸®½º¿¡¼µµ È®½ÇÈ÷¿Í °°ÀÌ ´Ù·ç¾îÁöµµ·Ï ÇØ ÁÖ¼¼¿ä. standard_conforming_strings¿Ü¿¡, ¼³Á¤ ¸Å°³º¯¼öescape_string_warning ¹× backslash_quoteÀÌ ¹®ÀÚ Á¤¼ö³»ÀÇ backslashÀÇ µ¿ÀÛÀ» °áÁ¤ÇÕ´Ï´Ù. |
¹®ÀÚ¿ Á¤¼ö³»¿¡´Â ÄÚµå 0ÀÇ ¹®ÀÚ¸¦ Æ÷ÇÔÇÒ ¼ö ¾ø½À´Ï´Ù.
SQL¿¡ ÀÖ¾î¼ÀÇ ¹®ÀÚ¿ Á¤¼öÀÇ ÁöÁ¤ ±¸¹®Àº ´ëºÎºÐÀÇ °æ¿ì Æí¸®ÇÕ´Ï´Ù¸¸, ´ë»óÀ¸·Î ÇÏ´Â ¹®ÀÚ¿³»¿¡ ¸¹Àº ´ÜÀÏ ÀοëºÎÈ£³ª backslash°¡ ÀÖÀ¸¸é, ±×°ÍµéÀ» ¸ðµÎ ÀÌÁß ÀÎ¿ë ºÎÈ£ ÇÏÁö ¾ÊÀ¸¸é ¾ÈµÇ±â ¶§¹®¿¡ ÀÌÇØ Çϱ⠾î·Á¿öÁý´Ï´Ù. ÀÌ·¯ÇÑ »óȲ¿¡ À־ Äõ¸®ÀÇ °¡µ¶¼ºÀ» º¸´Ù ³ôÀ̱â À§Çؼ PostgreSQL´Â, "´Þ·¯ ÀοëºÎÈ£ºÎ"¶ó´Â ´Ù¸¥ ¹®ÀÚ¿ Á¤¼öÀÇ ÁöÁ¤ ¹æ¹ýÀ» Á¦°øÇÕ´Ï´Ù. ´Þ·¯ ÀοëºÎÈ£ ºÙÀÌ°í µÈ ¹®ÀÚ¿ Á¤¼ö´Â, ´Þ·¯ ±âÈ£($), »ý·« °¡´ÉÇÑ 0°³ ÀÌ»óÀÇ ¹®ÀڷκÎÅÍ µÇ´Â "ű×", ´Þ·¯ ±âÈ£, ¹®ÀÚ¿ Á¤¼ö¸¦ ±¸¼ºÇÏ´Â ÀÓÀÇÀÇ ¹®ÀÚÀÇ ÄÁÅÙÃ÷, ´Þ·¯ ±âÈ£, ÀÌ ÀοëºÎÈ£ºÎÀÇ ÃÊ·Î ÁöÁ¤ÇÑ °Í°ú °°Àº ű×, ´Þ·¯ ±âÈ£·ÎºÎÅÍ ±¸¼ºµË´Ï´Ù. ¿¹¸¦ µé¸é, "Dianne's horse"¶ó´Â ¹®ÀÚ¿À» ´Þ·¯ ÀοëºÎÈ£ºÎ¸¦ »ç¿ëÇØ ÁöÁ¤ÇÏ´Â ¹æ¹ý¿¡´Â, ÀÌÇÏÀÇ 2°³°¡ ÀÖ½À´Ï´Ù.
$$Dianne's horse$$ $SomeTag$Dianne's horse$SomeTag$
´Þ·¯ ÀοëºÎÈ£ ºÙÀÌ°í µÈ ¹®ÀÚ¿Àº ÀÌ¹Ì À̽ºÄÉÀÌÇÁ µÇ°í Àֱ⠶§¹®¿¡, ¹®ÀÚ¿ Á¤¼ö´Â ¸ðµÎ ±×´ë·Î ±â¼úÇÒ ¼ö ÀÖ½À´Ï´Ù. ±× ÁÙÀÌ °³½Ã ű׿¡ ÀÏÄ¡ÇÏÁö ¾Ê´Â ÇÑ, backslashµµ ´Þ·¯ ±âÈ£µµ Ưº°ÇÑ °ÍÀÌ ¾Æ´Õ´Ï´Ù.
°¢ »óÀÚ ·¹º§¿¡ ´Ù¸¥ ű׸¦ ºÙÀÌ´Â °ÍÀ¸·Î, ´Þ·¯ ÀοëºÎÈ£ ºÙÀÌ°í µÈ ¹®ÀÚ¿À» »óÀÚ·Î ÇÒ ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀº, ÇÔ¼ö Á¤ÀǸ¦ ÀÛ¼ºÇÒ ¶§¿¡ ¸Å¿ì ÀÚÁÖ »ç¿ëµË´Ï´Ù. ÀÌÇÏ¿¡ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
$function$
BEGIN
RETURN ($1 ~ $q$[\t\r\n\v\\]$q$);
END;
$function$
¿©±â¼, $q$[\t\r\n\v\\]$q$´Â, ´Þ·¯ ÀοëºÎÈ£ ºÙÀÌ°í µÈ [\t\r\n\v\\]¸®ÅÍ·² ¹®ÀÚ¿À» ³ªÅ¸³», PostgreSQL°¡ ÀÌ ÇÔ¼ö º»Ã¼¸¦ ½ÇÇàÇÒ ¶§¿¡ Àνĵ˴ϴÙ. ±×·¯³ª, ÀÌ ÁÙÀº, ¿ÜÃøÀÇ ´Þ·¯ ÀοëºÎÈ£¿ëÀÇ ´Ü¶ô ¹®ÀÚ$function$¿¡ ÀÏÄ¡ÇÏÁö ¾ÊÀ¸¹Ç·Î, ¿ÜÃøÀÇ ¹®ÀÚ¿À» ´ë»óÀ¸·Î Çϰí ÀÖ´Â °æ¿ì´Â ´Ü¼øÇÑ ¹®ÀÚÀÇ ÁÙÀÌ µË´Ï´Ù.
¸¸¾à ÀÖÀ¸¸é, ´Þ·¯ ÀοëºÎÈ£ ºÙÀÌ°í µÈ ¹®ÀÚ¿ÀÇ Å±״Â, ÀοëºÎÈ£ ºÙÀ̰íµÇ¾î ÀÖÁö ¾ÊÀº ½Äº°ÀÚ¿Í °°Àº ±ÔÄ¢¿¡ µû¸¨´Ï´Ù. ´Ù¸¸, ű׿¡´Â ´Þ·¯ ±âÈ£¸¦ Æ÷ÇÔÇÒ ¼ö ¾ø½À´Ï´Ù. ű״ ´ë¹®ÀÚ ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÕ´Ï´Ù. µû¶ó¼, $tag$String content$tag$´Â ¿Ã¹Ù¸¨´Ï´Ù¸¸, $TAG$String content$tag$´Â ½Ç¼öÀÔ´Ï´Ù.
Ű¿öµå³ª ½Äº°ÀÚÀÇ µÚ¿¡ ´Þ·¯ ÀοëºÎÈ£ ºÙÀÌ°í µÈ ¹®ÀÚ¿À» °è¼ÓÇÏ´Â °æ¿ì´Â, °ø¹é¿¡¼ ±×°ÍÀ» ´Ü¶ôÁþÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é, ´Þ·¯ ÀοëºÎÈ£ÀÇ ´Ü¶ô ¹®ÀÚ´Â, Á÷ÀüÀÇ ½Äº°ÀÚÀÇ ÀϺημ ÇØ¼®µË´Ï´Ù.
´Þ·¯ ÀοëºÎÈ£ºÎ´Â, Ç¥ÁØ SQL·Î Á¤Àǵǰí ÀÖÁö ¾Ê½À´Ï´Ù. ±×·¯³ª, º¹ÀâÇÑ ¹®ÀÚ¿ ¸®ÅÍ·²À» ±â¼úÇÏ´Â °æ¿ì´Â Ç¥ÁØ ÁذÅÀÇ ´ÜÀÏ ÀοëºÎÈ£ ±¸¹®º¸´Ù Æí¸®ÇÑ ÀÏÀÌ ÀÚÁÖ ÀÖ½À´Ï´Ù. ƯÈ÷, ´Ù¸¥ Á¤¼öÀÇ ³»ºÎ¿¡ ¹®ÀÚ¿ Á¤¼ö¸¦ ±â¼úÇÏ´Â °Í °°Àº °æ¿ì´Â µµ¿òÀÌ µË´Ï´Ù. ÀÌ·¯ÇÑ »óȲÀº ¼ö¼Ó ÇÔ¼öÀÇ Á¤ÀÇ·Î ÀÚÁÖ ÇÊ¿äÇÏ°Ô µË´Ï´Ù. ´ÜÀÏ ÀοëºÎÈ£ ±¸¹®¿¡¼´Â, À§ÀÇ ¿¹ÀÇ backslash´Â °¢°¢, 4°³ÀÇ backslash·Î ±â¼úÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. ÀÌ 4°³ÀÇ backslash´Â, ¿ø·¡ÀÇ ¹®ÀÚ¿ Á¤¼ö¸¦ ÇØ¼®ÇÒ ¶§¿¡ 2°³·Î °¨¼ÒµÇ°í ±×¸®°í, ÇÔ¼ö¸¦ ½ÇÇàÇÒ ¶§¿¡ ³»ºÎÀÇ ¹®ÀÚ¿ Á¤¼ö°¡ ÀçÇØ¼®µÇ°í 1°³¿¡ °¨¼ÒÇÕ´Ï´Ù.
ºñÆ® ¹®ÀÚ¿ Á¤¼ö´Â B(´ë¹®ÀÚ È¤Àº ¼Ò¹®ÀÚ)°¡ ÀοëºÎÈ£ÀÇ ½ÃÀÛÀÇ ÀüÀ» µÚµû¸£°í ÀÖ´Â(»çÀÌ¿¡ °ø¹éÀº ¾ø½À´Ï´Ù) Åë»óÀÇ ¹®ÀÚ¿ Á¤¼ö¿Í °°ÀÌ º¸ÀÔ´Ï´Ù. ¿¹¸¦ µé¸é B'1001'¿Í °°ÀÌ µË´Ï´Ù. ºñÆ® ¹®ÀÚ¿ Á¤¼ö Áß ¿¡¼ Çã°¡µÇ´Â ¹®ÀÚ´Â 0À¸·Î 1»ÓÀÔ´Ï´Ù.
±× ¿Ü¿¡µµ, ºñÆ® ¹®ÀÚ¿ Á¤¼ö´Â X'1FF'¿Í °°Àº Á¤µµ¿¡, ¼±µÎ¿¡ X(´ë¹®ÀÚ ¶Ç´Â ¼Ò¹®ÀÚ)¸¦ »ç¿ëÇØ 16ÁøÇ¥±â·Î ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ Ç¥±â´Â, °¢ 16 Áø¼ö°ªÀ» °¢°¢ 4°³ÀÇ 2 Áø¼ö°ª¿¡ ¿Å°Ü³õÀº ºñÆ® ¹®ÀÚ¿ Á¤¼ö·Î µ¿µîÇÕ´Ï´Ù.
¾î´À ÂÊÀÇ Çü½ÄÀÇ ºñÆ® ¹®ÀÚ¿ Á¤¼ö¿¡¼µµ, Åë»óÀÇ ¹®ÀÚ¿ Á¤¼ö¿Í °°ÀÌ º¹¼öÇà¿¡ °ÉÃļ °è¼ÓÇØ ¾µ ¼ö°¡ ÀÖ½À´Ï´Ù. ´Þ·¯ ÀοëºÎÈ£ºÎ´Â ºñÆ® ¹®ÀÚ¿ Á¤¼ö¿¡¼´Â »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.
¼öÄ¡ Á¤¼ö´Â ¾Æ·¡¿Í °°Àº ÀϹÝÀûÀÎ ÇüÅ·Π¹Þ¾ÆµéÀÏ ¼ö ÀÖ½À´Ï´Ù.
digits digits .[ digits ][e[+-] digits ] [ digits ]. digits [e[+-] digits ] digits e[+-] digits
¿©±â¼ digits ´Â 1°³ÀÌ»óÀÇ 10 Áø¼öÀÚ(0~9)ÀÔ´Ï´Ù. ¼Ò¼öÁ¡À» »ç¿ëÇÏ´Â °æ¿ì´Â, Àû¾îµµ 1°³ÀÇ ¼ýÀÚ°¡ ¼Ò¼öÁ¡ÀÇ ÀüÀ̳ª ÈÄ¿¡ ¾øÀ¸¸é ¾ÈµË´Ï´Ù. Áö¼ö ±âÈ£e°¡ ºÙ´Â Çü½ÄÀ» »ç¿ëÇÏ´Â °æ¿ì¿¡´Â eÀÇ µÚ¿¡ Àû¾îµµ 1°³ÀÇ ¼ýÀÚ°¡ ¾øÀ¸¸é ¾ÈµË´Ï´Ù. °ø¹éÀ̳ª ´Ù¸¥ ¹®ÀÚ´Â, Á¤¼ö¾È¿¡ ¹¯À» ¼ö ¾ø½À´Ï´Ù. Ç÷¯½º ¶Ç´Â ¸¶À̳ʽºÀÇ ºÎÈ£¸¦ ¼±µÎ¿¡ ºÙ¿©µµ, Á¤¼öÀÇ ÀϺζó°í´Â º¸ÀÌÁö ¾Ê´Â °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä. ÀÌ·¯ÇÑ ºÎÈ£´Â Á¤¼ö¿¡ Àû¿ëµÇ´Â ¿¬»êÀÚ·Î °£ÁÖÇØÁý´Ï´Ù.
¾Æ·¡¿Í °°ÀÌ´Â À¯È¿ÇÑ ¼öÄ¡ Á¤¼öÀÇ ¸î°³ÀÇ ¿¹ÀÔ´Ï´Ù.
42
3.5
4.
.001
5e2
1.925e-3
¼Ò¼öÁ¡µµ Áö¼öµµ Æ÷ÇÔÇÏÁö ¾Ê´Â ¼öÄ¡ Á¤¼öÀÇ °æ¿ì, ¿ì¼± ±× °ªÀÌ integerÇü(32 ºñÆ®)¿¡ ÀûÇÕÇϸé integerÇüÀÌ´Ù°í º¸ÀÔ´Ï´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì, bigintÇü(64 ºñÆ®)À¸·Î ÀûÇÕÇϸé bigintÇüÀ¸·Î °£ÁÖÇØÁý´Ï´Ù. ¾î´À Âʵµ ¾Æ´Ñ °æ¿ì´Â, numericÇüÀ¸·Î °£Áֵ˴ϴÙ. Á¤¼ö°¡ ¼Ò¼öÁ¡ ¶Ç´Â Áö¼ö ȤÀº ±× ¾çÂÊ ¸ðµÎ¸¦ Æ÷ÇÔÇÑ °æ¿ì´Â, Ç×»ó ÃÖÃÊ·Î numericÇüÀÌ´Ù°í º¸ÀÔ´Ï´Ù.
¼öÄ¡ Á¤¼ö¿¡ ÃÖÃÊ·Î ÇÒ´çÇØÁö´Â µ¥ÀÌÅÍÇüÀº, ÇüÅÂ ÇØ°á ¾Ë°í¸®ÁòÀÇ °³½ÃÁ¡¿¡ Áö³ªÁö ¾Ê½À´Ï´Ù. ´ëºÎºÐÀÇ °æ¿ì, Á¤¼ö¿¡´Â ¹®¸Æ¿¡ ±Ù°ÅÇØ ÀÚµ¿ÀûÀ¸·Î ¿Ã¹Ù¸¥ ÇüŰ¡ ÇÒ´çµË´Ï´Ù. ÇÊ¿äÇϸé, ƯÁ¤ÀÇ µ¥ÀÌÅÍÇüÀ» ij½ºÆ® ÇØ, ¼öÄ¡°¡ ±× µ¥ÀÌÅÍÇüÀ¸·Î¼ ÇØ¼®µÇµµ·Ï °Á¦ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, ÀÌÇÏ¿Í °°ÀÌ ÇØ ¼öÄ¡¸¦ realÇü(float4)À¸·Î¼ ó¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù.
REAL '1.23' -- ¹®ÀÚ¿ ¼½Ä 1.23::REAL -- (¿ª»çÀûÀÎ) PostgreSQL ¼½Ä
»ç½Ç, À̰͵éÀº ÀÌÇÏ·Î ¼³¸íÇÏ´Â ÀϹÝÀûÀΠij½ºÆ® ±â¹ýÀÇ Æ¯º°ÇÑ °æ¿ìÀÔ´Ï´Ù.
ÀÓÀÇÀÇ ÇüÅÂÀÇ Á¤¼ö´Â ¾Æ·¡¿Í °°Àº Ç¥±âÀÇ ¾î´ÀÂÊÀÌµç »ç¿ëÇØ ÀÔ·ÂÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
type ' string ' ' string ':: type CAST ( ' string ' AS type )
¹®ÀÚ¿ Á¤¼öÀÇ ÅØ½ºÆ®´Â type ·Î ºÒ¸®´Â ÇüÅÂÀÇ ÀÔ·Â º¯È¯ ·çƾÀ¸·Î °Ç³×¹Þ½À´Ï´Ù. °á°ú´Â Áö½Ã¹ÞÀº ÇüÅÂÀÇ Á¤¼öÀÔ´Ï´Ù. ¸í½ÃÀûÀÎ ÇüÅ ij½ºÆ®´Â, Á¤¼ö°¡ ¾î´À ÇüŰ¡ ¾Æ´Ï¸é ¾ÈµÇ´Â °Íó·³ ºÙ¾î ¾Ö¸ÅÇÑ Á¡ÀÌ ¾øÀ¸¸é(¿¹¸¦ µé¸é Á¤¼ö°¡ Á÷Á¢ Å×ÀÌºí¿¿¡ ´ëÀԵǰí ÀÖ´Â °æ¿ì) »ý·« ÇØµµ »ó°üÇÏÁö ¾Ê½À´Ï´Ù. ±× °æ¿ì ÀÚµ¿ÀûÀ¸·Î °Á¦ ÇüŰ¡ µË´Ï´Ù.
¹®ÀÚ¿ Á¤¼ö´Â Åë»óÀÇ SQL ±â¹ý¿¡¼µµ ´Þ·¯ ÀοëºÎÈ£ºÎ¿¡¼µµ ±â¼úÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
ÇÔ¼ö¿Í °°Àº ±¸¹®À» »ç¿ëÇØ °Á¦ ÇüŸ¦ ÁöÁ¤ÇÏ´Â Àϵµ °¡´ÉÇÕ´Ï´Ù.
typename ( ' string ' )
±×·¯³ª, ¸ðµç ÇüÅÂÀÇ À̸§À¸·Î ÀÌ ¹æ¹ýÀº »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ ¾Æ´Õ´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀºSection 4.2.8À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
::, CAST()³ª ÇÔ¼ö È£Ãâ ±¸¹®µµ, Section 4.2.8 ±×¸®°í ¼³¸íÇÑ´ë·Î, ÀÓÀÇÀÇ ½ÄÀÇ ½ÇÇà½ÃÀÇ ÇüÅ º¯È¯À» ÁöÁ¤Çϱâ À§Çؼ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª, ±¸¹®ÀûÀÎ ¾Ö¸ÅÇÔÀ» ¾ø¾Ö±â À§Çؼ, type ' string '¶ó´Â Çü½ÄÀº ´Ü¼øÇÑ ¸®ÅÍ·² Á¤¼ö¸¦ ÁöÁ¤ÇÏ´Â °æ¿ì¿¡°Ô¸¸ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¥ type ' string '±¸¹®¿¡´Â, ¹è¿Çü¿¡¼´Â µ¿ÀÛÇÏÁö ¾Ê´Â Á¦ÇÑÀÌ ÀÖ½À´Ï´Ù. ¹è¿ÇüÀÇ Á¤¼ö¸¦ ÁöÁ¤ÇÏ´Â °æ¿ì´Â ::Àΰ¡CAST()¸¦ »ç¿ëÇØ ÁÖ¼¼¿ä.
CAST()±¸¹®Àº SQL¿¡ µû¸£°í ÀÖ½À´Ï´Ù. type ' string '±¸¹®Àº, Ç¥ÁØÀ» ÀϹÝÈÇÑ °ÍÀÔ´Ï´Ù. SQL¿¡¼´Â, ÀÌ ±¸¹®À» ¸î °³ÀÇ µ¥ÀÌÅÍÇü¿¡¼¸¸ ±ÔÁ¤Çϰí ÀÖ½À´Ï´Ù. ±×·¯³ª, PostgreSQL¿¡¼´Â ¸ðµç ÇüÅ·Π»ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ::ºÎÂø ±¸¹®Àº, ÇÔ¼ö È£Ãâ ±¸¹®°ú °°°Ô ¿ª»çÀûÀ¸·Î PostgreSQL·Î »ç¿ëµÇ¾î ¿Ô½À´Ï´Ù.
¿¬»êÀÚ´Â NAMEDATALEN -1±îÁöÀÇ(±âº»°ªÀº 63) ±æÀÌ, ÀÌÇÏ¿¡ ³ªÅ¸³»´Â ¸®½ºÆ®¿¡ Æ÷ÇԵǴ ¹®ÀÚÀÇ ÁÙÀÔ´Ï´Ù.
+ - * / < > = ~ ! @ # % ^ & | ` ?
±×·¯³ª, ¿¬»êÀÚÀÇ À̸§¿¡´Â ¸î°³ÀÇ Á¦¾àÀÌ ÀÖ½À´Ï´Ù.
--°ú /*´Â ¿¬»êÀÚ¸í¾È¿¡ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. ¿Ö³ÄÇϸé À̰͵éÀº ÄÚ¸àÆ®ÀÇ ½ÃÀÛÀ̶ó°í ÇØ¼®µÇ±â ¶§¹®ÀÔ´Ï´Ù.
º¹¼ö ¹®ÀÚÀÇ ¿¬»êÀÚ¸íÀº, ±× À̸§ÀÌ Àû¾îµµ ¾Æ·¡¿Í °°Àº ¹®ÀÚÀÇ Çϳª ÀÌ»óÀ» Æ÷ÇÔÇÏÁö ¾Ê´Â ÀÌ»ó +³ª -·Î ³¡³¯ ¼ö°¡ ¾ø½À´Ï´Ù.
~ ! @ # % ^ & | ` ?
¿¹¸¦ µé¸é, @-Àº ¿¬»êÀÚ¸íÀ¸·Î¼ ÀÎÁ¤µÇ°í ÀÖ½À´Ï´Ù¸¸, *-Àº ÀÎÁ¤µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù. ÀÌ Á¦ÇÑ¿¡ ÀÇÇØ PostgreSQL´Â, SQL¿¡ ÁذÅÇÏ´Â Äõ¸®¸¦ ÅäÅ«³¢¸®ÀÇ »çÀÌ¿¡ °ø¹éÀ» ¿ä±¸ÇÏÁö ¾Ê°í, ÇØ¼®ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
ºñSQL Ç¥ÁØÀÇ ¿¬»êÀÚ¸íÀ» »ç¿ëÇÏ´Â °æ¿ì, Åë»óÀº ¾Ö¸ÅÇÔÀ» ȸÇÇÇϱâ À§Çؼ, ¼·Î ÀÌ¿ôÀÌ µÈ ¿¬»êÀÚ¸¦ °ø¹é¿¡¼ ´Ü¶ôÁöÀ» Çʿ䰡 ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é @À̶ó´Â ¿ÞÂÊ ´ÜÇ× ¿¬»êÀÚ¸¦ Á¤ÀÇÇßÀ» °æ¿ì, X*@Y¶ó°í´Â ¾µ ¼ö ¾ø½À´Ï´Ù. PostgreSQL°¡ À̰ÍÀ» È®½ÇÈ÷ 1°³°¡ ¾Æ´Ñ 2°³ÀÇ ¿¬»êÀÚ¸íÀ¸·Î¼ ÇØ¼®ÇÒ ¼ö ÀÖµµ·Ï, X* @Y¶ó°í ¾µ Çʿ䰡 ÀÖ½À´Ï´Ù.
¿µ¼ýÀÚ´Â ¾Æ´Ñ ¸î°³ÀÇ ¹®ÀÚ´Â, ¿¬»êÀÚÀÎ °ÍÀ¸·Î´Â ´Ù¸¥ Ư¼öÇÑ Àǹ̸¦ °¡Áö°í ÀÖ½À´Ï´Ù. »ç¿ë¹ýÀÇ ÀÚ¼¼ÇÑ °ÍÀº °¢°¢ÀÇ ±¸¹® ¿ä¼Ò¿¡ ´ëÇÑ °÷¿¡¼ ¼³¸íÇÕ´Ï´Ù. º»Àý¿¡¼´Â, ´ÜÁö ±× Á¸À縦 ¾Ë·Á ÀÌ·¯ÇÑ ¹®ÀÚÀÇ ¸ñÀûÀ» Á¤¸®ÇصӴϴÙ.
Á÷ÈÄ¿¡ ¼ýÀÚ°¡ °è¼ÓµÇ´Â ´Þ·¯ ±âÈ£($)´Â, ÇÔ¼ö Á¤ÀÇÀÇ º»Ã¼ ¶Ç´Â ÁغñµÈ ¹®ÁßÀÇ À§Ä¡ ¸Å°³º¯¼ö¸¦ ³ªÅ¸³»±â À§Çؼ »ç¿ëµË´Ï´Ù. ´Ù¸¥ ¹®¸Æ¿¡¼´Â ´Þ·¯ ±âÈ£´Â ¿¬»êÀÚ¸íÀÇ ÀϺÎÀÏÁöµµ ¸ð¸£°í, ´Þ·¯ ÀοëºÎÈ£ ó¸®µÈ ¹®ÀÚ¿ Á¤¼öÀÇ ÀϺηΠÇÒ ¼ö ÀÖ½À´Ï´Ù.
°ýÈ£(())´Â, Åë»ó´ë·Î ½ÄÀ» ¿ì¼±ÇÏ´Â Àǹ̸¦ °¡Áý´Ï´Ù. °æ¿ì¿¡ µû¶ó¼´Â °ýÈ£´Â, ƯÁ¤ÀÇ SQL ¸í·ÉÀÇ °íÁ¤ ±¸¹®ÀÇ ÀϺημ ¿ä±¸µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.
´ë°ýÈ£([])´Â, ¹è¿ ¿ä¼Ò¸¦ ¼±ÅÃÇϱâ À§Çؼ »ç¿ëµË´Ï´Ù. ¹è¿¿¡ °üÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â Section 8.10À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
Äĸ¶(,)´Â, ¸®½ºÆ®ÀÇ ¿ä¼Ò¸¦ ´Ü¶ôÁþ±â À§Çؼ ±¸¹®Àû ±¸Á¶·Î »ç¿ëµÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.
¼¼¹ÌÄÝ·Ð(;)Àº, SQL ¸í·ÉÀÇ ¸¶Áö¸·À» ÀǹÌÇÕ´Ï´Ù. ¹®ÀÚ¿ Á¤¼ö ¶Ç´Â ÀοëºÎÈ£ ÷ºÎ ½Äº°ÀÚ À̿ܿ¡¼´Â, ¸í·ÉÀÇ µµÁß¿¡´Â »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.
±¸µÎÁ¡(:)Àº, ¹è¿·ÎºÎÅÍ "ÀϺκÐ"À» ²¨³»±â À§Çؼ »ç¿ëµË´Ï´Ù (Section 8.10¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä). ¸î °³ÀÇ SQL ¹æ¾ð(¸ÅÀÔ SQLµî)¿¡¼´Â, ±¸µÎÁ¡Àº º¯¼ö¸íÀÇ Á¢µÎ»ç·Î¼ »ç¿ëµË´Ï´Ù.
asterisk(*)´Â, ¸î°³ÀÇ ¹®¸Æ¿¡ ´ëÇØ, Å×À̺íÇàÀ̳ª º¹ÇÕÇüÀÇ ¸ðµç Çʵ带 Ç¥ÇöÇϱâ À§Çؼ »ç¿ëµË´Ï´Ù. ¶Ç, Áý°è ÇÔ¼öÀÇ ÀÎÀڷμ »ç¿ëµÇ´Â °æ¿ìµµ Ư¼öÇÑ, Áï, ±× Áý°è±î ¸í½ÃÀûÀÎ ¸Å°³º¯¼ö¸¦ ÀüÇô ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â´Ù´Â Àǹ̸¦ °¡Áý´Ï´Ù.
ÇǸ®¾îµå(. )´Â ¼öÄ¡ Á¤¼ö Áß¿¡¼ »ç¿ëµË´Ï´Ù. ¶Ç, ½ºÅ°¸¶, Å×À̺í, ·Ä¸íÀ» ´Ü¶ôÁþ±â À§Çؼµµ »ç¿ëµË´Ï´Ù.
ÄÚ¸àÆ®´Â ÀÌÁß ÇÏÀÌÇÂÀ¸·Î ½ÃÀ۵Ǵ ÀÓÀÇÀÇ ¹®ÀÚÀÇ ÁÙ·Î, ÇàÀÇ ¸¶Áö¸·±îÁö °è¼ÓµË´Ï´Ù. ¿¹¸¦ µé¸é ÀÌÇÏ¿Í °°ÀÌ µË´Ï´Ù.
-- À̰ÍÀº Ç¥ÁØ SQLÀÇ ÄÚ¸àÆ®ÀÔ´Ï´Ù
±× ¹Û¿¡µµ, C¾ð¾î ¾ç½ÄÀÇ ºí·Ï ÄÚ¸àÆ®µµ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
/* ³×½ºÆ® µÈ º¹¼öÇà¿¡ °ÉÄ£´Ù * ÄÚ¸àÆ® /* ³×½ºÆ¼À̵åºí·Ï ÄÚ¸àÆ® */ */
ÄÚ¸àÆ®´Â /*À¸·Î ½ÃÀ۵Ǿî, ´ëÀÀÇÏ´Â */À¸·Î ³¡³³´Ï´Ù. ÀÌ·¯ÇÑ ºí·Ï ÄÚ¸àÆ®´Â C¾ð¾î¿Í´Â ´Þ¶ó, Ç¥ÁØ SQL·Î ±ÔÁ¤µÇ°í ÀÖµíÀÌ »óÀÚ·Î ÇÒ ¼ö ÀÖ½À´Ï´Ù. µû¶ó¼, ±âÁ¸ÀÇ ºí·Ï ÄÚ¸àÆ®¸¦ Æ÷ÇÔÇÒ °¡´É¼ºÀÌ ÀÖ´Â Å« ÄÚµåÀÇ ºí·ÏÀ» comment out ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
ÄÚ¸àÆ®´Â, ±× ÈÄÀÇ ±¸¹® ºÐ¼®À» Çϱâ Àü¿¡ ÀÔ·Â È帧À¸·ÎºÎÅÍ Á¦°ÅµÅ °ø¹é¿¡ ÀÇÇØ ÀûÀýÈ÷ ¿Å°Ü³õÀ» ¼ö ÀÖ½À´Ï´Ù.
Table 4-1´Â, PostgreSQLÀÇ ¿¬»êÀÚÀÇ ¿ì¼± ¼øÀ§¿Í °áÇÕ¼ºÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù. ´ëºÎºÐÀÇ ¿¬»êÀÚ´Â °°Àº ¿ì¼± ¼øÀ§¸¦ °¡Á®, ¿ÞÂÊ °áÇÕÇÕ´Ï´Ù. ¿¬»êÀÚÀÇ ¿ì¼± ¼øÀ§¿Í °áÇÕ¼ºÀº ÆÄ¼¿¡ Â¥³Ö¾îÁö°í ÀÖ½À´Ï´Ù. À̰ÍÀº ºñÁ÷°¨ÀûÀÎ µ¿ÀÛÀ» À̲ø °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, ºÒ¸®¾ð ¿¬»êÀÚ<¿Í >´Â, ºÒ¸®¾ð ¿¬»êÀÚ<=¿Í >=¿Í´Â ´Ù¸¥ ¿ì¼± ¼øÀ§¸¦ °¡Áý´Ï´Ù. °Ô´Ù°¡ 2Ç׿¬»êÀÚ¿Í ´ÜÇ× ¿¬»êÀÚ¸¦ Á¶ÇÕÇØ »ç¿ëÇÏ´Â °æ¿ì´Â °ýÈ£¸¦ ´õÇÒ Çʿ䰡 ÀÖ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é ¾Æ·¡¿Í °°Àº °æ¿ìÀÔ´Ï´Ù.
SELECT 5 ! - 6;
(Àº)´Â,
SELECT 5 ! (- 6);
·Î ÇØ¼®µË´Ï´Ù. ¿Ö³ÄÇϸé, ÆÄ¼´Â ! ÇÏÁö¸¸ Á߹̴ ¾Æ´Ï°í Á¢¹Ì¿¬»êÀڷμ Á¤Àǵǰí ÀÖÀ½À» ³¡±îÁö ±ú´ÝÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù. ÀÌ °æ¿ì, ¿ä±¸ÇÏ´Â °á°ú¸¦ ¾ò±â À§Çؼ´Â ¾Æ·¡¿Í °°ÀÌ ¾µ Çʿ䰡 ÀÖ½À´Ï´Ù.
SELECT (5 !) - 6;
À̰ÍÀÌ È®À强À» ¿ä±¸ÇÏ´Â °íÀÇ ´ë»óÀÔ´Ï´Ù.
Table 4-1. ¿¬»êÀÚÀÇ ¿ì¼± ¼øÀ§(°ÇÑ °ÍÀ¸·ÎºÎÅÍ)
| ¿¬»êÀÚ/¿ä¼Ò | °áÇÕ¼º | ¼³¸í |
|---|---|---|
| . | ¿ÞÂÊ | Å×À̺í/·Ä¸íÀÇ ´Ü¶ô ¹®ÀÚ |
| :: | ¿ÞÂÊ | PostgreSQL¹æ½ÄÀÇ ÇüÅ ij½ºÆ® |
| [ ] | ¿ÞÂÊ | ¹è¿ ¿ä¼Ò ¼±Åà |
| - | ¿À¸¥ÂÊ | ´ÜÇ× °¨»ê |
| ^ | ¿ÞÂÊ | ´©½Â |
| * / % | ¿ÞÂÊ | °ö¼À, ³ª´°¼À, À׿© |
| + - | ¿ÞÂÊ | °¡»ê, °¨»ê |
| IS | IS TRUE,IS FALSE,IS UNKNOWN,IS NULL | |
| ISNULL | NULLÀÎÁö ½ÃÇèÇÑ´Ù | |
| NOTNULL | NULLÀÌ ¾Æ´ÑÁö¸¦ ½ÃÇèÇÑ´Ù | |
| (±× ¿Ü) | ¿ÞÂÊ | ±× ¿Ü ¸ðµç, ȤÀº »ç¿ëÀÚ Á¤ÀÇÀÇ ¿¬»êÀÚ |
| IN | ¸â¹ö½ÊÀ» ¼³Á¤ÇÑ´Ù | |
| BETWEEN | ¹üÀ§³»¿¡ ÇÔÀ¯ | |
| OVERLAPS | ½Ã°£ °£°ÝÀÇ Áߺ¹ | |
| LIKE ILIKE SIMILAR | ¹®ÀÚ¿ ÆÐÅÏÀÇ ¸ÅĪ | |
| < > | ´õ ÀûÀº, ´õ Å« | |
| = | ¿À¸¥ÂÊ | µ¿µî, ´ëÀÔ |
| NOT | ¿À¸¥ÂÊ | ³í¸® ºÎÁ¤ |
| AND | ¿ÞÂÊ | ³í¸®Àû ¿¬°è |
| OR | ¿ÞÂÊ | ³í¸®Àû ºÐ¸® |
¿¬»êÀÚ ¿ì¼± ¼øÀ§ÀÇ ±ÔÄ¢Àº, »ó±â¿¡ Á¢ÇÑ ÆíÀÔ ¿¬»êÀÚ¿Í °°Àº À̸§À» °¡Áö´Â »ç¿ëÀÚ Á¤ÀÇ ¿¬»êÀÚ¿¡µµ µé¾î¸Â½À´Ï´Ù. ¿¹¸¦ µé¸é ¸¸¾à "+"¿¬»êÀÚ¸¦ ³»ÀçµÈ µ¶ÀÚÀûÀÎ µ¥ÀÌÅÍÇü¿¡ Á¤ÀÇÇϸé, »õ·Î¿î ¿¬»êÀÚ°¡ ¹«¾ùÀ» ÇÒÁö¿¡ °ü°è¾øÀÌ, "+"ÆíÀÔ ¿¬»êÀÚ¿Í °°Àº ¿ì¼± ¼øÀ§¸¦ °¡Áö°Ô µË´Ï´Ù.
´ÙÀ½ÀÇ ¿¹¿Í °°ÀÌ, OPERATOR±¸¹®À¸·Î ½ºÅ°¸¶·Î ¼ö½ÄµÈ ¿¬»êÀÚ¸íÀ» »ç¿ëÇÏ´Â °æ¿ì,
SELECT 3 OPERATOR(pg_catalog.+) 4;
OPERATOR±¸¹®Àº, Table 4-1ÀÇ "±× ¿Ü"¿¬»êÀÚ·Î ³ªÅ¸³ª°í ÀÖ´Â ±âº»°ªÀÇ ¿ì¼± ¼øÀ§¸¦ °¡Áø´Ù°í º¸ÀÔ´Ï´Ù. À̰ÍÀº, OPERATOR()¿¡ ¾î´À ƯÁ¤ÀÇ ¿¬»êÀÚ°¡ µé¾î°¡´Â °æ¿ì¿¡¼µµ ¹Ù²îÁö ¾Ê½À´Ï´Ù.