µ¥ÀÌÅ͸¦ ¾ÈÀüÇÏ°Ô °ü¸®ÇÏ·Á¸é Á¤±âÀûÀ¸·Î ¹é¾÷À» ¶° µÎ¾î¾ß ÇÑ´Ù. ¶Ç
Å×À̺íÀ» ´ë·®À¸·Î º¯°æÇϱâ Àü¿¡µµ Ȥ½Ã ¸ð¸¦ »ç°í¸¦ ¿¹¹æÇϱâ À§ÇØ »çº»À» ¶° µÎ°í º¯°æÇÑ´Ù. ÀÌ·± Àú·±
ÀÌÀ¯·Î »çº»¿¡ ´ëÇÑ ÀÛ¾÷À» ÇÒ °æ¿ì°¡ ¸¹´Ù.
µ¥ÀÌÅÍ´Â ´Ã º¯ÇÏ´Â °ÍÀÌ¾î¼ ½Ã°£ÀÌ È带¼ö·Ï ¿øº»°ú »çº»Àº Â÷ÀÌ°¡ ¸¹ÀÌ ¹ú¾îÁø´Ù. tCity Å×ÀÌºí¿¡ ´ëÇØ ÀÌ·± »óȲÀ» ¸¸µé¾î º¸ÀÚ. µµ½Ã Á¤º¸¸¦
ÀçÁ¶»çÇÒ ¼öµµ ÀÖ°í ½ÃÂ÷¸¦ µÎ°í Á¶»çÇÑ µÎ ¹úÀÇ µ¥ÀÌÅÍ°¡ Á¸ÀçÇÒ ¼öµµ ÀÖ´Ù. ¸ÕÀú »çº»À» ¶á´Ù.
¿À¶óŬ, MariaDB : CREATE TABLE tCityNew AS SELECT *
FROM tCity;
SQL Server : SELECT * INTO tCityNew FROM tCity;
»çº»ÀÎ tCityNew¸¦ ÆíÁýÇÏ¿© ¿©·¯ °¡Áö º¯È¸¦ ÁÖ¾î º¸ÀÚ. ¼¿ïÀÇ Àα¸, ºÎ»êÀÇ ¸éÀûÀ» º¯°æÇÏ°í ÃáõÀº »èÁ¦ÇÏ°í ÀÌõÀ» »ðÀÔÇÑ´Ù. µÎ Å×À̺íÀÇ µ¥ÀÌÅÍ°¡ Á¶±Ý¾¿ ´Ù¸£´Ù.
UPDATE tCityNew SET popu = 1000 WHERE name = '¼¿ï';
UPDATE tCityNew SET area = 900 WHERE name = 'ºÎ»ê';
DELETE FROM tCityNew WHERE name = '̵̇';
INSERT INTO tCityNew VALUES ('ÀÌõ',461,21,'n','°æ±â');
»çº»¿¡ ´ëÇÑ ÀÛ¾÷ÀÌ ¹«»çÈ÷ ¿Ï·áµÇ¾ú´Ù¸é º¯°æÇÑ µ¥ÀÌÅ͸¦ ¿øº»À¸·Î ´Ù½Ã °¡Á®¿Â´Ù.
Á¤È®ÇÏ°Ô ¶È°°ÀÌ ¸¸µé¾î¾ß ÇÑ´Ù¸é µ¤¾î ½á ¹ö¸®¸é µÇÁö¸¸ ¶§·Î´Â ¼±º°ÀûÀ¸·Î °¡Á®¿Í¾ß ÇÒ ¶§µµ ÀÖ´Ù. µÎ
Å×À̺íÀ» µ¿±âÈÇÏ·Á¸é ¹¹°¡ ¹Ù²î¾ú´ÂÁö ÀÏÀÏÀÌ »ìÆ캸°í ¹Ù²ï °Ç UPDATEÇÏ°í Áö¿î °Ç ´Ù½Ã INSERTÇØ¾ß ÇÑ´Ù.
ÀÌ·± ¼º°¡½Å ÀÛ¾÷À» Çѹ濡 ÇØÁÖ´Â ¸í·ÉÀÌ MERGEÀÌ´Ù. ºñ±³, »ðÀÔ, °»½ÅÀ»
Çѹ濡 ÇØ Áشٰí Çؼ UPSERT¶ó°íµµ ºÎ¸¥´Ù. µÎ Å×ÀÌºí¿¡
´ëÇØ ¿©·¯ °¡Áö ¿¬»êÀ» ¼öÇàÇϴµ¥´Ù Á¶°Ç°ú °¢ °æ¿ìÀÇ µ¿ÀÛÀÌ ´Þ¶ó ±âº» Çü½ÄÀÌ º¹ÀâÇÏ´Ù.
MERGE INTO Ÿ°Ù USING ¼Ò½º
ON (ÀÏÄ¡Á¶°Ç)
WHEN MATCHED THEN
UPDATE ...
DELETE ...
WHEN NOT MATCHED THEN
INSERT ...
INTO ´ÙÀ½¿¡ Ÿ°Ù, USING ´ÙÀ½¿¡
¼Ò½º Å×À̺íÀ» ÁöÁ¤ÇÑ´Ù. Å×ÀÌºí ´ë½Å ºä¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ°í ¼Ò½º´Â Å×À̺íÀ» »ý¼ºÇÏ´Â ¼ºêÄõ¸®µµ °¡´ÉÇÏ´Ù. ON Àý¿¡´Â µÎ Å×À̺íÀ» ºñ±³ÇÒ Á¶°ÇÀ» ÁöÁ¤ÇÑ´Ù. µÎ Å×À̺íÀÇ ·¹Äڵ带
¼ø¼´ë·Î ºñ±³ÇÏ¿© ÀÏÄ¡Çϸé MATCHEDÀÇ ¸í·ÉÀ» ½ÇÇàÇÏ°í ±×·¸Áö ¾ÊÀ¸¸é NOT MATCHEDÀÇ ¸í·ÉÀ» ½ÇÇàÇÑ´Ù.
Á¶°ÇÀÌ ÀÏÄ¡ÇÏ¸é °°Àº ·¹ÄÚµå¶ó´Â ¶æÀ̹ǷΠUPDATE ¹®À¸·Î ÇÊ¿äÇÑ
Çʵ带 º¹»çÇÏ¿© µ¿±âÈÇÑ´Ù. ¶Ç´Â DELETE ¹®À¸·Î ¼Ò½º¿¡
¾ÆÁ÷ ³²¾Æ ÀÖ´Â ·¹Äڵ带 Ÿ°Ù¿¡¼ Áö¿ï ¼öµµ ÀÖ´Ù. Á¶°ÇÀÌ ÀÏÄ¡ÇÏÁö ¾ÊÀ¸¸é ¼Ò½º¿¡¸¸ ÀÖ°í Ÿ°Ù¿¡´Â ¾ø¾ú´ø
·¹ÄÚµåÀ̹ǷΠ»õ·Î »ðÀÔÇÏ¿© µ¿±âÈÇÑ´Ù.
tCityNew´Â tCityÀÇ
»çº»À» ¶á ÈÄ ÀϺΠ·¹Äڵ带 º¯°æÇÑ °ÍÀÌ¸ç ´õ ÃÖ½ÅÀÇ µ¥ÀÌÅ͸¦ °¡Áö°í ÀÖ´Ù. ÀÌÁ¦ tCityNewÀÇ º¯°æµÈ µ¥ÀÌÅ͸¦ tCity¿¡ º´ÇÕÇØ º¸ÀÚ. ÀÌ °æ¿ì´Â tCity°¡ Ÿ°ÙÀÌ°í tCityNew°¡
¿øº»ÀÌ´Ù. ´ÙÀ½ ¸í·ÉÀ» ÀÛ¼ºÇÑ´Ù.
MERGE INTO tCity T USING tCityNew S ON (S.name =
T.name)
WHEN MATCHED THEN
UPDATE
SET T.area = S.area, T.popu = S.popu
WHEN NOT MATCHED THEN
INSERT
VALUES (S.name, S.area, S.popu, S.metro, S.region);
ÀÏÄ¡ Á¶°ÇÀº µÎ Å×À̺íÀÇ name Çʵ带 »ç¿ëÇÑ´Ù. ±âº»Å°´Â Àß º¯°æÇÏÁö ¾Ê¾Æ Å×ÀÌºí°£ÀÇ ºñ±³¿¡ ÀûÇÕÇÏ´Ù. µÎ Å×À̺íÀÇ
·¹Äڵ带 ºñ±³ÇÏ¿© À̸§ÀÌ ÀÏÄ¡ÇÏ¸é ¸éÀû°ú Àα¸¼ö¸¦ ¿øº»¿¡¼ Ÿ°ÙÂÊÀ¸·Î ´ëÀÔÇÑ´Ù. ¸ðµç Çʵ带 ´Ù º¹»çÇÒ
ÇÊ¿ä´Â ¾øÀ¸¸ç ÁÖ·Î ¹Ù²î´Â Çʵ常 º¹»çÇÏ¸é µÈ´Ù. µµ½Ã Á¤º¸¸¦ ÀçÁ¶»çÇصµ À¢¸¸Çؼ´Â ¼Ò¼Ó Áö¿ªÀÌ ¹Ù²îÁö´Â
¾Ê´Â´Ù.
ÀÌ Ã³¸®¿¡ ÀÇÇØ »õ·Î Á¶»çÇÑ ¼¿ïÀÇ Àα¸¼ö¿Í ºÎ»êÀÇ ¸éÀûÀ» Ÿ°Ù¿¡ ¾÷µ¥ÀÌÆ®ÇÑ´Ù.
¾÷µ¥ÀÌÆ®ÇÒ ´ë»ó Å×À̺íÀº ´ç¿¬È÷ Ÿ°ÙÀ̹ǷΠUPDATE ¹®¿¡ Å×À̺í¸íÀ» ÀûÀ» ÇÊ¿ä ¾ø´Ù. ¶ÇÇÑ ºñ±³ Á¶°Ç¿¡ ÀÏÄ¡ÇÏ´Â ·¹Äڵ带 ÀÌ¹Ì Ã£¾ÒÀ¸¹Ç·Î WHERE Àýµµ
ÇÊ¿ä ¾ø´Ù. ¾î¶² Çʵ带 °¡Á®¿Ã °ÍÀÎÁö¸¸ ÁöÁ¤ÇÏ¸é µÈ´Ù.
À̸§ÀÌ ÀÏÄ¡ÇÏÁö ¾ÊÀ» °æ¿ì´Â »õ·Î »ðÀÔÇÑ´Ù. ¿øº»¿¡ »õ·Î »ðÀÔÇÑ ÀÌõÀº
Ÿ°Ù¿¡ ¿ø·¡ ¾ø¾ú´ø ·¹ÄÚµåÀÌ¸ç »ðÀÔÇÏ¿© µ¿±âÈÇÑ´Ù. ¿øº»¿¡¼ »èÁ¦ÇÑ ÃáõÀº Ÿ°Ù¿¡´Â ±×´ë·Î ³²¾Æ ÀÖÀ¸¹Ç·Î
º° 󸮸¦ ÇÏÁö ¾Ê´Â´Ù. º´ÇÕ ÈÄ tCityÀÇ ·¹ÄÚµå °³¼ö´Â
9°³°¡ µÈ´Ù. ¾î¶² °ªÀÌ ¾îµð·Î À̵¿ÇÏ´ÂÁö Á¤¸®ÇØ º¸ÀÚ.
MERGE´Â µÎ Å×À̺íÀÇ name Çʵ带
¼ø¼´ë·Î ºñ±³ÇÑ´Ù. ¾çÂÊ¿¡ ¸ðµÎ ÀÖ´Â ¼¿ïÀ» ¸ÕÀú ã¾Æ Àα¸¿Í ¸éÀûÀ» º¹»çÇÑ´Ù. ´ÙÀ½À¸·Î ºÎ»êÀ» ã¾Æ ¿ª½Ã µÎ Çʵ带 º¹»çÇÑ´Ù. ¿À»ê, ûÁÖ, ÀüÁÖ µîÀº º¯È´Â ¾øÁö¸¸ ¾çÂÊ ¸ðµÎ¿¡ ÀÖÀ¸¹Ç·Î °°Àº °ªÀ»
´Ù½Ã µ¤¾î ¾´´Ù.
ÀÌõÀº ¿øº»¿¡¸¸ ÀÖ°í Ÿ°Ù¿¡´Â ¾øÀ¸´Ï »õ·Î »ðÀÔÇÑ ·¹ÄÚµåÀÓÀ» ¾Ë ¼ö ÀÖ´Ù. ¿øº»¿¡
¾ø´Â Á¤º¸ÀÌ´Ï UPDATE·Î °»½ÅÇÒ ¼ö´Â ¾ø´Ù. NOT MATCHED¿¡¼
ÀÌ ·¹ÄÚµåÀÇ Çʵ带 Àоî Ÿ°Ù¿¡ »ðÀÔÇÑ´Ù. º´ÇÕÀ» ¿Ï·áÇÑ ÈÄÀÇ tCity´Â
¿ø·¡ Á¤º¸¿¡ tCityNewÀÇ ÆíÁýµÈ Á¤º¸¸¦ ÅëÇÕÇÏ¿© °¡Áø´Ù.
¿øº» Å×À̺í Àüü¸¦ ´Ù º´ÇÕÇÏ¸é ½Ã°£ÀÌ ²Ï ¿À·¡ °É¸°´Ù. ¿øº»ÀÇ ÀϺÎ
Á¶°Ç¿¡ ¸Â´Â ·¹Äڵ常 º´ÇÕÇÏ°í ½Í´Ù¸é USING Àý¿¡ Å×À̺í¸íÀ» ¹Ù·Î ¾²Áö ¸»°í ¼ºêÄõ¸®·Î Á¶°ÇÀ» Á¦ÇÑÇÏ¿©
ÀϺΠ·¹Äڵ常 ÃëÇÑ´Ù. ¿¹¸¦ µé¾î °æ±âµµ¿¡ ÀÖ´Â µµ½ÃÀÇ Á¤º¸¸¸ º´ÇÕÇÏ°í ½Í´Ù¸é tCityNew¿¡¼ regionÀÌ °æ±âµµÀÎ ·¹Äڵ常 Àд´Ù.
MERGE INTO tCity T USING (SELECT * FROM tCityNew
WHERE region = '°æ±â') S ON (S.name = T.name)
....
ÀÌ·¸°Ô ÇÏ¸é ¼¿ïÀÇ ¸éÀûÀ» °»½ÅÇÏ°í ÀÌõ½Ãµµ »ðÀÔÇÏÁö¸¸ ºÎ»êÀÇ Àα¸¼ö´Â º´ÇÕÇÏÁö ¾Ê´Â´Ù. Å×À̺í Àüü ´ë½Å ¼ºêÄõ¸®·Î ÀϺΠ·¹Äڵ常 ÀÐÀ¸¸é µÇ´Ï ¾ÆÁÖ ½±´Ù. ±×·¯³ª
À߸ø »ý°¢Çϸé ON ÀýÀÌ Á¶°ÇÀÌ´Ï ¿©±â´Ù Á¶°Ç¹®À» ÀÛ¼ºÇÒ À§ÇèÀÌ ÀÖ´Ù.
MERGE INTO tCity T USING tCityNew S ON (S.name =
T.name AND S.region = '°æ±â')
....
ÀÌ ÄÚµå´Â ¿¡·¯ÀÌ´Ù. ON ÀýÀÇ ÀÏÄ¡ Á¶°ÇÀº µÎ Å×À̺íÀÇ ´ëÀÀ ·¹Äڵ带
ã´Â °ÍÀÌÁö º´ÇÕÇÒ ´ë»ó¿¡ ´ëÇÑ Á¶°ÇÀ» ÁöÁ¤ÇÏ´Â °ÍÀÌ ¾Æ´Ï´Ù.
ȣȯ¼º üũ
¿À¶óŬÀº MERGE ´ÙÀ½ÀÇ
INTO ÀüÄ¡»ç¿Í ON ÀýÀÇ °ýÈ£°¡ ÇʼöÀÌ´Ù. SQL Server´Â µÑ ´Ù ¾ø¾îµµ ¹«¹æÇÏ´Ù. MariaDB´Â ¾ÆÁ÷
MERGE¸¦ Áö¿øÇÏÁö ¾Ê´Â´Ù.
¿¬½À ¹®Á¦
9.¾Õ ½Ç½À¿¡¼ ¸¸µé¾ú´ø »çº» tStaff2¸¦
tStaff¿¡ º´ÇÕÇ϶ó.
10.tStaff2ÀÇ ´ë¸®±Þ »ç¿ø¿¡ ´ëÇؼ¸¸ º´ÇÕÇ϶ó.
´ÙÀ½Àº Á» ´õ ´Ü¼øÇÑ ¿¹·Î ½Ç½ÀÀ» ÇØ º¸ÀÚ. µµ½ÃÀÇ Àα¸¸¸ ÀçÁ¶»çÇÑ´Ù¸é
´Ù¸¥ Çʵå´Â ÇÊ¿ä ¾ø°í ¾î´À µµ½ÃÀÇ Àα¸°¡ ¾ó¸¶ÀÎÁö¸¸ ±â·ÏÇÏ¸é µÈ´Ù. ´ÙÀ½°ú °°ÀÌ Àα¸ Á¶»ç¿ë Å×À̺íÀ»
°£´ÜÇÏ°Ô µðÀÚÀÎÇÏ°í ¸î °³ µµ½ÃÀÇ Àα¸¸¦ »õ·Î Á¶»çÇß´Ù.
CREATE TABLE tCityPopu
(
name
CHAR(10) PRIMARY KEY,
popu
INT NULL
);
INSERT INTO tCityPopu VALUES ('¼¿ï',1000);
INSERT INTO tCityPopu VALUES ('ºÎ»ê',500);
INSERT INTO tCityPopu VALUES ('̵̇',100);
ÀÌ·¸°Ô Á¶»çÇÑ Àα¸ Åë°è´Â ÃÖÁ¾ÀûÀ¸·Î tCity Å×ÀÌºí¿¡ º´ÇÕÇÏ¿©
°»½ÅÇØ¾ß ÇÑ´Ù. µÎ Å×À̺íÀÌ ¾Æ¹«¸® Ä¿µµ MERGE ¸í·ÉÀ¸·Î
°£´ÜÇÏ°Ô º´ÇÕÇÒ ¼ö ÀÖ´Ù.
MERGE INTO tCity C USING tCityPopu P ON (C.name =
P.name)
WHEN MATCHED THEN UPDATE SET C.popu = P.popu;
µÎ Å×À̺íÀ» µµ½Ã¸íÀ¸·Î ºñ±³ÇÏ¿© ÀÏÄ¡ÇÏ´Â Çà¿¡ ´ëÇØ, Áï »õ·Î Á¶»çÇÑ
µµ½Ã¿¡ ´ëÇØ popu Çʵ带 Àоî tCityÀÇ Àα¸¸¦ °»½ÅÇÑ´Ù. Á¶»çÇÏÁö ¾ÊÀº µµ½ÃÀÇ Àα¸¼ö´Â ¿ø·¡°ªÀ» °¡Áø´Ù. Àα¸¸¸ Á¶»çÇßÀ¸¹Ç·Î
´Ù¸¥ Çʵå´Â °Çµå¸± ÇÊ¿ä°¡ ¾øÀ¸¸ç ´Ù¸¥ Çʵ尪ÀÌ ÀÖÁöµµ ¾Ê´Ù.
ÀÏÄ¡ÇÏÁö ¾ÊÀ» ¶§ÀÇ µ¿ÀÛµµ ÁöÁ¤ÇÒ ¼ö ÀÖÁö¸¸ º´ÇÕ¸¸ ÇÑ´Ù¸é ±»ÀÌ ±×·² ÇÊ¿ä´Â ¾ø´Ù. ¿øº»¿¡ ¾ø´ø µµ½ÃÀÇ Àα¸¸¦ »õ·Î Á¶»çÇß´Ù¸é »ðÀÔÇØ ³ÖÀ» ¼ö ÀÖÁö¸¸ Àα¸ Á¤º¸¸¸À¸·Î´Â tCity°¡ ¿ä±¸ÇÏ´Â Á¤º¸¸¦ ´Ù ä¿ï ¼ö ¾ø¾î º° Àǹ̰¡ ¾ø´Ù.
MERGE ¸í·É ¿Ü¿¡ SQL
Server´Â Å×À̺íÀ» º´ÇÕÇÏ´Â UPDATE FROM ¸í·ÉÀ» Ãß°¡·Î Á¦°øÇÑ´Ù. ±âº» Çü½ÄÀº ´ÙÀ½°ú °°À¸¸ç Ÿ°Ù Å×À̺íÀÇ Çʵ带 ¿øº» Å×À̺íÀÇ Çʵ尪À¸·Î ÀÏ°ý °»½ÅÇÑ´Ù.
UPDATE Ÿ°Ù SET Çʵå=¼Ò½º.Çʵå FROM ¼Ò½º WHERE º´ÇÕÁ¶°Ç
UPDATE ¹®¿¡´Â ¿ø·¡ FROM ÀýÀÌ
¾øÁö¸¸ ÀÌ °æ¿ì¿¡´Â ¿øº» Å×À̺íÀ» ÁöÁ¤Çϱâ À§ÇØ FROM ÀýÀÌ ¿Â´Ù.
FROM Àý¿¡ ºä³ª ¼ºêÄõ¸®¸¦ ¾µ ¼öµµ ÀÖ´Ù. ´ÙÀ½ ¸í·ÉÀº tCityPopuÀÇ popu(»õ Àα¸¼ö)¸¦ Àоî tCityÀÇ popu(¿ø·¡
Àα¸¼ö)¸¦ °»½ÅÇÑ´Ù.
UPDATE tCity SET popu = tCityPopu.popu FROM
tCityPopu WHERE tCity.name = tCityPopu.name;
º¸°í¼¿¡ ÀÖ´Â µµ½Ã¸¸ °»½ÅÇϱâ À§ÇØ WHERE Àý¿¡¼ µÎ Å×À̺íÀÇ
µµ½Ã¸íÀÌ °°Àº Çุ ¼±ÅÃÇß´Ù. »õ Å×ÀÌºí¿¡ Á¶»çÇÏÁö ¾ÊÀº µµ½Ã´Â ¿ø·¡°ªÀ» À¯ÁöÇÑ´Ù.
name Çʵ尡 ¾çÂÊ Å×ÀÌºí¿¡ ´Ù ÀÖ¾î ¼Ò¼ÓÀ» ºÐ¸íÈ÷ ¹àÇô¾ß ÇÑ´Ù. Å×ÀÌºí µÎ °³¸¦ ÂüÁ¶ÇÏ´Ù º¸´Ï Äõ¸®¹®ÀÌ ±æ¾îÁö´Âµ¥ FROM ÀýÀÇ
Å×ÀÌºí¿¡ º°¸íÀ» ºÙ¿© µÎ¸é Çʵ带 ª°Ô ĪÇÒ ¼ö ÀÖ¾î Æí¸®ÇÏ´Ù.
UPDATE tCity SET popu = S.popu FROM tCityPopu AS S
WHERE tCity.name = S.name;
±×·¯³ª ¿øº» Å×ÀÌºí¿¡´Â º°¸íÀ» ÁÙ ¼ö ¾ø¾î ´ÙÀ½ ±¸¹®Àº ¾ÈµÈ´Ù. UPDATE ´ÙÀ½ÀÇ
´ë»ó Å×À̺íÀº ¿ø·¡ À̸§´ë·Î ½á¾ß ÇÑ´Ù.
UPDATE tCity AS T SET T.popu = S.popu FROM
tCityPopu AS S WHERE T.name = S.name;
°ú°Å ´ë·® ¾÷µ¥ÀÌÆ®½Ã¿¡ °¡²û »ç¿ëÇßÁö¸¸ ´õ ¹ü¿ëÀûÀÌ°í Æí¸®ÇÑ MERGE ¸í·ÉÀÌ
µµÀÔµÇ¾î ¿äÁòÀº Àß »ç¿ëÇÏÁö ¾Ê´Â´Ù. SQL Server¸¸ Áö¿øÇÏ¿© ȣȯ¼ºµµ ÁÁÁö ¾Ê°í °»½Å¸¸ ÇÒ »Ó
»ðÀÔÀº ÇÏÁö ¸øÇÏ´Â ÇÑ°èµµ ÀÖ´Ù. ±×·¯³ª °ú°Å¿¡ ÀÛ¼ºÇÑ Äõ¸®¸¦ Âü°íÇϱâ À§ÇØ ¸í·É ÀÚü´Â ¾Ë¾Æ µÎ¾î¾ß
ÇÑ´Ù.
±×·¸´Ù¸é MariaDBÀÇ °æ¿ì´Â ¾î¶³±î? MariaDB´Â ¾ÆÁ÷ MERGE ¸í·ÉÀ» Áö¿øÇÏÁö ¾ÊÀ¸¸ç UPDATE FROM ¸í·Éµµ ¾ø´Ù. ±×·¸´Ù°í Çؼ º´ÇÕÀ» ¸øÇÏ´Â °ÍÀº
¾Æ´Ï¸ç ¿¬°ü ¼ºêÄõ¸®¸¦ È°¿ëÇÏ¸é µÈ´Ù. ´ÙÀ½ ¸í·ÉÀº ¶È°°Àº 󸮸¦ ÇÏ¸ç ¼¼ DBMS¿¡¼ ¸ðµÎ Àß µ¿ÀÛÇÑ´Ù.
UPDATE tCity SET popu = (SELECT popu FROM
tCityPopu P WHERE P.name = tCity.name)
WHERE name IN (SELECT name FROM tCityPopu)
»õ Å×ÀÌºí¿¡ ÀÖ´Â µµ½ÃÀÇ Àα¸¼ö¸¦ ÀÐ¾î ¿ø·¡ Å×À̺íÀÇ popu Çʵ带
°»½ÅÇÑ´Ù. WHERE Á¶°ÇÀ» »© ¹ö¸®¸é »õ Å×ÀÌºí¿¡ ¾ø´Â µµ½ÃÀÇ Àα¸°¡ NULL·Î ¹Ù²î¾î ¹ö¸®¹Ç·Î Á¶°ÇÀÌ ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù. °»½Å ´ë»óÀ» ã±â
À§ÇØ, »õ Àα¸¼ö¸¦ ã±â À§ÇØ µÎ °³ÀÇ ¼ºêÄõ¸®°¡ ÇÊ¿äÇØ ¼º´ÉÀº ±×´ÙÁö ÁÁÁö ¾Ê´Ù.
ÀÌ ¿Ü¿¡ Á¶Àι®À¸·Îµµ º´ÇÕÀ» ó¸®ÇÒ ¼ö ÀÖÀ¸¸ç ¼º´ÉÀº ¿ÀÈ÷·Á ´õ ÁÁ´Ù. ¶È°°Àº
¹®Á¦¶óµµ ÇØ°áÇÏ´Â ¹æ½ÄÀº Ç×»ó ¿©·¯ °¡Áö°¡ ÀÖ´Ù. DBMSÀÇ Áö¿ø ¸í·É Áß¿¡ ¼Óµµ, ºóµµ, ÆíÀǼº µîÀ» °í·ÁÇÏ¿© »óȲ¿¡ °¡Àå ÀûÇÕÇÑ ¹æ¹ýÀ» Àß ¼±ÅÃÇØ
»ç¿ëÇÏ¸é µÈ´Ù.