5.5. Å×À̺íÀÇ º¯°æ

Å×À̺íÀÇ ÀÛ¼º ÈÄ¿¡ ½Ç¼ö¸¦ ¾Ë¾ÆÂ÷¸®°Å³ª ¾îÇø®ÄÉÀ̼ÇÀÇ ¿äûÀÌ º¯°æµÆÀ» °æ¿ì, Å×À̺íÀ» ÀÏ´Ü »èÁ¦ÇÏ°í ´Ù½Ã ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª Å×ÀÌºí¿¡ µ¥ÀÌÅ͸¦ ÀÔ·Â ³¡³­ °æ¿ì, ȤÀº ±× Å×À̺íÀÌ ´Ù¸¥ µ¥ÀÌÅͺ£À̽º ¿ÀºêÁ§Æ®(¿¹¸¦ µé¸é ¿ÜºÎ Ű Á¦ÇÑ)¿¡ ÀÇÇØ ÂüÁ¶µÇ°í ÀÖ´Â °æ¿ì, À̰ÍÀº ÁÁÀº ¹æ¹ýÀÌ ¾Æ´Õ´Ï´Ù. ±× ¶§¹®¿¡, PostgreSQL¿¡¼­´Â ±âÁ¸ Å×ÀÌºí¿¡ º¯°æÀ» ´õÇϱâ À§ÇÑ ÀÏ·ÃÀÇ Ä¿¸Çµå°¡ Á¦°øµË´Ï´Ù. Å×ÀÌºí ³» Æ÷ÇÔµÈ µ¥ÀÌÅ͸¦ º¯°æÇÑ´Ù´Â °³³äÀÌ ¾Æ´Ñ °ÍÀ» ÁÖÀÇÇϽʽÿä. ¿©±â¿¡¼­´Â Å×À̺íÀÇ Á¤Àdzª ±¸Á¶¸¦ º¯°æÇÏ´Â °Í¿¡ ÃÊÁ¡À» ¸ÂÃä´Ï´Ù.

´ÙÀ½ ÀÏÀÌ »ý±é´Ï´Ù.

ÀÌ·¯ÇÑ Á¶ÀÛÀº ALTER TABLE Ä¿¸Çµå¸¦ »ç¿ëÇÏ¿© ½Ç½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÂüÁ¶ ÆäÀÌÁö´Â º» Àý¿¡ ÁÖ¾îÁø ¼¼ºÎ»çÇ×À» Æ÷ÇÔÇÕ´Ï´Ù.

5.5.1. ¿­ÀÇ Ãß°¡

¿­À» Ãß°¡ÇÏ·Á¸é , ´ÙÀ½°ú °°ÀÌ Ä¿¸Çµå¸¦ »ç¿ëÇÕ´Ï´Ù.

ALTER TABLE products ADD COLUMN description text;

»õ·Î¿î ¿­¿¡´Â µðÆúÆ® °ªÀÌ ÃʱⰪÀ¸·Î µé¾î¿É´Ï´Ù(DEFAULT±¸¹®¸¦ ÁöÁ¤ÇÏÁö ¾Ê´Â °æ¿ì´Â NULL°ªÀÌ µé¾î¿É´Ï´Ù).

´ÙÀ½ÀÇ ±¸¹®À» »ç¿ëÇϸé, ¿­ÀÇ Á¦Çѵµ µ¿½Ã¿¡ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.

ALTER TABLE products ADD COLUMN description text CHECK (description <> '');

½ÇÁ¦·Î´Â CREATE TABLE³»ÀÇ ¿­À» ±â¼úÇÒ ¶§ »ç¿ëµÇ´Â ¸ðµç ¿É¼ÇÀÌ, ¿©±â¼­ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¸ µðÆúÆ® °ªÀº ÁÖ¾îÁø Á¦ÇÑÀ» ¸¸Á·ÇÏ´Â °ÍÀÌ ¾Æ´Ï¸é ¾È µÇ´Â °ÍÀ» ÁÖÀÇÇϽʽÿä. ¸¸Á·ÇÏÁö ¾Ê´Â °æ¿ì´Â ADD°¡ ½ÇÆÐÇÕ´Ï´Ù. ÇÑÆí, ½Å±ÔÀÇ ¿­¿¡ ¿Ã¹Ù¸£°Ô °ªÀ» ä¿î ´ÙÀ½¿¡ Á¦ÇÑÀ» Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù(¾Æ·¡ ÂüÁ¶).

Tip: µðÆúÆ®¸¦ °¡Áö´Â ¿­À» Ãß°¡Çϱâ À§Çؼ­´Â (»õ·Î¿î ¿­ °ªÀ» ÀúÀåÇϱâ À§Çؼ­) Å×À̺íÀÇ °¢ ÇàÀ» ¾÷µ¥ÀÌÆ®ÇØ¾ß ÇÕ´Ï´Ù. ±×·¯³ª µðÆúÆ®°¡ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀ» ¶§, PostgreSQL´Â ¹°¸®ÀûÀÎ ¾÷µ¥ÀÌÆ®¸¦ ÇÇÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯¹Ç·Î, ´ëºÎºÐÀÌ µðÆúÆ®°¡ ¾Æ´Ñ °ªÀ» °¡Áö´Â ¿­À» Å×ÀÌºí¿¡ ÀúÀåÇÒ »ý°¢À̸é, µðÆúÆ®¸¦ ÁöÁ¤ÇÏÁö ¾Ê°í ¿­À» Ãß°¡Çϰí, UPDATE¸¦ »ç¿ëÇØ ¿Ã¹Ù¸¥ °ªÀ» »ðÀÔÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù. ±× ÈÄ¿¡, ¾Æ·¡¿Í °°ÀÌ ¼³Á¤ÇÏ°í ½ÍÀº µðÆúÆ® °ªÀ» ºÎ¿©ÇØ Áֽʽÿä.

5.5.2. ¿­ÀÇ »èÁ¦

¿­À» »èÁ¦ÇÏ·Á¸é , ´ÙÀ½°ú °°ÀÌ Ä¿¸Çµå¸¦ »ç¿ëÇÕ´Ï´Ù.

ALTER TABLE products DROP COLUMN description;

¿­³»¿¡ ÀÖ´Â ¾î¶² µ¥ÀÌÅÍµç »ç¶óÁý´Ï´Ù. ¶Ç ¿­À» Æ÷ÇÔÇÑ Å×À̺íÀÇ Á¦Çѵµ »èÁ¦µË´Ï´Ù. ±×·¯³ª ¸¸¾à ¿­ÀÌ ´Ù¸¥ Å×À̺íÀÇ ¿ÜºÎ Ű Á¦ÇÑÀ¸·Î¼­ ÂüÁ¶µÇ°í ÀÖ´Â °æ¿ì, PostgreSQL´Â ¾Ï¹¬ÀûÀ¸·Î Á¦ÇÑÀ» ÇØÁ¦ÇÏÁö ¾Ê½À´Ï´Ù. CASCADE¸¦ Ãß°¡ÇÏ´Â °ÍÀ¸·Î½á ¿­¿¡ ÀÇÁ¸ÇÏ´Â ¸ðµç °ÍÀ» »èÁ¦ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ALTER TABLE products DROP COLUMN description CASCADE;

ÀÌ ¹èÈÄ¿¡ ÀÖ´Â ÀϹÝÀûÀÎ ¸ÅÄ¿´ÏÁò¿¡ °üÇÑ ¼³¸í¿¡ ´ëÇØ¼­´Â Section 5.11À» ÂüÁ¶ÇØ Áֽʽÿä.

5.5.3. Á¦ÇÑÀÇ Ãß°¡

Á¦ÇÑÀ» Ãß°¡ÇÏ·Á¸é , Å×À̺í Á¦ÇÑÀÇ ±¸¹®ÀÌ »ç¿ëµË´Ï´Ù.

ALTER TABLE products ADD CHECK (name <> '');
ALTER TABLE products ADD CONSTRAINT some_name UNIQUE (product_no);
ALTER TABLE products ADD FOREIGN KEY (product_group_id) REFERENCES product_groups;

Å×À̺í Á¦ÇÑÀ¸·Î¼­ ±â¼úÇÒ ¼ö ¾ø´Â not-nullÀ» Ãß°¡ÇÏ·Á¸é , ´ÙÀ½ÀÇ ±¸¹®À» »ç¿ëÇÕ´Ï´Ù.

ALTER TABLE products ALTER COLUMN product_no SET NOT NULL;

Á¦ÇÑÀº Áï½Ã °Ë»çµÇ±â ¶§¹®¿¡, Á¦ÇÑÀ» Ãß°¡Çϱâ Àü¿¡ Å×ÀÌºí µ¥ÀÌÅͰ¡ Á¦ÇÑÀ» ¸¸Á·½ÃÄѾ߸¸ ÇÕ´Ï´Ù.

5.5.4. Á¦ÇÑÀÇ »èÁ¦

Á¦ÇÑÀ» »èÁ¦ÇÏ·Á¸é , Á¦ÇѸíÀ» ¾Ë Çʿ䰡 ÀÖ½À´Ï´Ù. ½º½º·Î À̸§À» Áö¾úÀ» °æ¿ì´Â °£´ÜÇÕ´Ï´Ù. ±×·¯³ª ±×·¸Áö ¾ÊÀº °æ¿ì´Â, ½Ã½ºÅÛÀÌ »ý¼ºµÈ À̸§À» ÁöÁ¤ÇÒ ¼ö ÀÖÀ¸¹Ç·Î, ±×°ÍÀ» ã¾Æ¾ß ÇÕ´Ï´Ù. °Å±â¿¡´Â psqlÀÇ\d tablename Ä¿¸Çµå¸¦ »ç¿ëÇÏ¸é Æí¸®ÇÕ´Ï´Ù. ´Ù¸¥ ÀÎÅÍÆäÀ̽ºµµ Å×À̺íÀÇ ¼¼ºÎ»çÇ×À» Á¶»çÇÏ´Â ¹æ¹ýÀÌ ÀÖÀ»Áö ¸ð¸¨´Ï´Ù. Ä¿¸Çµå´Â ÀÌÇÏ¿Í °°½À´Ï´Ù.

ALTER TABLE products DROP CONSTRAINT some_name;

(ÀÚµ¿ »ý¼ºµÇ¾ú´Ù$2¶ó°í ÇÏ´Â Á¦ÇѸíÀ» Ãë±ÞÇÏ´Â °æ¿ì´Â À¯È¿ÇÑ ½Äº°ÀÚ°¡ µÇµµ·Ï ÀÌÁß ÀοëºÎÈ£·Î µÑ·¯ ½Ò Çʿ䰡 ÀÖ´Â °ÍÀ» ÀØÁö ¸»¾Æ Áֽʽÿä. )

¿­ÀÇ »èÁ¦¿¡ °üÇØ¼­, ¹«¾ùÀΰ¡ ÀÇÁ¸Çϰí ÀÖ´Â Á¦ÇÑÀ» »èÁ¦ÇÏ´Â °æ¿ì¿¡´Â CASCADE¸¦ ºÙÀÏ Çʿ䰡 ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, ÂüÁ¶µÇ°í ÀÖ´Â ¿­¿¡ À¯ÀÏÇÑ Å° ¶Ç´Â ÁÖ Å° Á¦ÇÑ¿¡ ÀÇÁ¸ÇÏ´Â ¿ÜºÎ Ű Á¦ÇÑÀ» »èÁ¦ÇÏ´Â °æ¿ìÀÔ´Ï´Ù.

ÀÌ´Â not-null ÀÌ¿ÜÀÇ ¸ðµç Á¦ÇÑÇü¿¡ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. not-null Á¦ÇÑÀ» »èÁ¦ÇÏ·Á¸é , ´ÙÀ½°ú °°ÀÌ ÇÕ´Ï´Ù.

ALTER TABLE products ALTER COLUMN product_no DROP NOT NULL;

(not-null Á¦ÇÑ¿¡´Â À̸§ÀÌ ¾ø´Â °ÍÀ» ±â¾ïÇØ Áֽʽÿä. )

5.5.5. ¿­ÀÇ µðÆúÆ® °ªÀÇ º¯°æ

¿­¿¡ »õ·Î¿î µðÆúÆ®¸¦ ¼³Á¤ÇÏ·Á¸é , ÀÌÇÏ¿Í °°Àº Ä¿¸Çµå¸¦ »ç¿ëÇÕ´Ï´Ù.

ALTER TABLE products ALTER COLUMN price SET DEFAULT 7.77;

À̰ÍÀº Å×ÀÌºí ³»ÀÇ ±âÁ¸ Çà¿¡´Â ¿µÇâÀ» ÁÖÁö ¾Ê´Â °ÍÀ» ÁÖÀÇÇϽʽÿä. À̰ÍÀº ÇâÈÄ INSERTÄ¿¸Çµå¸¦ À§ÇØ ´Ü¼øÈ÷ µðÆúÆ®¸¦ ¹Ù²Ü »ÓÀÔ´Ï´Ù.

µðÆúÆ® °ªÀ» »èÁ¦ÇÏ·Á¸é, ´ÙÀ½°ú °°ÀÌ ÇÕ´Ï´Ù.

ALTER TABLE products ALTER COLUMN price DROP DEFAULT;

ÀÌ´Â µðÆúÆ®¸¦ NULL·Î ¼³Á¤ÇÏ´Â °Í°ú °°½À´Ï´Ù. ±× ¶§¹®¿¡, Á¤ÀǵÇÁö ¾ÊÀº µðÆúÆ® °ªÀ» »èÁ¦Çصµ ¿¡·¯°¡ µÇÁö ¾Ê½À´Ï´Ù. ¿Ö³ÄÇϸé NULL °ªÀÌ ¾Ï¹¬ÀûÀ¸·Î µðÆúÆ®°¡ µÇ°í Àֱ⠶§¹®ÀÔ´Ï´Ù.

5.5.6. ¿­ÀÇ µ¥ÀÌÅÍÇüÀÇ º¯°æ

¿­À» ´Ù¸¥ µ¥ÀÌÅÍÇüÀ¸·Î º¯È¯ÇÏ·Á¸é ÀÌÇÏ¿Í °°Àº Ä¿¸Çµå¸¦ »ç¿ëÇØ Áֽʽÿä.

ALTER TABLE products ALTER COLUMN price TYPE numeric(10,2);

ÀÌ´Â ±× ¿­ÀÇ ±âÁ¸ Ç׸ñÀÌ »õ·Î¿î ÇüÅ¿¡ ¾Ï¹¬Àû ij½ºÆ®¿¡ ÀÇÇØ º¯È¯ÇÒ ¼ö ÀÖ´Â °æ¿ì¿¡¸¸ ¼º°øÇÕ´Ï´Ù. º¸´Ù º¹ÀâÇÑ º¯È¯ÀÌ ÇÊ¿äÇÑ °æ¿ì, ³°Àº °ªÀ¸·ÎºÎÅÍ »õ·Î¿î °ªÀ» ¾î¶»°Ô °è»êÇÏ´ÂÁö¸¦ ÁöÁ¤ÇÏ´Â USING±¸¹®¸¦ ºÙÀÏ ¼ö ÀÖ½À´Ï´Ù.

PostgreSQL´Â (¸¸¾à ÀÖÀ¸¸é) ¿­ÀÇ µðÆúÆ® °ªÀ» »õ·Î¿î ÇüÅ¿¡, µ¿½Ã¿¡, ±× ¿­¿¡ °ü·ÃÇÏ´Â ¸ðµç Á¦Çѵµ »õ·Î¿î ÇüÅ·Πº¯È¯ÇÏ·Á°í ÇÕ´Ï´Ù. ±×·¯³ª ÀÌ·¯ÇÑ º¯È¯Àº ½ÇÆÐÇÒÁöµµ ¸ð¸£°í, ¿¹»óÀ» ³ÑÀº °á°ú°¡ µÇ¾î ¹ö¸±Áöµµ ¸ð¸¨´Ï´Ù. ÇüŸ¦ º¯°æÇϱâ Àü¿¡ ±× ¿­¿¡ °üÇÑ Á¦ÇÑÀ» ¸ðµÎ »èÁ¦Çϰí, ´ÙÀ½¿¡ ÀûÀýÈ÷ º¯°æÇÑ Á¦ÇÑÀ» ´Ù½Ã ºÙÀÌ´Â °ÍÀÌ ÃÖ¼±ÀÎ °æ¿ì°¡ ÀÚÁÖ ÀÖ½À´Ï´Ù.

5.5.7. ¿­¸íÀÇ º¯°æ

¿­¸íÀ» º¯°æÇÏ·Á¸é , ´ÙÀ½°ú °°ÀÌ ÇÕ´Ï´Ù.

ALTER TABLE products RENAME COLUMN product_no TO product_number;

5.5.8. Å×À̺í¸íÀÇ º¯°æ

Å×À̺í¸íÀ» º¯°æÇÏ·Á¸é , ´ÙÀ½°ú °°ÀÌ ÇÕ´Ï´Ù.

ALTER TABLE products RENAME TO items;