CREATE TABLE

Name

CREATE TABLE -- »õ·Î¿î Å×À̺íÀ» Á¤ÀÇÇÑ´Ù

Synopsis

CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE 
table_name
 ( [
  { 
column_name
 
data_type
 [ DEFAULT 
default_expr
 ] [ 
column_constraint
 [ ... ] ]
    | 
table_constraint

    | LIKE 
parent_table
 [ { INCLUDING | EXCLUDING } { DEFAULTS | CONSTRAINTS | INDEXES } ] ... }
    [, ... ]
] )
[ INHERITS ( 
parent_table
 [, ... ] ) ]
[ WITH ( 
storage_parameter
 [= 
value
] [, ... ] ) | WITH OIDS | WITHOUT OIDS ]
[ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
[ TABLESPACE 
tablespace
 ]


column_constraint
¿¡´Â, ´ÙÀ½ÀÇ ±¸¹®ÀÌ µé¾î°©´Ï´Ù.

[ CONSTRAINT 
constraint_name
 ]
{ NOT NULL | 
  NULL | 
  UNIQUE 
index_parameters
 |
  PRIMARY KEY 
index_parameters
 |
  CHECK ( 
expression
 ) |
  REFERENCES 
reftable
 [ ( 
refcolumn
 ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]
    [ ON DELETE 
action
 ] [ ON UPDATE 
action
 ] }
[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]

¶Ç,
table_constraint
¿¡´Â, ´ÙÀ½ÀÇ ±¸¹®ÀÌ µé¾î°©´Ï´Ù.

[ CONSTRAINT 
constraint_name
 ]
{ UNIQUE ( 
column_name
 [, ... ] ) 
index_parameters
 |
  PRIMARY KEY ( 
column_name
 [, ... ] ) 
index_parameters
 |
  CHECK ( 
expression
 ) |
  FOREIGN KEY ( 
column_name
 [, ... ] ) REFERENCES 
reftable
 [ ( 
refcolumn
 [, ... ] ) ]
    [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE 
action
 ] [ ON UPDATE 
action
 ] }
[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]

UNIQUE¹×PRIMARY KEYÁ¦¾à³»ÀÇ
index_parameters
´Â ÀÌÇÏ¿Í °°½À´Ï´Ù.

[ WITH ( 
storage_parameter
 [= 
value
] [, ... ] ) ]
[ USING INDEX TABLESPACE 
tablespace
 ]

¼³¸í

CREATE TABLE´Â, ÇöÀçÀÇ µ¥ÀÌŸº£À̽º¿¡ »õ·Î¿î ÇÏ´ÃÀÇ Å×À̺íÀ» ÀÛ¼ºÇÕ´Ï´Ù. ÀÛ¼ºÇÑ Å×À̺íÀº ÀÌ Ä¿¸àµå¸¦ ½ÇÇàÇÑ À¯Àú°¡ ¼ÒÀ¯ÇÕ´Ï´Ù.

schema¸íÀ» ºÙÀÏ ¼ö ÀÖ°í ÀÖ´Â °æ¿ì(¿¹¸¦ µé¸é,CREATE TABLE myschema.mytable ...), Å×À̺íÀº ÁöÁ¤µÈ schema·Î ÀÛ¼ºµË´Ï´Ù. schema¸íÀÌ ¾øÀ¸¸é, Å×À̺íÀº ÇöÀçÀÇ schema·Î ÀÛ¼ºµË´Ï´Ù. ¶Ç, ÀϽà Å×À̺íÀº Ưº°ÇÑ schema¿¡ Á¸ÀçÇϱâ À§ÇØ(¶§¹®¿¡), ÀϽà Å×À̺íÀÇ ÀÛ¼º½Ã¿¡ schema¸íÀ» ÁÙ ¼ö ¾ø½À´Ï´Ù. Å×À̺í¸íÀº, °°Àº schema³»ÀÇ ´Ù¸¥ Å×À̺í, ¼ø¼­, À妽º, ºä¿Í´Â ´Ù¸¥ À̸§À¸·Î ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

°Ô´Ù°¡CREATE TABLE´Â, ÀÛ¼ºÇÏ´Â Å×À̺íÀÇ 1Çà¿¡ ´ëÀÀÇÏ´Â º¹ÇÕÇüÀÇ µ¥ÀÌÅÍÇüÀ» ÀÛ¼ºÇÕ´Ï´Ù. µû¶ó¼­, Å×À̺íÀº, °°Àº schema³»ÀÇ ±âÁ¸ÀÇ µ¥ÀÌÅÍÇü°ú °°Àº À̸§À» °¡Áú ¼ö°¡ ¾ø½À´Ï´Ù.

Á¦¾à±¸¿¡´Â, »ðÀÔ, °»½Å Á¶ÀÛÀ» ½Ç½ÃÇϱâ À§Çؼ­(¶§¹®¿¡), »õ·Î¿î Çà, ¶Ç´Â °»½ÅÇÏ´Â ÇàÀÌ Ã¤¿ìÁö ¾ÊÀ¸¸é ¾È µÇ´Â Á¦¾à(°Ë»ç Ç׸ñ)À» ÁöÁ¤ÇÕ´Ï´Ù. Á¦¾à±¸´Â »ý·« °¡´ÉÇÕ´Ï´Ù. Á¦¾àÀº, Å×ÀÌºí³»¿¡¼­ ¿©·¯°¡Áö À¯È¿ÇÑ °ªÀÇ ÁýÇÕÀ» Á¤ÀÇÇÒ ¶§, µµ¿òÀÌ µÇ´Â SQL ¿ÀºêÁ§Æ®ÀÔ´Ï´Ù.

Á¦¾àÀÇ Á¤ÀÇ¿¡´Â Å×À̺í Á¦¾à°ú ¿­Á¦¾àÀ̶ó°í ÇÏ´Â 2 Á¾·ù°¡ ÀÖ½À´Ï´Ù. ¿­Á¦¾àÀº ¿­Á¤ÀÇÀÇ ÀϺημ­ Á¤Àǵ˴ϴÙ. Å×À̺í Á¦¾à Á¤ÀÇ´Â, ƯÁ¤ÀÇ ¿­°ú´Â ¹­À» ¼ö ÀÖÁö ¾Ê°í, º¹¼öÀÇ ¿­À» ÇÔÀ¯ ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ¶Ç, ¸ðµç ¿­Á¦¾àÀº Å×À̺í Á¦¾àÀ¸·Î¼­ ±â¼úÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ¿­Á¦¾àÀº, 1°³ÀÇ ¿­¿¡°Ô¸¸ ¿µÇâÀ» ÁÖ´Â Á¦¾àÀ» À§ÇÑ, °£ÆíÇÑ ±â¼ú ¹æ¹ýÀ¸·Î Áö³ªÁö ¾Ê½À´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ

TEMPORARY or TEMP

ÀÌ ÆÄ¶ó¹ÌÅͰ¡ ÁöÁ¤µÇ¾úÀ» °æ¿ì, Å×À̺íÀº ÀϽà Å×À̺í·Î¼­ ÀÛ¼ºµË´Ï´Ù. ÀϽà Å×À̺íÀº, ±× ¼¼¼ÇÀÇ ³¡³ª, °æ¿ì¿¡ µû¶ó¼­´Â, ÇöÀçÀÇ Æ®·£Àè¼Ç(transaction)ÀÇ ¸¶Áö¸·(ÈļúÀÇON COMMIT¸¦ ÂüÁ¶)¿¡ ÀÚµ¿ÀûÀ¸·Î »èÁ¦µË´Ï´Ù. ÀϽà Å×À̺íÀÌ Á¸ÀçÇÏ´Â °æ¿ì, °°Àº À̸§À» °¡Áö´Â ±âÁ¸ÀÇ ¿µ¼Ó Å×À̺íÀº, schema ¼ö½Ä¸íÀ¸·Î ÂüÁ¶µÇ¾î ÀÖÁö ¾ÊÀº ÇÑ, ÇöÀçÀÇ ¼¼¼Ç¿¡¼­´Â ºñ°¡½Ã°¡ µË´Ï´Ù. ÀϽà Å×À̺í·Î ¸¸µé¾îÁö´Â À妽ºµµ, ¸ðµÎ ÀÚµ¿ÀûÀ¸·Î ÀϽÃÀûÀÎ °ÍÀÌ µË´Ï´Ù.

GLOBAL¶Ç´ÂLOCAL¸¦TEMPORARY³ªTEMPÀÇ Àü¿¡ ±â¼úÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù(»ý·« °¡´É). PostgreSQL¿¡¼­´Â, À̰͵éÀ» ÁöÁ¤Çصµ µ¿ÀÛÀÇ Â÷ÀÌ´Â ¾ø½À´Ï´Ù. ȣȯ¼º (À»)¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.

table_name

ÀÛ¼ºÇÏ´Â Å×À̺íÀÇ À̸§ÀÔ´Ï´Ù(schema ¼ö½Ä¸í¿¡¼­µµ °¡´É).

column_name

»õ·Î¿î Å×À̺í·Î ÀÛ¼ºµÇ´Â ¿­ÀÇ À̸§ÀÔ´Ï´Ù.

data_type

¿­ÀÇ µ¥ÀÌÅÍÇüÀÔ´Ï´Ù. À̰Ϳ¡´Â, ¹è¿­ ÁöÁ¤ÀÚ¸¦ Æ÷ÇÔÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. PostgreSQL·Î ¼­Æ÷Æ®µÇ´Â µ¥ÀÌÅÍÇüÀÇ Á¤º¸¿¡ °üÇÑ ÀÚ¼¼ÇÑ °ÍÀºChapter 8À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.

DEFAULT default_expr

DEFAULT±¸¸¦ ¿­Á¤ÀÇ¿¡ ºÙÀ̸é(ÀÚ), ±× ¿­¿¡ µðÆúÆ® µ¥ÀÌÅÍÄ¡¸¦ ÇÒ´çÇÒ ¼ö ÀÖ½À´Ï´Ù. °ªÀ¸·Î ÇØ¼­ ÁöÁ¤ÇÏ´Â °ÍÀº, ÀÓÀÇÀÇ ¹«º¯¼ö½ÄÀÔ´Ï´Ù(ºÎ¹®ÀÇ¿Í ÇöÀçÀÇ Å×ÀÌºí³»ÀÇ ´Ù¸¥ ¿­¿¡ ±³Â÷ ÂüÁ¶´Â Çã°¡µÇÁö ¾Ê½À´Ï´Ù). µðÆúÆ®½ÄÀÇ µ¥ÀÌÅÍÇüÀº ±× ¿­ÀÇ µ¥ÀÌÅÍÇü°ú ÀÏÄ¡ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

µðÆúÆ®½ÄÀº, ¸ðµç »ðÀÔ Á¶ÀÛ¿¡ ´ëÇØ, ±× ¿­¿¡ °ªÀÌ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì¿¡ »ç¿ëµË´Ï´Ù. ¿­¿¡ µðÆúƮġ°¡ ¾ø´Â °æ¿ì, µðÆúƮġ´Â NULL°¡ µË´Ï´Ù.

INHERITS ( parent_table [, ... ] )

INHERITS±¸·Î Å×À̺íÀÇ À϶÷À» ÁöÁ¤Çϸé(ÀÚ), »õ·Î¿î Å×À̺íÀº ÁöÁ¤µÈ Å×À̺íÀÇ ¸ðµç ¿­À» ÀÚµ¿ÀûÀ¸·Î °è½ÂÇÕ´Ï´Ù. ÀÌ ±¸´Â »ý·« °¡´ÉÇÕ´Ï´Ù.

INHERITS¸¦ »ç¿ëÇϸé(ÀÚ), »õ·Î¿î ¾ÆÀÌ Å×À̺í°ú ±× Ä£Å×À̺í(º¹¼ö°¡´É)°úÀÇ »çÀÌ¿¡ ¿µ¼ÓÀûÀÎ °ü·ÃÀÌ ÀÛ¼ºµË´Ï´Ù. Åë»ó, ºÎ¸ð¿¡°Ô·ÎÀÇ schema ¼ö½ÄÀڴ°ú °°ÀÌ ¾ÆÀÌ¿¡°Ôµµ ÀüÆÄ ÇÕ´Ï´Ù. ¶Ç, µðÆúÆ®¿¡¼­´Â, Ä£Å×À̺íÀÇ ÁÖ»ç °á°ú¿¡´Â ¾ÆÀÌ Å×À̺íÀÇ µ¥ÀÌÅͰ¡ Æ÷ÇԵ˴ϴÙ.

º¹¼öÀÇ Ä£Å×ÀÌºí¿¡ µ¿ÀϸíÀÇ ¿­ÀÌ Á¸ÀçÇÏ´Â °æ¿ì, ±×·¯ÇÑ µ¥ÀÌÅÍÇüÀÌ ÀÏÄ¡Çϰí ÀÖÁö ¾ÊÀ¸¸é, ¿¡·¯·Î¼­ º¸°íµË´Ï´Ù. °æÇÕÀÌ ¾øÀ¸¸é, ÀÌ·¯ÇÑ Áߺ¹ ÇÑ ¿­Àº »õ·Î¿î Å×À̺í·Î 1°³ÀÇ ¿­ÀÇ ÇüÅ¿¡ À¶Çյ˴ϴÙ. »õ·Î¿î Å×À̺íÀÇ ·Ä¸íÀÇ À϶÷¿¡ °è½ÂÇÏ´Â ¿­ÀÇ À̸§ÀÌ Æ÷ÇԵǴ °æ¿ìµµ, ±× µ¥ÀÌÅÍÇüÀº °è½ÂÇÏ´Â ¿­ÀÇ µ¥ÀÌÅÍÇü°ú ÀÏÄ¡Çϰí ÀÖÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. °Ô´Ù°¡ ±× ¿­Á¤ÀÇ´Â 1°³¿¡ À¶Çյ˴ϴÙ. ±×·¯³ª, µ¿ÀÏ ¸íĪÀÇ »õ·Î¿î ¿­ÀÇ ¼±¾ð³»¿¡¼­, °è½ÂÇÏ´Â ¿­°ú µ¿ÀÏÇÑ Á¦¾àÀ» ÁöÁ¤ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ÀÓÀÇÀÇ ¼±¾ðÀ¸·Î Á¦°øµÇ´Â Á¦¾àÀº, Á¤¸®ÇØ ¸ÓÁö µÇ¾î ¸ðµÎ°¡ »õ·Î¿î Å×ÀÌºí¿¡ Àû¿ëµË´Ï´Ù. »õ·Î¿î Å×À̺í·Î ¸í½ÃÀûÀ¸·Î ¿­ÀÇ µðÆúƮġ¸¦ ÁöÁ¤ÇßÀ» °æ¿ì, °è½ÂÇÑ ¿­¼±¾ð¿¡ À־ÀÇ ¸ðµç µðÆúƮġ´Â µ¡¾²±âµË´Ï´Ù. µðÆúƮġ¸¦ ÁöÁ¤ÇÏÁö ¾Ê¾Ò´ø °æ¿ì, Ä£Ãø¿¡¼­ µðÆúƮġ°¡ ÁöÁ¤µÇ°í ÀÖÀ» ¶§´Â, ±×·¯ÇÑ µðÆúƮġ°¡ ¸ðµÎ °°Àº °ªÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. °ªÀÌ ´Ù¸¥ °æ¿ì´Â ¿¡·¯°¡ µË´Ï´Ù.

LIKE parent_table [ { INCLUDING | EXCLUDING } { DEFAULTS | CONSTRAINTS | INDEXES } ]

LIKE±¸¿¡ Å×À̺íÀ» ÁöÁ¤Çϸé(ÀÚ), ÀÚµ¿ÀûÀ¸·Î ±× Å×À̺íÀÇ ¸ðµç ·Ä¸í, ±× µ¥ÀÌÅÍÇü, ºñNULL Á¦¾àÀÌ »õ·Î¿î Å×ÀÌºí¿¡ Ä«Çǵ˴ϴÙ.

INHERITS¿ÍÀÇ Â÷ÀÌ´Â, ÀÛ¼ºÇÑ ÈÄ, »õ·Î¿î Å×À̺í°ú ¿øÀÇ Å×À̺íÀÌ ¿ÏÀüÇÏ°Ô ºÐ¸®µÇ´Â °ÍÀÔ´Ï´Ù. ¿øÀÇ Å×ÀÌºí¿¡ÀÇ º¯°æÀº »õ·Î¿î Å×ÀÌºí¿¡´Â Àû¿ëµÇÁö ¾Ê½À´Ï´Ù. ¶Ç, ¿øÀÇ Å×À̺íÀ» Á¶ÀÛÇØµµ »õ·Î¿î Å×À̺íÀÇ µ¥ÀÌÅÍ´Â ¹ß°ßµÇÁö ¾Ê½À´Ï´Ù.

Ä«ÇÇÇÏ´Â ¿­ÀÇ µðÆúÆ®½ÄÀº,INCLUDING DEFAULTS°¡ ÁöÁ¤µÇ¾úÀ» °æ¿ì¿¡°Ô¸¸ Ä«Çǵ˴ϴÙ. µðÆúÆ®¿¡¼­´Â, µðÆúÆ®½ÄÀÌ Ä«ÇǵÇÁö ¾Ê±â ¶§¹®¿¡, »õ·Î¿î Å×À̺íÀÇ Ä«ÇÇµÈ ¿­Àº µðÆúƮġ·Î¼­ NULL¸¦ °¡Áö°Ô µË´Ï´Ù.

ºñNULL Á¦¾àÀº Ç×»ó »õ·Î¿î Å×ÀÌºí¿¡ Ä«Çǵ˴ϴÙ. CHECKÁ¦¾àÀº,INCLUDING CONSTRAINTS°¡ ÁöÁ¤µÇ¾úÀ» °æ¿ì¿¡°Ô¸¸ Ä«Çǵ˴ϴÙ. ´Ù¸¥ Á¾·ùÀÇ Á¦¾àÀº °áÄÚ Ä«ÇǵÇÁö ¾Ê½À´Ï´Ù. ¶Ç, ¿­Á¦¾à°ú Å×À̺í Á¦¾àÀ» ±¸º°ÇÏÁö ¾Ê½À´Ï´Ù. Á¦¾àÀÌ ¿ä±¸µÇ´Â °æ¿ì´Â, ¸ðµç °Ë»ç Á¦¾àÀÌ Ä«Çǵ˴ϴÙ.

INCLUDING INDEXES±¸¸¦ ÁöÁ¤ÇÏÁö ¾Ê´Â ÇÑ, ¿øÀÇ Å×À̺í»óÀÇ À妽º´Â ¿ÏÀüÈ÷ »õ·Î¿î Å×ÀÌºí¿¡´Â ÀÛ¼ºµÇÁö ¾Ê½À´Ï´Ù.

¶Ç,INHERITS¿Í ´Þ¸®, °°Àº À̸§ÀÇ ¿­À̳ª Á¦¾àÀ» °¡Áö´Â °æ¿ì, Ä«ÇÇµÈ ¿­°ú Á¦¾àÀº Á¤¸®ÇÏÁö ¾Ê½À´Ï´Ù. °°Àº À̸§ÀÌ ¸í½ÃÀûÀ¸·Î, ȤÀº ´Ù¸¥LIKE±¸·Î ÁöÁ¤µÇ¾úÀ» °æ¿ì, ¿¡·¯°¡ ÅëÁöµË´Ï´Ù.

CONSTRAINT constraint_name

»ý·« °¡´ÉÇÑ ¿­Á¦¾à, Å×À̺í Á¦¾àÀÇ À̸§ÀÔ´Ï´Ù. ¸¸¾à, ÀÌ Á¦¾à¿¡ À§¹ÝÇϸé(ÀÚ), Á¦¾à¸íÀÌ ¿¡·¯ ¸Þ¼¼Áö¿¡ Æ÷ÇÔµÇ°Ô µË´Ï´Ù. ±×·¯¹Ç·Î,col must be positive(Á¤¼ö°¡ ¾Æ´Ï¸é ¾ÈµÈ´Ù)¶ó°í ÇÏ´Â À̸§ÀÇ Á¦¾à¸íÀ» ºÎ¿©ÇÏ´Â °ÍÀ¸·Î, Ŭ¶óÀÌ¾ðÆ® ¾îÇø®ÄÉÀ̼ǿ¡ À¯¿ëÇÑ Á¦¾à Á¤º¸¸¦ °Ç³×ÁÙ ¼ö°¡ ÀÖ½À´Ï´Ù. (°ø¹éÀ» Æ÷ÇÔÇÑ Á¦¾à¸íÀ» ÁöÁ¤ÇÏ´Â °æ¿ì, ÀÌÁß ÀοëºÎÈ£°¡ ÇÊ¿äÇÕ´Ï´Ù. ) ÁöÁ¤µÇÁö ¾ÊÀ¸¸é, ½Ã½ºÅÛÀÌ À̸§À» »ý¼ºÇÕ´Ï´Ù.

NOT NULL

±× ¿­ÀÌ NULLÄ¡¸¦ °¡Áú ¼ö ¾ø´Â °ÍÀ» ÁöÁ¤ÇÕ´Ï´Ù.

NULL

±× ¿­ÀÌ NULLÄ¡¸¦ °¡Áú ¼ö ÀÖ´Â °ÍÀ» ÁöÁ¤ÇÕ´Ï´Ù. À̰ÍÀÌ µðÆúÆ®ÀÔ´Ï´Ù.

ÀÌ ±¸´Â ºñÇ¥ÁØÀûÀÎ SQL µ¥ÀÌŸº£À̽º¿ÍÀÇ È£È¯¼º (À») À§Çؼ­¸¸ Á¦°øµÇ°í ÀÖ½À´Ï´Ù. »õ·Î¿î ¾îÇø®ÄÉÀ̼ÇÀ¸·Î À̰ÍÀ» »ç¿ëÇÏ´Â °ÍÀº ÃßõÇÏÁö ¾Ê½À´Ï´Ù.

UNIQUE (¿­Á¦¾à)
UNIQUE ( column_name [, ... ] ) (°Ñ(Ç¥) Á¦¾à)

UNIQUEÁ¦¾àÀº, Å×À̺íÀÇ Çϳª ¶Ç´Â º¹¼öÀÇ ¿­·ÎºÎÅÍ µÇ´Â ±×·ìÀÌ, ÀÏÀÇÀÎ °ª¸¸À» °¡Áú ¼ö°¡ ÀÖ´Â °ÍÀ» ÁöÁ¤ÇÕ´Ï´Ù. ÀÏÀǼº Å×À̺í Á¦¾àÀÇ µ¿ÀÛÀº ÀÏÀǼº·ÄÁ¦¾à°ú °°½À´Ï´Ù¸¸, ÇÑÃþ ´õ º¹¼ö¿­¿¡ °ÉÄ¡´Â ±â´ÉÀ» °¡Áý´Ï´Ù.

ÀÏÀǼº Á¦¾à¿¡¼­´Â, NULLÄ¡´Â µ¿ÀÏÇÏ´Ù°í´Â º¸À̰í ÀÌ·ê ¼ö ÀÖ´Â.

°¢°¢ÀÇ ÀÏÀǼº Å×À̺í Á¦¾à¿¡´Â, ±× Å×À̺íÀÇ ´Ù¸¥ ÀÏÀǼº Á¦¾à ȤÀº ÇÁ¶óÀ̸Ӹ® Ű Á¦¾à¿¡ ÀÇÇØ À̸§ÀÌ ºÙ¿©Áø ¿­ÀÇ ÁýÇÕÀ̶õ, ´Ù¸¥ À̸§ÀÇ ¿­ÀÇ ÁýÇÕÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù (°°Àº À̸§À» ÁöÁ¤Çϸé(ÀÚ), °°Àº Á¦¾àÀÌ 2ȸ ³ªÅ¸³ª´Â ¸¸Å­ µË´Ï´Ù).

PRIMARY KEY (¿­Á¦¾à)
PRIMARY KEY ( column_name [, ... ] ) (°Ñ(Ç¥) Á¦¾à)

ÇÁ¶óÀ̸Ӹ® Ű Á¦¾àÀº, Å×À̺íÀÇ 1¿­ ¶Ç´Â º¹¼ö¿­ÀÌ ÀÏÀÇÀÎ(Áߺ¹ÀÌ ¾ø´Ù), ºñNULLÄ¡¸¸À» °¡Áö´Â °ÍÀ» ÁöÁ¤ÇÕ´Ï´Ù. ±â¼úÀûÀ¸·Î´Â,PRIMARY KEY´Â ´Ü¼øÇÑUNIQUE¿ÍNOT NULLÀÇ Æí¼ºÀÔ´Ï´Ù. ±×·¯³ª, ÇÁ¶óÀ̸Ӹ® ŰÀÎ °ÍÀº ´Ù¸¥ Å×À̺íÀÌ ±× ¿­ÁýÇÕÀ» ÀÏÀÇÀÎ Çà ½Äº°ÀÚ·Î °£ÁÖÇÒ ¼ö ÀÖ´Â °ÍÀ» ÀǹÌÇϹǷÎ, ¿­ÁýÇÕÀ» ÇÁ¶óÀ̸Ӹ® Ű¿Í ƯÁ¤Çϸé(ÀÚ), schema ¼³°è¿¡ °üÇÑ ¸ÞŸµ¥ÀÌŸ¸¦ Á¦°øÇÏ°Ô µË´Ï´Ù.

¿­Á¦¾àÀϱî Å×À̺í Á¦¾àÀϱ °ü°è¾øÀÌ, 1°³ÀÇ Å×À̺í·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ÇÁ¶óÀ̸Ӹ® Ű´Â 1°³ »ÓÀÔ´Ï´Ù.

ÇÁ¶óÀ̸Ӹ® Ű Á¦¾à¿¡´Â, ±× Å×ÀÌºí¿¡ Á¤ÀÇµÈ ´Ù¸¥ ÀÏÀǼº Á¦¾àÀ¸·Î Áö¸íµÈ ¿­ÀÇ ÁýÇÕ°ú´Â ´Ù¸¥ Æí¼ºÀÇ ¿­ÀÇ ÁýÇÕÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.

CHECK ( expression )

CHECK±¸´Â, »ðÀÔÀ̳ª °»½Å Á¶ÀÛÀ» ½Ç½ÃÇϱâ À§Çؼ­(¶§¹®¿¡), »õ·Î¿î Çà, ¶Ç´Â º¯°æÇÏ´Â ÇàÀÌ Ã¤¿ìÁö ¾ÊÀ¸¸é ¾È µÇ´Â, BooleanÇüÀÇ °á°ú¸¦ µ¹·ÁÁÖ´Â ½ÄÀ» ÁöÁ¤ÇÕ´Ï´Ù. ½ÄÀÇ Æò°¡°¡ TRUE ȤÀº UNKNOWN°¡ µÇ¸é ¼º°øÀÔ´Ï´Ù. ÇàÀÇ »ðÀÔ, °»½Å Á¶ÀÛÀÇ °á°ú, ½ÄÀÌ FALSE°¡ µÇ´Â °æ¿ì´Â, ¿¡·¯ ¿¹¿Ü°¡ »ý¼ºµÇ¾î »ðÀÔÀ̳ª °»½Å¿¡ ÀÇÇÑ µ¥ÀÌŸº£À̽ºÀÇ º¯°æÀº ÇàÇØÁöÁö ¾Ê½À´Ï´Ù. ¿­Á¦¾àÀ¸·Î¼­ ÁöÁ¤µÈ °Ë»ç Á¦¾àÀº, ±× ¿­ÀÇ °ª¸¸À» ÂüÁ¶ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. ÇÑÆí, Å×À̺í Á¦¾àÀ¸·Î¼­ ³ªÅ¸³ª´Â ½ÄÀº, º¹¼ö¿­À» ÂüÁ¶ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

ÇöÀç,CHECK½Ä¿¡´Â, ºÎ¹®Àdzª ÇöÀçÀÇ ÇàÀÇ ¿­ ÀÌ¿ÜÀÇ °ªÀ» Æ÷ÇÔÇÒ ¼ö ¾ø½À´Ï´Ù.

REFERENCES reftable [ ( refcolumn ) ] [ MATCH matchtype ] [ ON DELETE action ] [ ON UPDATE action ] (¿­Á¦¾à)
FOREIGN KEY ( column [, ... ] ) REFERENCES reftable [ ( refcolumn [, ... ] ) ] [ MATCH matchtype ] [ ON DELETE action ] [ ON UPDATE action ] (°Ñ(Ç¥) Á¦¾à)

ÀÌ·¯ÇÑ ±¸´Â, ¿ÜºÎ Ű Á¦¾àÀ» ÁöÁ¤ÇÕ´Ï´Ù. ¿ÜºÎ Ű Á¦¾àÀº, »õ·Î¿î Å×À̺íÀÇ Çϳª ¶Ç´Â º¹¼öÀÇ ¿­ÀÇ ÁýÇÕÀÌ, ÇÇÂüÁ¶ Å×À̺íÀÇ ÀϺÎÀÇ ÇàÀÇ ÇÇÂüÁ¶¿­(º¹¼ö°¡´É)¿¡ ÀÏÄ¡ÇÏ´Â °ªÀ» °¡ÁöÁö ¾ÊÀ¸¸é ¾È µÇ´Â °ÍÀ» ÁöÁ¤ÇÏ´Â °ÍÀÔ´Ï´Ù. refcolumn °¡ »ý·« µÇ¾úÀ» °æ¿ì, reftable ÀÇ ÇÁ¶óÀ̸Ӹ® ۰¡ »ç¿ëµË´Ï´Ù. ÇÇÂüÁ¶¿­Àº, ÇÇÂüÁ¶ Å×ÀÌºí¿¡ ´ëÇØ ÀÏÀǼº Á¦¾à ȤÀº ÇÁ¶óÀ̸Ӹ® Ű Á¦¾àÀ» °¡Áø ¿­ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. ÀϽà Å×À̺í°ú ¿µ¼Ó Å×À̺í°úÀÇ »çÀÌ¿¡ ¿ÜºÎ Ű Á¦¾àÀ» Á¤ÀÇÇÒ ¼ö ¾ø´Â °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä.

ÂüÁ¶¿­¿¡ »ðÀÔµÈ °ªÀº, ÇÇÂüÁ¶ Å×À̺í°ú ÇÇÂüÁ¶¿­ÀÇ °ª¿¡ ´ëÇØ¼­, ÁöÁ¤ÇÑ Á¶ÇÕÇüÀ¸·Î Á¶È¸µË´Ï´Ù. Á¶ÇÕÇü¿¡´Â 3 Á¾·ù°¡ ÀÖ½À´Ï´Ù. MATCH FULL,MATCH PARTIAL, µðÆúÆ®À̱⵵ ÇÑMATCH SIMPLEÁ¶ÇÕÇüÀÔ´Ï´Ù. MATCH FULL´Â ¸ðµç ¿ÜºÎ Ű¿­ÀÌ NULL°¡ µÇ´Â °æ¿ì¸¦ Á¦¿ÜÇØ, º¹¼ö¿­¿ÜºÎ ۰¡ ÀÖ´Â ¿­ÀÌ NULL°¡ µÇ´Â °ÍÀ» Çã°¡ÇÏÁö ¾Ê½À´Ï´Ù. MATCH SIMPLEÁ¶ÇÕÇüÀº, ¿ÜºÎ ŰÀÇ ´Ù¸¥ ºÎºÐÀÌ NULL°¡ ¾Æ´Ñ ÇÑ, ¿ÜºÎ ŰÀÇ ÀϺθ¦ NULL°¡ µÇ´Â °ÍÀ» Çã°¡ÇÕ´Ï´Ù. MATCH PARTIAL´Â ¾ÆÁ÷ ½ÇÀåµÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.

°Ô´Ù°¡ ÇÇÂüÁ¶¿­ÀÇ µ¥ÀÌÅͰ¡ º¯°æµÇ¾úÀ» °æ¿ì, ÀÌ Å×À̺íÀÇ ¿­ÀÇ µ¥ÀÌÅÍ¿¡ ¾î¶°ÇÑ µ¿ÀÛÀÌ ¹ß»ýÇÕ´Ï´Ù. ON DELETE±¸´Â, ÇÇÂüÁ¶ Å×À̺íÀÇ ÇÇÂüÁ¶ÇàÀÌ »èÁ¦µÇ¾úÀ» °æ¿ìÀÇ µ¿ÀÛÀ» ÁöÁ¤ÇÕ´Ï´Ù. (¿Í)°ú °°ÀÌON UPDATE±¸´Â, ÇÇÂüÁ¶ Å×À̺íÀÇ ÇÇÂüÁ¶¿­ÀÌ »õ·Î¿î °ª¿¡ °»½ÅµÇ¾úÀ» °æ¿ìÀÇ µ¿ÀÛÀ» ÁöÁ¤ÇÕ´Ï´Ù. ÇàÀÇ °»½ÅÀÌ ÀÖ¾úÀ» °æ¿ì¿¡¼­µµ, ÇÇÂüÁ¶¿­ÀÌ ½ÇÁ¦·Î º¯°æµÇÁö ¾Ê´Â °æ¿ì´Â, µ¿ÀÛÀº ½ÇÇàµÇÁö ¾Ê½À´Ï´Ù. Á¦¾àÀÌ Áö¿¬ °¡´ÉÀ̶ó°í ¼±¾ðµÇ°í À־,NO ACTION°Ë»ç ÀÌ¿ÜÀÇ ÂüÁ¶ µ¿ÀÛÀº Áö¿¬ ´çÇÏÁö ¾Ê½À´Ï´Ù. °¢ ±¸¿¡ ´ëÇØ, ÀÌÇÏÀÇ µ¿ÀÛÀ» ÁöÁ¤ °¡´ÉÇÕ´Ï´Ù.

NO ACTION

»èÁ¦ ȤÀº °»½ÅÀÌ ¿ÜºÎ Ű Á¦¾à À§¹ÝÀÌ µÇ´Â °ÍÀ» ³ªÅ¸³»´Â ¿¡·¯¸¦ ¹ß»ýÇÕ´Ï´Ù. Á¦¾àÀÌ Áö¿¬ °¡´ÉÇÑ °æ¿ì, ¾î¶°ÇÑ ÂüÁ¶ÇàÀÌ Á¸ÀçÇÏ´Â ÇÑ, ÀÌ ¿¡·¯´Â Á¦¾àÀÇ °Ë»ç ½ÃÁ¡¿¡¼­ ¹ß»ýÇÕ´Ï´Ù. À̰ÍÀº µðÆúÆ®ÀÇ µ¿ÀÛÀÔ´Ï´Ù.

RESTRICT

»èÁ¦ ȤÀº °»½ÅÀÌ ¿ÜºÎ Ű Á¦¾à À§¹ÝÀÌ µÇ´Â °ÍÀ» ³ªÅ¸³»´Â ¿¡·¯¸¦ ¹ß»ýÇÕ´Ï´Ù. °Ë»ç°¡ Áö¿¬ ÇÒ ¼ö ¾ø´Â Á¡À» Á¦¿ÜÇØ,NO ACTION¿Í °°½À´Ï´Ù.

CASCADE

»èÁ¦µÈ ÇàÀ» ÂüÁ¶Çϰí ÀÖ´Â ÇàÀº ¸ðµÎ »èÁ¦ÇÕ´Ï´Ù. ¶Ç, ÂüÁ¶Çϰí ÀÖ´Â ¿­ÀÇ °ªÀ», ÇÇÂüÁ¶¿­ÀÇ »õ·Î¿î °ªÀ¸·Î ÇÕ´Ï´Ù.

SET NULL

ÂüÁ¶ÇÏ´Â ¿­(º¹¼ö°¡´É)À» NULL·Î ¼³Á¤ÇÕ´Ï´Ù.

SET DEFAULT

ÂüÁ¶ÇÏ´Â ¿­(º¹¼ö°¡´É)À» ±× µðÆúƮġ·Î ¼³Á¤ÇÕ´Ï´Ù.

ÇÇÂüÁ¶¿­ÀÌ ºó¹øÇÏ°Ô °»½ÅµÇ´Â °æ¿ì, ¿ÜºÎ Ű¿­¿¡ À妽º¸¦ ºÙ¿© ±× ¿ÜºÎ Ű¿­¿¡ °ü·ÃÇÏ´Â ÂüÁ¶ µ¿ÀÛÀÌ º¸´Ù È¿À²ÀûÀ¸·Î ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï(µíÀÌ) ÇÏ´Â ÆíÀÌ ÁÁÀ» °ÍÀÔ´Ï´Ù.

DEFERRABLE
NOT DEFERRABLE

Á¦¾àÀ» Áö¿¬ ½ÃŰ´Â °ÍÀÌ °¡´ÉÇѰ¡ ¾î¶²°¡¸¦ Á¦¾îÇÕ´Ï´Ù. Áö¿¬ ºÒ°¡ÀÇ Á¦¾àÀº °¢ Ä¿¸àµåÀÇ µÚ °ð¹Ù·Î °Ë»çµË´Ï´Ù. Áö¿¬ °¡´ÉÇÑ Á¦¾àÀÇ °Ë»ç´Â, ( SET CONSTRAINTS Ä¿¸àµå¸¦ »ç¿ëÇØ) Æ®·£Àè¼Ç(transaction)ÀÇ Á¾·á½Ã±îÁö Áö¿¬ ½Ãų ¼ö°¡ ÀÖ½À´Ï´Ù. NOT DEFERRABLE°¡ µðÆúÆ®ÀÔ´Ï´Ù. ÇöÀç, ¿ÜºÎ Ű Á¦¾à¸¸ÀÌ ÀÌ ±¸¸¦ ¹Þ¾ÆµéÀÏ ¼ö°¡ ÀÖ½À´Ï´Ù. ´Ù¸¥ Á¦¾àÀº Áö¿¬ ½Ãų ¼ö°¡ ¾ø½À´Ï´Ù.

INITIALLY IMMEDIATE
INITIALLY DEFERRED

Á¦¾àÀÌ Áö¿¬ °¡´ÉÇÑ °æ¿ì, ÀÌ ±¸´Â Á¦¾à °Ë»ç¸¦ ½Ç½ÃÇÏ´Â µðÆúÆ®ÀÇ ½Ã±â¸¦ ÁöÁ¤ÇÕ´Ï´Ù. Á¦¾àÀÌINITIALLY IMMEDIATEÀÇ °æ¿ì, °¢ ¹®ÀÇ ½ÇÇà ÈÄ¿¡ °Ë»çµË´Ï´Ù. À̰ÍÀÌ µðÆúÆ®ÀÔ´Ï´Ù. Á¦¾àÀÌINITIALLY DEFERREDÀÇ °æ¿ì, Æ®·£Àè¼Ç(transaction)ÀÇ Á¾·á½Ã¿¡°Ô¸¸ °Ë»çµË´Ï´Ù. Á¦¾à °Ë»çÀÇ ½Ã±â´Â SET CONSTRAINTS Ä¿¸àµå¸¦ »ç¿ëÇØ º¯°æÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

WITH ( storage_parameter [= value ] [, ... ] )

ÀÌ ±¸´Â, Å×ÀÌºí ¶Ç´Â À妽º¿¡ ´ëÇØ¼­ »ý·« °¡´ÉÇÑ °Ý³³ ÆÄ¶ó¹ÌÅ͸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº ÀúÀå(Storage) ÆÄ¶ó¹ÌÅÍ À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä. Å×À̺í¿ëÀÇWITH¿¡´Â,OIDS=TRUE(ȤÀº ´Ü¼øÇÑOIDS)¸¦ Æ÷ÇÔÇØ, »õ·Î¿î Å×À̺íÀÇ ÇàÀ» Çà¿¡ ÇÒ´çÇÒ ¼ö ÀÖ¾ú´ø OID(¿ÀºêÁ§Æ® ½Äº°ÀÚ)¸¦ °¡ÁöÁö ¾ÊÀ¸¸é ¾È µÇ´Â °ÍÀ» ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ¶Ç,OIDS=FALSE¸¦ Æ÷ÇÔÇØ, OID¸¦ °¡ÁöÁö ¾Ê´Â °ÍÀ» ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. OIDS°¡ ÁöÁ¤µÇÁö ¾Ê´Â °æ¿ì, µðÆúÆ®ÀÇ ¼³Á¤Àºdefault_with_oids¼³Á¤ ÆÄ¶ó¹ÌÅÍ¿¡ ÀÇÁ¸ÇÕ´Ï´Ù. (»õ·Î¿î Å×À̺íÀÌ OID¸¦ °¡Áö´Â Å×ÀÌºí¿¡¼­ °è½ÂÇÏ´Â °æ¿ì, Ä¿¸àµå·ÎOIDS=FALSE¿Í ÁöÁ¤Çصµ °­Á¦ÀûÀ¸·ÎOIDS=TRUE °¡ µË´Ï´Ù. )

OIDS=FALSE°¡ ¸í½ÃÀû ¶Ç´Â ¾Ï¹¬ÀûÀ¸·Î ÁöÁ¤µÇ°í ÀÖ´Â °æ¿ì, »õ·Î¿î Å×À̺íÀº OID¸¦ °Ý³³ÇÏÁö ¾Ê½À´Ï´Ù. ¶Ç, »ðÀԵǴ Çà¿¡´Â OID¸¦ ÇÒ´çÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ·¯ÇÑ µ¿ÀÛÀº ÀϹÝÀûÀ¸·Î À¯ÀÍÇÏ´Ù¶ó°í »ý°¢µË´Ï´Ù. ±×°ÍÀº, OIDÀÇ »ç¿ëÀ» ¾ïÁ¦ÇØ 32 ºñÆ®ÀÇ OID Ä«¿îÅÍÀÇ È¸Àü Áֱ⸦ ¿¬ÀåÇÒ ¼ö ÀÖ±â (À§ÇØ)¶§¹®¿¡ÀÔ´Ï´Ù. Ä«¿îÅͰ¡ ÀÏÁÖ Çϸé(ÀÚ) OIDÀÇ ÀÏÀǼºÀ» º¸ÁõÇÒ ¼ö ¾ø°Ô µÇ¹Ç·Î, ±× À¯¿ë¼ºÀ» °¨¼Ò½ÃŰ°Ô µË´Ï´Ù. ¶Ç, OID¸¦ ¾ø¾Ö´Â °ÍÀ¸·Î, Å×À̺í 1Çà ´ç(´ëºÎºÐÀÇ ¸Ó½ÅÀ¸·Î) 4¹ÙÀÌÆ®ºÐ , Å×À̺íÀ» µð½ºÅ©¿¡ °Ý³³Çϱâ À§ÇÑ ¿ë·®À» °æ°¨ÇϹǷÎ, ´Ù¼Ò ¼º´ÉÀÌ Çâ»óÇÕ´Ï´Ù.

Å×À̺íÀÇ ÀÛ¼º ÈÄ¿¡ OID¸¦ »èÁ¦ÇÏ·Á¸é, ALTER TABLE ¸¦ »ç¿ëÇØ ÁÖ¼¼¿ä.

WITH OIDS
WITHOUT OIDS

À̰ÍÀº ³°Àº ±¸¹®À¸·Î, °¢°¢WITH (OIDS) and WITH (OIDS=FALSE)¿Í °°½À´Ï´Ù. OIDSÀÇ ¼³Á¤°ú °Ý³³ ÆÄ¶ó¹ÌÅÍÀÇ ¼³Á¤ÀÇ ¾çÂÊ ¸ðµÎ¸¦ ÁöÁ¤ÇÏ°í ½ÍÀº °æ¿ì´Â, »ó¼úÀÇWITH ( ... )(À»)¸¦ »ç¿ëÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.

ON COMMIT

ON COMMIT¸¦ »ç¿ëÇØ, Æ®·£Àè¼Ç(transaction) ºí·ÏÀÇ Á¾·á½ÃÁ¡¿¡¼­ÀÇ ÀϽà Å×À̺íÀÇ µ¿ÀÛÀ» Á¦¾îÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌÇÏÀÇ 3°³ÀÇ ¿É¼ÇÀÌ ÀÖ½À´Ï´Ù.

PRESERVE ROWS

Æ®·£Àè¼Ç(transaction)ÀÇ Á¾·á½ÃÁ¡À¸·Î½á, Ưº°ÇÑ µ¿ÀÛÀº ÇàÇØÁöÁö ¾Ê½À´Ï´Ù. À̰ÍÀÌ µðÆúÆ®ÀÇ µ¿ÀÛÀÔ´Ï´Ù.

DELETE ROWS

ÀϽà Å×ÀÌºí³»ÀÇ ¸ðµç ÇàÀº, °¢ Æ®·£Àè¼Ç(transaction) ºí·ÏÀÇ ¸¶Áö¸·À¸·Î »èÁ¦µË´Ï´Ù. ±âº»ÀûÀ¸·Î´Â, À§Å¹ÀÇ ¹ø¿¡ ÀÚµ¿ÀûÀ¸·Î TRUNCATE >°¡ ½ÇÇàµË´Ï´Ù.

DROP

ÀϽà Å×À̺íÀº, ÇöÀçÀÇ Æ®·£Àè¼Ç(transaction) ºí·ÏÀÇ Á¾·á½ÃÁ¡À¸·Î½á »èÁ¦µË´Ï´Ù.

TABLESPACE tablespace

tablespace ´Â, »õ·Î¿î Å×À̺íÀÌ ÀÛ¼ºµÇ´Â Å×ÀÌºí °ø°£¸íÀÔ´Ï´Ù. ÁöÁ¤µÇÁö ¾ÊÀº °æ¿ì,default_tablespaceÀÌ »ç¿ëµÇ°Å³ª, ¶Ç´Â default_tablespace°¡ ºó ¹®ÀÚ¿­ÀÎ °æ¿ì µ¥ÀÌÅͺ£À̽º°¡ »ý¼ºµÈ ±âº» Å×ÀÌºí½ºÆäÀ̽º¸¦ »ç¿ëÇÕ´Ï´Ù.

USING INDEX TABLESPACE tablespace

ÀÌ Àý¿¡ ÀÇÇØ,UNIQUE¶Ç´ÂPRIMARY KEYÁ¦¾à¿¡ °ü·ÃÇÑ À妽º¸¦ ÀÛ¼ºÇÏ´Â Å×ÀÌºí °ø°£À» ¼±ÅÃÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì,default_tablespace°¡ ÁöÁ¤µÇ°Å³ª, ¸¸¾à default_tablespace°¡ ºó ¹®ÀÚ¿­À̶ó¸é ±âº» Å×ÀÌºí ½ºÅ×À̽º°¡ ÁöÁ¤µË´Ï´Ù.

ÀúÀå(Storage) ÆÄ¶ó¹ÌÅÍ

WITH±¸¿¡ ÀÇÇØ, Å×ÀÌºí ¹×UNIQUE¶Ç´ÂPRIMARY KEYÁ¦¾à°ú °ü·ÃÀÖ´ø À妽ºÀǰݳ³ ÆÄ¶ó¹ÌÅ͸¦ ÁöÁ¤ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. À妽ºÀÇ °Ý³³ ÆÄ¶ó¹ÌÅÍ¿¡ ´ëÇØ¼­´Â CREATE INDEX À¸·Î ¼³¸íÇÕ´Ï´Ù. ÇöÀç, Å×ÀÌºí¿¡¼­´Â ÀÌÇÏÀÇ °Ý³³ ÆÄ¶ó¹ÌÅ͸¸ÀÌ ¼³Á¤ °¡´ÉÇÕ´Ï´Ù.

FILLFACTOR

Å×À̺íÀÇ fillfactor´Â 10¿¡¼­ 100±îÁöÀÇ »çÀÌÀÇ ºñÀ²(ÆÛ¼¾Æ®)ÀÔ´Ï´Ù. 100(¿ÏÀüÇÏ°Ô ¸ðµÎ »ç¿ë)ÀÌ µðÆúÆ®ÀÔ´Ï´Ù. º¸´Ù ÀÛÀº °ªÀ» ÁöÁ¤Çϸé(ÀÚ),INSERTÁ¶ÀÛÀº ÁöÁ¤ÇÑ ºñÀ²±îÁö ¹Û¿¡ Å×ÀÌºí ÆäÀÌÁö¸¦ »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù. °¢ ÆäÀÌÁöÀÇ ³ª¸ÓÁöÀÇ ºÎºÐÀº, ±× ÆäÀÌÁö³»ÀÇ Çà °»½Å¿ëÀ¸·Î ¿¹¾àµË´Ï´Ù. À̰Ϳ¡ ÀÇÇØUPDATE´Â, ¿øÀÇ Çà°ú °°Àº ÆäÀÌÁö»ó¿¡ °»½Å ³¡³­ ÇàÀÇ º¹Á¦¸¦ °Ý³³ÇÒ ¼ö°¡ ÀÖ°Ô µË´Ï´Ù. À̰ÍÀº ´Ù¸¥ ÆäÀÌÁö¿¡ °»½Å ³¡³­ ÇàÀÇ º¹Á¦¸¦ °Ý³³ ÇÏ´Â °Íº¸´Ùµµ È¿À²ÀûÀÔ´Ï´Ù. Ç׸ñÀÇ °»½ÅÀÌ ÀüÇô ¾ø´Â Å×ÀÌºí¿¡¼­´Â, ¿ÏÀüÇÏ°Ô ¸ðµç °ÍÀ» »ç¿ëÇÏ´Â °ÍÀÌ ÃÖ¼±ÀÇ ¼±ÅÃÀÔ´Ï´Ù. ±×·¯³ª, °»½ÅÀÌ ¸Å¿ì ¸¹Àº Å×ÀÌºí¿¡¼­´Â º¸´Ù ÀÛÀº fillfactor°¡ ÀûÀýÇÕ´Ï´Ù.

ÁÖ¼®

½Å±ÔÀÇ ¾îÇø®ÄÉÀ̼ÇÀ¸·Î OID¸¦ »ç¿ëÇÏ´Â °ÍÀº ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ÇÒ ¼ö ÀÖ´Â ÇÑ, Å×À̺íÀÇ ÇÁ¶óÀ̸Ӹ® Ű·Î¼­SERIAL³ª ´Ù¸¥ ¼ø¼­ Á¦³×·¹ÀÌÅ͸¦ »ç¿ëÇÏ´Â (ºÐ)ÆíÀÌ ¹Ù¶÷Á÷ÇÏ´Ù°í »ý°¢µË´Ï´Ù. ±×·¯³ª, ¾îÇø®ÄÉÀ̼ÇÀÌ Å×À̺íÀÇ Æ¯Á¤ÀÇ ÇàÀ» ½Äº°Çϱâ À§Çؼ­ OID¸¦ »ç¿ëÇÏ´Â °æ¿ì´Â, ±× Å×À̺íÀÇoid¿­¿¡ ÀÏÀǼº Á¦¾àÀ» ÀÛ¼ºÇÏ´Â °ÍÀ» Ãßõ ÇÕ´Ï´Ù. À̰Ϳ¡ ÀÇÇØ, Ä«¿îÅͰ¡ ÀÏÁÖ ÇØ ¹ö·ÈÀ» °æ¿ì¿¡¼­µµ, Å×ÀÌºí³»ÀÇ OID·Î ÀÏÀÇ¿¡ ÇàÀ» ½Äº°ÇÒ ¼ö ÀÖ´Â °ÍÀÌ º¸ÁõµÇ±â ¶§¹®ÀÔ´Ï´Ù. OID°¡ Å×À̺í Àüü·Î ÀÏÀÇÀÌ´Ù°í »ý°¢ÇÏ´Â °ÍÀº ¸ØÃß¾î ÁÖ¼¼¿ä. µ¥ÀÌŸº£À̽º Àüü·Î ÀÏÀÇÀÎ ½Äº°ÀÚ°¡ ÇÊ¿äÇÑ °æ¿ì´Â,tableoid¿Í ÇàÀÇ OIDÀÇ Æí¼ºÀ» »ç¿ëÇØ ÁÖ¼¼¿ä.

Tip: OIDS=FALSEÀÇ »ç¿ëÀº, ÇÁ¶óÀ̸Ӹ® ۰¡ ¾ø´Â Å×ÀÌºí¿¡¼­´Â Ãßõ µÇÁö ¾Ê½À´Ï´Ù. OIDµµ ÀÏÀÇÀÎ µ¥ÀÌÅÍ Å°µµ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é ƯÁ¤ÇàÀ» ½Äº°ÇÏ´Â °ÍÀÌ ¾î·Á¿öÁö±â ¶§¹®ÀÔ´Ï´Ù.

PostgreSQL´Â ÀÚµ¿ÀûÀ¸·Î °¢ ÀÏÀǼº Á¦¾à°ú ÇÁ¶óÀ̸Ӹ® Ű Á¦¾à¿¡ ´ëÇØ¼­ À妽º¸¦ ÀÛ¼ºÇØ, ±× ÀÏÀǼºÀ» È®½ÇÇÑ °ÍÀ¸·Î ÇÕ´Ï´Ù. µû¶ó¼­, ÇÁ¶óÀ̸Ӹ® ŰÀÇ ¿­¿¡ ¸í½ÃÀûÀÎ À妽º¸¦ ÀÛ¼ºÇÏ´Â °ÍÀº ÇÊ¿ä ¾ø½À´Ï´Ù (»ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â CREATE INDEX À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä).

ÇöÀçÀÇ ½ÇÀå¿¡¼­´Â, ÀÏÀǼº Á¦¾à°ú ÇÁ¶óÀ̸Ӹ® Ű´Â °è½ÂµÇÁö ¾Ê½À´Ï´Ù. À̰ÍÀº, °è½Â°ú ÀÏÀǼº Á¦¾àÀ» Á¶ÇÕÇϸé(ÀÚ) ÀåÇØ°¡ ¹ß»ýÇϱ⠶§¹®ÀÔ´Ï´Ù.

Å×À̺íÀº 1600¿­ÀÌ»óÀÇ ¿­À» °¡Áú ¼ö ¾ø½À´Ï´Ù (ŸǮÀåÀÇ Á¦ÇÑ¿¡ ÀÇÇØ ½ÇÁ¦ÀÇ Á¦ÇÑÀº Á» ´õ ³·¾ÆÁý´Ï´Ù).

·Ê

filmsÅ×À̺í°údistributorsÅ×À̺íÀ» ÀÛ¼ºÇÕ´Ï´Ù.

CREATE TABLE films (
    code        char(5) CONSTRAINT firstkey PRIMARY KEY,
    title       varchar(40) NOT NULL,
    did         integer NOT NULL,
    date_prod   date,
    kind        varchar(10),
    len         interval hour to minute
);

CREATE TABLE distributors (
     did    integer PRIMARY KEY DEFAULT nextval('serial'),
     name   varchar(40) NOT NULL CHECK (name <> '')
);

2 Â÷¿ø ¹è¿­À» °¡Áö´Â Å×À̺íÀ» ÀÛ¼ºÇÕ´Ï´Ù.

CREATE TABLE array_int (
    vector  int[][]
);

filmsÅ×ÀÌºí¿¡ ÀÏÀǼº Å×À̺í Á¦¾àÀ» Á¤ÀÇÇÕ´Ï´Ù. ÀÏÀǼº Å×À̺í Á¦¾àÀº Å×À̺íÀÇ Çϳª ÀÌ»óÀÇ ¿­¿¡ Á¤ÀÇÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

CREATE TABLE films (
    code        char(5),
    title       varchar(40),
    did         integer,
    date_prod   date,
    kind        varchar(10),
    len         interval hour to minute,
    CONSTRAINT production UNIQUE(date_prod)
);

°Ë»ç¿­Á¦¾àÀ» Á¤ÀÇÇÕ´Ï´Ù.

CREATE TABLE distributors (
    did     integer CHECK (did > 100),
    name    varchar(40)
);

°Ë»ç Å×À̺í Á¦¾àÀ» Á¤ÀÇÇÕ´Ï´Ù.

CREATE TABLE distributors (
    did     integer,
    name    varchar(40)
    CONSTRAINT con1 CHECK (did > 100 AND name <> '')
);

filmsÅ×ÀÌºí¿¡ ÇÁ¶óÀ̸Ӹ® Ű Å×À̺í Á¦¾àÀ» Á¤ÀÇÇÕ´Ï´Ù.

CREATE TABLE films (
    code        char(5),
    title       varchar(40),
    did         integer,
    date_prod   date,
    kind        varchar(10),
    len         interval hour to minute,
    CONSTRAINT code_title PRIMARY KEY(code, title)
);

distributorsÅ×ÀÌºí¿¡ ÇÁ¶óÀ̸Ӹ® Ű Á¦¾àÀ» Á¤ÀÇÇÕ´Ï´Ù. ÀÌÇÏÀÇ 2°³ÀÇ ¿¹´Â °°Àº °ÍÀÔ´Ï´Ù. ÀüÀÚ´Â Å×À̺í Á¦¾à ±¸¹®À» »ç¿ëÇØ, ÈÄÀÚ´Â ¿­Á¦¾à ±¸¹®À» »ç¿ëÇÕ´Ï´Ù.

CREATE TABLE distributors (
    did     integer,
    name    varchar(40),
    PRIMARY KEY(did)
); 

CREATE TABLE distributors (
    did     integer PRIMARY KEY,
    name    varchar(40)
);

ÀÌÇÏ¿¡¼­´Â,name¿­ÀÇ µðÆúƮġ¿¡ ¸®ÅÍ·² Á¤¼ö¸¦ ÇÒ´çÇϰí ÀÖ½À´Ï´Ù. ¶Ç,did¿­ÀÇ µðÆúƮġ·Î¼­ ¼ø¼­ ¿ÀºêÁ§Æ®ÀÇ ´ÙÀ½ÀÇ °ªÀÌ »ý¼ºµÇµµ·Ï(µíÀÌ) Á¶Á¤Çϰí ÀÖ½À´Ï´Ù. modtimeÀÇ µðÆúƮġ´Â, ±× ÇàÀÌ »ðÀԵǾúÀ» ¶§ °¢ÀÌ µË´Ï´Ù.

CREATE TABLE distributors (
    name      varchar(40) DEFAULT 'Luso Films',
    did       integer DEFAULT nextval('distributors_serial'),
    modtime   timestamp DEFAULT current_timestamp
);

2°³ÀÇNOT NULL¿­Á¦¾àÀ»distributorsÅ×ÀÌºí¿¡ Á¤ÀÇÇÕ´Ï´Ù. ±× Áß 1°³¿¡´Â ¸í½ÃÀûÀÎ À̸§À» ºÙÀ̰í ÀÖ½À´Ï´Ù.

CREATE TABLE distributors (
    did     integer CONSTRAINT no_null NOT NULL,
    name    varchar(40) NOT NULL
);

name¿­¿¡ ´ëÇØ, ÀÏÀǼº Á¦¾àÀ» Á¤ÀÇÇÕ´Ï´Ù.

CREATE TABLE distributors (
    did     integer,
    name    varchar(40) UNIQUE
);

À§¸¦ Å×À̺í Á¦¾àÀ¸·Î¼­ ÁöÁ¤ÇÕ´Ï´Ù.

CREATE TABLE distributors (
    did     integer,
    name    varchar(40),
    UNIQUE(name)
);

Å×À̺í°ú ±× ÀÏÀǼº À妽º¿¡70%ÀÇ fill ÆÑÅ͸¦ ÁöÁ¤ÇØ, °°Àº Å×À̺íÀ» ÀÛ¼ºÇÕ´Ï´Ù.

CREATE TABLE distributors (
    did     integer,
    name    varchar(40),
    UNIQUE(name) WITH (fillfactor=70)
)
WITH (fillfactor=70);

diskvol1Å×ÀÌºí °ø°£¿¡cinemasÅ×À̺íÀ» ÀÛ¼ºÇÕ´Ï´Ù.

CREATE TABLE cinemas (
        id serial,
        name text,
        location text
) TABLESPACE diskvol1;

ȣȯ¼º

CREATE TABLE´Â, ÀÌÇÏÀÇ À϶÷À» Á¦¿ÜÇØ, Ç¥ÁØSQL¿¡ µû¸¨´Ï´Ù.

ÀϽà Å×À̺í

CREATE TEMPORARY TABLE´Â Ç¥ÁØ SQL¿¡ À¯»çÇϰí ÀÖ½À´Ï´Ù¸¸, ±× È¿°ú´Â °°Áö´Â ¾Ê½À´Ï´Ù. Ç¥ÁØ¿¡¼­´Â, ÀϽà Å×À̺íÀº ÇÑ ¹ø¸¸ Á¤ÀÇµÇ¾î ±×°ÍÀ» ÇÊ¿ä·Î ÇÏ´Â ¼¼¼Ç ¸¶´Ù ÀÚµ¿ÀûÀ¸·Î(ÇÏ´ÃÀÇ ³»¿ëÀ¸·Î ½ÃÀ۵Ǵ ÇüÅ·Î) ÃâÇöÇÕ´Ï´Ù. PostgreSQL¿¡¼­´Â, À̰Ͱú ´Þ¸®, °¢ ¼¼¼ÇÀ¸·Î µ¶ÀÚÀûÀ¸·Î, »ç¿ëÇÏ´Â ÀϽà Å×À̺í¿ëÀÇCREATE TEMPORARY TABLEÄ¿¸àµå¸¦ ¹ßÇàÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. À̰Ϳ¡ ÀÇÇØ, ´Ù¸¥ ¼¼¼ÇÀ¸·Î °°Àº À̸§ÀÇ ÀϽà Å×À̺íÀ» ´Ù¸¥ ¸ñÀûÀ¸·Î »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ÇÑÆí, Ç¥ÁØÀÇ ¹æ¹ý¿¡¼­´Â, ¾î´À ÀϽà Å×À̺í¸íÀ» °¡Áö´Â ÀνºÅϽº°¡, ¸ðµÎ µ¿ÀÏÇÑ Å×ÀÌºí ±¸Á¶¸¦ °®´Â´Ù°í ÇÏ´Â Á¦ÇÑÀÌ ÀÖ½À´Ï´Ù.

Ç¥ÁØ¿¡ À־ÀÇ ÀÌ·¯ÇÑ ÀϽà Å×À̺íÀÇ µ¿ÀÛ Á¤ÀÇ´Â ´ëºÎºÐ ¹«½ÃµÇ°í ÀÖ½À´Ï´Ù. ÀÌ Á¡¿¡¼­ÀÇPostgreSQLÀÇ µ¿ÀÛÀº, ´Ù¸¥ ¸¹Àº SQL µ¥ÀÌŸº£À̽º¿Í ´à¾Æ ÀÖ½À´Ï´Ù.

Ç¥ÁØ¿¡ À־ÀÇ, ±Û·Î¹ú ÀϽà Å×À̺í°ú ·ÎÄà ÀϽà Å×À̺íÀÇ ±¸º°ÀºPostgreSQL¿¡´Â ¾ø½À´Ï´Ù. ÀÌ ±¸º°Àº ¸ðµâÀ̶ó°í ÇÏ´Â °³³ä¿¡ ÀÇÁ¸ÇÑ °ÍÀÔ´Ï´Ù¸¸,PostgreSQL¿¡´Â ¸ðµâ °³³äÀÌ ¾ø±â ¶§¹®ÀÔ´Ï´Ù. ȣȯ¼ºÀ» º¸°ü À¯ÁöÇϱâ À§ÇØ(¶§¹®¿¡),PostgreSQL´Â ÀϽà Å×À̺íÀÇ ¼±¾ð¿¡ ´ëÇØGLOBAL¿ÍLOCALŰ¿öµå¸¦ ¹Þ¾ÆµéÀÔ´Ï´Ù¸¸, À̰͵鿡´Â ¹«½¼ È¿°úµµ ¾ø½À´Ï´Ù.

ÀϽà Å×À̺í¿ëÀÇON COMMIT±¸µµ ¶Ç, Ç¥ÁØ SQL¿¡ À¯»çÇϰí ÀÖ½À´Ï´Ù¸¸, ¸î Á¡ÀÇ Â÷À̰¡ ÀÖ½À´Ï´Ù. ON COMMIT±¸°¡ »ý·« µÇ¾úÀ» °æ¿ì, SQL¿¡¼­´Â, µðÆúÆ®ÀÇ µ¿ÀÛÀºON COMMIT DELETE ROWSÀÌ´Ù°í ±ÔÁ¤Çϰí ÀÖ½À´Ï´Ù. ±×·¯³ª,PostgreSQL¿¡¼­ÀÇ µðÆúÆ®ÀÇ µ¿ÀÛÀºON COMMIT PRESERVE ROWSÀÔ´Ï´Ù. ¶Ç,ON COMMIT DROP´Â SQL¿¡´Â ¾ø½À´Ï´Ù.

¿­°Ë»ç Á¦¾à

Ç¥ÁØ SQL¿¡¼­´Â,CHECK¿­Á¦¾àÀº ±×°ÍÀ» Àû¿ëÇÏ´Â ¿­¸¸À» ÂüÁ¶ÇÒ ¼ö ÀÖ¾î º¹¼öÀÇ ¿­À» ÂüÁ¶ÇÒ ¼ö ÀÖ´Â °ÍÀºCHECKÅ×À̺í Á¦¾à»ÓÀ̶ó°í µÇ°í ÀÖ½À´Ï´Ù. PostgreSQL¿¡´Â ÀÌ Á¦ÇÑÀº ¾ø½À´Ï´Ù. ¿­°Ë»ç Á¦¾à°ú Å×ÀÌºí °Ë»ç Á¦¾àÀ» °°Àº °ÍÀ¸·Î ÇØ Ãë±ÞÇϰí ÀÖ½À´Ï´Ù.

NULL "Á¦¾à"

NULL "Á¦¾à"(½ÇÁ¦·Î´Â ºñÁ¦¾à)Àº, Ç¥ÁØ SQL¿¡ ´ëÇÑPostgreSQLÀÇ È®ÀåÀ¸·Î, ´Ù¸¥ ¸î°³ÀÇ µ¥ÀÌŸº£À̽º ½Ã½ºÅÛ°úÀÇ È£È¯¼ºÀ» À§Çؼ­(¶§¹®¿¡) Æ÷ÇԵǾî ÀÖ½À´Ï´Ù(NOT NULLÁ¦¾à°ú ´ëĪÀÌ µË´Ï´Ù). ¾î¶² ¿­¿¡ ´ëÇØ¼­µµ µðÆúÆ®°¡ µÇ±â (À§ÇØ)¶§¹®¿¡, À̰ÍÀº ³ëÀÌÁî¿¡ Áö³ªÁö ¾Ê½À´Ï´Ù.

°è½Â

INHERITS±¸¿¡ ÀÇÇÑ º¹¼ö °è½ÂÀº,PostgreSQLÀÇ ¾ð¾î È®ÀåÀÔ´Ï´Ù. SQL:1999ÀÌÈÄ¿¡¼­´Â, ´Ù¸¥ ±¸¹®°ú ÀÇ¹Ì Ã¼°è¿¡ ÀÇÇÑ ´ÜÀÏ °è½ÂÀ» Á¤ÀÇÇϰí ÀÖ½À´Ï´Ù. ÇöÀç, SQL:1999 ¹æ½ÄÀÇ °è½ÂÀºPostgreSQL¿¡¼­´Â ¼­Æ÷Æ®µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.

¿­À» °¡ÁöÁö ¾Ê´Â Å×À̺í

PostgreSQL¿¡¼­´Â, ¿­À» °¡ÁöÁö ¾Ê´Â Å×À̺íÀ» ÀÛ¼ºÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù (¿¹¸¦ µé¸é,CREATE TABLE foo();). À̰ÍÀº Ç¥ÁØ SQL·ÎºÎÅÍÀÇ È®ÀåÀÔ´Ï´Ù. Ç¥ÁØ SQL¿¡¼­´Â ¿­À» °¡ÁöÁö ¾Ê´Â Å×À̺íÀº ¿ë¼­µÇÁö ¾Ê½À´Ï´Ù. ¿­À» °¡ÁöÁö ¾Ê´Â Å×ÀÌºí ±× ÀÚü´Â µµ¿òÀÌ µÇÁö ¾Ê½À´Ï´Ù¸¸, À̰ÍÀ» ¹«È¿·Î Çϸé(ÀÚ),ALTER TABLE DROP COLUMN¿¡ ´ëÇØ¼­ ±â¹¦ÇÑ Æ¯·Ê¸¦ »ý¼ºÇÏ°Ô µË´Ï´Ù. µû¶ó¼­, ÀÌ »ç¾ç»óÀÇ Á¦ÇÑÀ» ¹«½ÃÇÏ´Â (ºÐ)ÆíÀÌ °£°áÇÏ´Ù¶ó°í »ý°¢ÇÕ´Ï´Ù.

WITH clause

WITH±¸´ÂPostgreSQLÀÇ È®ÀåÀÔ´Ï´Ù. °Ý³³ ÆÄ¶ó¹ÌÅ͵µ OIDµµ Ç¥ÁØ¿¡´Â ¾ø½À´Ï´Ù.

Å×ÀÌºí °ø°£

PostgreSQLÀÇ Å×ÀÌºí °ø°£ÀÇ °³³äÀº Ç¥ÁØ¿¡´Â ¾ø½À´Ï´Ù. µû¶ó¼­,TABLESPACE¿ÍUSING INDEX TABLESPACE´Â,PostgreSQL¿¡ À־ÀÇ È®ÀåÀÔ´Ï´Ù.

°ü·Ã Ç׸ñ

ALTER TABLE , DROP TABLE , CREATE TABLESPACE