Àӽà Å×À̺íÀº µ¥ÀÌÅ͸¦ Àá½Ã¸¸ º¸À¯ÇÏ´Â Å×À̺íÀÌ´Ù. ¿µ±¸ÀûÀÎ Á¤º¸°¡
¾Æ´Ñ ÀϽÃÀûÀÎ Áß°£ µ¥ÀÌÅÍ°¡ ÇÊ¿äÇÒ ¶§ »ç¿ëÇÑ´Ù. ºä¿Í ºñ½ÁÇÏÁö¸¸ ºä´Â Á¤ÀǸ¸ °¡Áö´Âµ¥ ºñÇØ Àӽà Å×À̺íÀº
ºñ·Ï ÀϽÃÀûÀÌÁö¸¸ ÁøÂ¥ µ¥ÀÌÅ͸¦ º¸À¯ÇÏ´Â Å×À̺íÀÌ´Ù.
Àӽà Å×À̺íÀÇ °³³äÀ̳ª È°¿ëÇÏ´Â ÀýÂ÷´Â DBMSº°·Î º°¹Ý ´Ù¸£Áö ¾ÊÁö¸¸
»ý¼º ¹®¹ý°ú µ¿ÀÛ ¹æ½ÄÀº ¾à°£ Â÷ÀÌ°¡ ÀÖ´Ù. ¸ÕÀú ¿À¶óŬÀÇ °æ¿ìºÎÅÍ »ìÆ캸ÀÚ.
CREATE GLOBAL TEMPORARY TABLE Å×À̺í¸í (
ÇÊµå ¼Ó¼º
) [ ON COMMIT DELETE ROWS ¶Ç´Â ON COMMIT PRESERVE ROWS];
ÀÏ¹Ý Å×À̺íÀ» »ý¼ºÇÏ´Â ¹®¹ý°ú °°µÇ Å×À̺í¸í ¾Õ¿¡ GLOBAL
TEMPORARY¸¦ ÁöÁ¤ÇÏ´Â Á¡ÀÌ ´Ù¸£´Ù. ÇÊµå ¼Ó¼ºÀº ÀÏ¹Ý Å×À̺í°ú °°À¸¸ç µÚÂÊ¿¡ µ¥ÀÌÅÍ
º¸À¯ ±â°£À» ÁöÁ¤ÇÏ´Â ¿É¼ÇÀ» ÁöÁ¤ÇÑ´Ù.
ON COMMIT DELETE ROWS : Ä¿¹ÔÇÏ¸é µ¥ÀÌÅÍ°¡ »ç¶óÁø´Ù. »ý·«½Ã ÀÌ ¿É¼ÇÀÌ µðÆúÆ®ÀÌ´Ù.
ON COMMIT PRESERVE ROWS : ¼¼¼ÇÁß¿¡´Â µ¥ÀÌÅ͸¦ À¯ÁöÇÏ¸ç ¼¼¼ÇÀÌ
Á¾·áÇÏ¸é »ç¶óÁø´Ù.
ÀÓ½ÃÀûÀÎ µ¥ÀÌÅÍ´Â Àû´çÇÑ ¶§¿¡ ÀÚµ¿À¸·Î »èÁ¦ÇØ¾ß Çϴµ¥ ÀÌ ¿É¼ÇÀº µ¥ÀÌÅ͸¦ ¾ðÁ¦±îÁö À¯ÁöÇÒ °ÍÀΰ¡¸¦ ÁöÁ¤ÇÑ´Ù. Æ®·£Àè¼Ç ·¹º§ÀÏ ¼öµµ ÀÖ°í ¼¼¼Ç ·¹º§ÀÏ ¼öµµ ÀÖ´Ù. °£´ÜÇÑ ÀÓ½Ã
Å×À̺íÀ» »ý¼ºÇØ º¸ÀÚ.
CREATE GLOBAL TEMPORARY TABLE tGtt (
name
VARCHAR(20) PRIMARY KEY,
score
INT
);
À̸§°ú Á¡¼ö Çʵ带 °¡Áö´Â tGtt Àӽà Å×À̺íÀ» »ý¼ºÇß´Ù. µ¥ÀÌÅÍ º¸À¯ ±â°£ÀÌ ÀÓ½ÃÀûÀÏ »Ó ¾î¿³ÇÑ Å×À̺íÀ̶ó »ç¿ëÇÏ´Â ¹æ¹ýÀº °°´Ù. µ¥ÀÌÅ͸¦
³Ö°í Àß µé¾î°¡´ÂÁö Á¶È¸ÇØ º¸ÀÚ.
INSERT INTO tGtt VALUES ('±èÇѽ½', 95);
INSERT INTO tGtt VALUES ('±èÇÑ°á', 80);
SELECT * FROM tGtt;
Àß ÀúÀåÇÏ°í Á¶È¸µµ ÀÌ»ó ¾ø´Ù. ±×·¯³ª µ¥ÀÌÅ͸¦ ¿µ±¸ÀûÀ¸·Î ÀúÀåÇÏÁö
¾Ê°í ÀÏÁ¤ ½ÃÁ¡ÀÌ µÇ¸é »ç¶óÁø´Ù. Ä¿¹ÔÇÑ ÈÄ ´Ù½Ã Á¶È¸ÇØ º¸ÀÚ.
COMMIT;
Æ®·£Àè¼Ç ·¹º§ÀÇ Àӽà Å×À̺íÀº Æ®·£Àè¼Ç ÁøÇà Áß¿¡¸¸ µ¥ÀÌÅ͸¦ °¡Áø´Ù. ±×·¡¼
Æ®·£Àè¼ÇÀ» Á¾·áÇÏ´Â COMMIT ¸í·ÉÀ» ³»¸®´Â Áï½Ã µ¥ÀÌÅ͸¦ »èÁ¦ÇÑ´Ù.
ROLLBACKµµ ¹°·ÐÀÌ¸ç µÎ ¸í·É ¸ðµÎ TRUNCATE TABLE ¸í·É°ú È¿°ú°¡ °°´Ù.
À̹ø¿¡´Â ON COMMIT PRESERVE ROWS ¿É¼ÇÀ» ÁÖ¾î ¼¼¼Ç
·¹º§·Î ´Ù½Ã »ý¼ºÇØ º¸ÀÚ. °°Àº À̸§À¸·Î Å×À̺íÀ» ¶Ç ¸¸µé ¼ö ¾øÀ¸´Ï ±âÁ¸ Å×À̺íÀ» »èÁ¦ÇÏ°í »õ·Î ¸¸µé¾î¾ß
ÇÑ´Ù. Àӽà Å×ÀÌºíµµ Å×À̺íÀ̹ǷΠDROP TABLE·Î »èÁ¦ÇÑ´Ù.
DROP TABLE tGtt;
CREATE GLOBAL TEMPORARY TABLE tGtt (
name
VARCHAR(20) PRIMARY KEY,
score
INT
) ON COMMIT PRESERVE ROWS;
ÀÌ·¸°Ô ¸¸µç Àӽà Å×À̺íÀº COMMIT Çصµ µ¥ÀÌÅÍ°¡ »ç¶óÁöÁö´Â ¾ÊÀ¸¸ç
¼¼¼ÇÁß¿¡´Â µ¥ÀÌÅ͸¦ À¯ÁöÇÑ´Ù. ¹°·Ð ROLLBACK ¸í·ÉÀ»
³»¸®¸é »ðÀÔÀ» Ãë¼ÒÇÑ´Ù. ¿¬°áÀ» À¯ÁöÇÏ°í ÀÖ´Â Áß¿¡´Â µ¥ÀÌÅ͸¦ °è¼Ó º¸À¯Çϴµ¥ ÀÌ ¸»Àº °ð ¿¬°áÀ» ²÷À¸¸é
»ç¶óÁø´Ù´Â ¾ê±âÀÌ´Ù.
°ú¿¬ ±×·±Áö Äõ¸®Ã¢À» Á¾·áÇß´Ù°¡ Àç½ÇÇàÇÑ ÈÄ Á¶È¸ÇØ º¸ÀÚ. ÀÌÀü ¼¼¼Ç¿¡¼
»ðÀÔÇÑ µ¥ÀÌÅÍ°¡ »ç¶óÁö°í ¾ø´Ù. ·¹Äڵ带 ´Ù½Ã »ðÀÔÇÏ¸é µ¥ÀÌÅÍ°¡ ³ªÅ¸³´Ù. ÀÌ »óÅ¿¡¼ Äõ¸®Ã¢À» Çϳª ´õ ¿¾î ¼¼¼Ç2¸¦ ¿¬°áÇÏ°í Á¶È¸ÇØ º¸ÀÚ. ½ºÅ°¸¶´Â ¿µ±¸ÀûÀ¸·Î ÀúÀåµÇ¾î Å×À̺íÀº °øÀ¯ÇÏÁö¸¸ ´Ù¸¥ ¼¼¼Ç¿¡¼´Â µ¥ÀÌÅÍ°¡ º¸ÀÌÁö ¾Ê´Â´Ù. ¼¼¼Ç2¿¡¼ ´ÙÀ½ µ¥ÀÌÅ͸¦ ³Ö¾î º¸ÀÚ.
INSERT INTO tGtt VALUES ('±è±Ô¹Î', 70);
SELECT * FROM tGtt;
¼¼¼Ç1¿¡¼ »ðÀÔÇÑ µ¥ÀÌÅÍ´Â º¸ÀÌÁö ¾ÊÁö¸¸ ÀÚ½ÅÀÌ ¹æ±Ý ³ÖÀº µ¥ÀÌÅÍ´Â
Àß º¸ÀÌ´Â°Ô ´ç¿¬ÇÏ´Ù. ÀÌ »óÅ¿¡¼ ¼¼¼Ç1·Î À̵¿ÇÏ¿© Á¶È¸ÇØ
º¸¸é ¼¼¼Ç2°¡ »ðÀÔÇÑ ·¹ÄÚµå´Â º¸ÀÌÁö ¾Ê´Â´Ù.
¶È°°Àº Å×ÀÌºí¿¡ µ¥ÀÌÅ͸¦ »ðÀÔÇßÁö¸¸ ¼¼¼Çº°·Î ÀÚ½ÅÀÇ µ¥ÀÌÅ͸¦ °³º°ÀûÀ¸·Î º¸À¯ÇÔÀ» ¾Ë ¼ö ÀÖ´Ù. Àӽà Å×À̺íÀº µ¥ÀÌÅ͸¦ µð½ºÅ©¿¡ ¿µ±¸ ÀúÀåÇÏÁö ¾Ê°í ¼¼¼ÇÀÇ ¸Þ¸ð¸®¿¡ ÀϽÃÀûÀ¸·Î¸¸ º¸À¯ÇÑ´Ù. ¼¼¼Ç°£¿¡´Â µ¥ÀÌÅ͸¦ °øÀ¯ÇÒ ¼ö ¾øÁö¸¸ ´ë½Å Á¶È¸³ª ó¸® ¼Óµµ°¡ ±²ÀåÈ÷ ºü¸£´Ù.
»õ·Î Á¢¼ÓÇÒ ¶§¸¶´Ù Àӽà Å×À̺íÀº Ç×»ó ÅÖ ºó »óÅ·Π½ÃÀÛÇÑ´Ù. ¸¶À½´ë·Î
µ¥ÀÌÅ͸¦ »ðÀÔ, »èÁ¦, °»½ÅÇÏ¸ç »ç¿ëÇÏ´Ù°¡ ¼¼¼Ç ³¡³»°í ³ª°¡
¹ö¸®¸é ÀÚµ¿À¸·Î »èÁ¦µÈ´Ù. ÀúÀå °ø°£ÀÌ ºÐ¸®µÇ¾î ÀÖÀ¸´Ï ¶ôÀÌ °É¸®Áö ¾Ê¾Æ ¼¼¼Ç³»¿¡¼´Â ÀÚÀ¯·Ó°Ô »ç¿ëÇÒ
¼ö ÀÖ´Ù.
¿À¶óŬÀÇ Àӽà Å×À̺íÀº µ¥ÀÌÅ͸¸ ÀÓ½ÃÀûÀÏ »Ó Å×À̺í ÀÚü´Â ¿µ±¸ÀûÀ¸·Î À¯ÁöÇÑ´Ù.
Å×À̺íÀ» Áö¿ì·Á¸é ÀÏ¹Ý Å×À̺í°ú ¸¶Âù°¡Áö·Î DROP TABLE ¸í·ÉÀ» »ç¿ëÇÑ´Ù. ´Ü, ´Ù¸¥ ¼¼¼Ç¿¡¼ »ç¿ëÁßÀÌ¸é »èÁ¦ÇÒ ¼ö ¾ø´Ù.
¿À¶óŬÀÇ Àӽà Å×À̺íÀº µ¥ÀÌÅ͸¸ ÀÓ½ÃÀûÀε¥ ºñÇØ SQL Server´Â
Å×À̺í±îÁöµµ ÀÓ½ÃÀûÀÌ´Ù. º°µµÀÇ »ý¼º ¹®¹ýÀº ¾ø°í À̸§À¸·Î Àӽà ¿©ºÎ¸¦ °áÁ¤ÇÑ´Ù. Å×À̺í À̸§¿¡ #À» ºÙÀÌ¸é ¸¸µç »ç¶÷¸¸ ¾µ ¼ö ÀÖ´Â Áö¿ª Àӽà Å×À̺íÀÌ°í
##À» ºÙÀÌ¸é ´©±¸³ª ¾µ ¼ö ÀÖ´Â Àü¿ª Àӽà Å×À̺íÀÌ´Ù.
µÑ ´Ù tempdb¿¡ »ý¼ºµÇ¸ç ¼¼¼Ç Á¾·á½Ã ÀÚµ¿ »èÁ¦ÇÏ´Â Á¡Àº °°´Ù. Àӽà Å×ÀÌºí¸¸ ÀúÀåÇÏ´Â º°µµÀÇ ½Ã½ºÅÛ DB°¡ µû·Î ÀÖ´Ù. ´ÙÀ½ ¸í·ÉÀ¸·Î Àӽà Å×À̺íÀ» ¸¸µé¾î º¸ÀÚ. ÁøÂ¥ Å×À̺íÀ» ¸¸µå´Â
¸í·É°ú ¶È°°µÇ ´Ù¸¸ Å×À̺í À̸§ ¾Õ¿¡ #À» ºÙÀδٴ Á¡¸¸ ´Ù¸£´Ù.
CREATE TABLE #tTemp (
name
VARCHAR(20) PRIMARY KEY,
score
INT
);
µ¥ÀÌÅ͸¦ ³Ö¾î º¸°í Á¶È¸ÇØ º¸ÀÚ. ¼Ò¼Ó DB¸¦ ¹àÈ÷Áö ¾Ê¾Æµµ Ç×»ó tempdb¿¡ ÀÖ´Â °ÍÀ¸·Î °£ÁÖÇϹǷΠ±»ÀÌ
tempdb.dbo.#tTemp·Î ÀûÀ» ÇÊ¿ä ¾øÀ¸¸ç À̸§¸¸ ¹àÈ÷¸é µÈ´Ù.
INSERT INTO #tTemp VALUES ('±èÇѽ½', 95);
INSERT INTO #tTemp VALUES ('±èÇÑ°á', 80);
INSERT INTO #tTemp VALUES ('±è±Ô¹Î', 70);
SELECT * FROM #tTemp;
Àӽà Å×ÀÌºíµµ ¾ö¿¬ÇÑ Å×À̺íÀ̸ç À̸§ ¾Õ¿¡ #ÀÌ ºÙ¾î ÀÖÀ» »Ó ¸¸µé°í
»ç¿ëÇÏ´Â ¹æ¹ýÀº ÀÏ¹Ý Å×À̺í°ú °°´Ù. »ðÀÔ, »èÁ¦, °»½ÅÀº ¹°·ÐÀÌ°í ±¸Á¶ º¯°æÀ̳ª À妽º±îÁö ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ´Ü, ¿µ±¸ÀûÀ¸·Î ÀúÀåÇÏ´Â Å×À̺íÀÌ ¾Æ´Ï¾î¼ ¿Ü·¡Å° Á¦¾àÀº °É ¼ö ¾ø´Ù.
Áö¿ª Àӽà Å×À̺íÀº ÇöÀç Äõ¸®Ã¢¿¡¼¸¸ ¾µ ¼ö ÀÖ´Ù. Ctrl+NÀ»
´·¯ »õ Äõ¸®Ã¢À» ¿¸é ¼¼¼ÇÀÌ ´Þ¶ó º¸ÀÌÁö ¾Ê´Â´Ù. Äõ¸®Ã¢À» ´Ý¾Ò´Ù°¡ ´Ù½Ã ¿°Å³ª SQL Server¸¦ Àç½ÃÀÛÇصµ Å×À̺íÀº »ç¶óÁø´Ù. µ¥ÀÌÅ͸¸ »ç¶óÁö´Â
°ÍÀÌ ¾Æ´Ï¶ó Å×À̺í ÀÚü°¡ ¾ø¾îÁø´Ù.
Å×À̺í À̸§À» ##tTemp·Î ÁöÁ¤ÇÏ¿© Àü¿ª Àӽà Å×À̺í·Î »ý¼ºÇϸé
´Ù¸¥ ¼¼¼Ç¿¡¼µµ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¹°·Ð Å×À̺í À̸§Àº ¾çÂÊ¿¡¼ ¹Ì¸® ¾Ë°í ÀÖ¾î¾ß ÇÑ´Ù. ÀÓ½Ã¿Í Àü¿ªÀº »óÃæµÇ´Â °³³äÀ̶ó ½Ç¿ë¼ºÀÌ ¶³¾îÁø´Ù. Àü¿ªµµ ¼¼¼Ç
Á¾·á½Ã ÀÚµ¿ »èÁ¦µÇ´Â °ÍÀº ¸ÅÇÑ°¡ÁöÀÌ´Ù.
´ÙÀ½Àº MariaDBÀÇ Àӽà Å×ÀÌºí¿¡ ´ëÇØ ¾Ë¾Æº¸ÀÚ. Å×ÀÌºí »ý¼º¹®¿¡ TEMPORARY Å°¿öµå¸¦ ÁöÁ¤Çϸé Àӽà Å×À̺íÀÌ
µÈ´Ù. º°µµÀÇ Å°¿öµå·Î Àӽà ¿©ºÎ¸¦ ¸íÈ®È÷ ÁöÁ¤ÇϹǷΠÅ×À̺í À̸§Àº ¾Æ¹«·¡µµ »ó°ü¾ø´Ù.
CREATE TEMPORARY TABLE tTemp (
name
VARCHAR(20) PRIMARY KEY,
score
INT
);
ÀÏ¹Ý Å×À̺í°ú »ç¿ëÇÏ´Â ¹æ½ÄÀº °°´Ù. Àӽà Å×ÀÌºí¿¡ µ¥ÀÌÅ͸¦ »ðÀÔÇÏ°í Á¶È¸ÇØ º¸ÀÚ.
INSERT INTO tTemp VALUES ('±èÇѽ½', 95);
INSERT INTO tTemp VALUES ('±èÇÑ°á', 80);
INSERT INTO tTemp VALUES ('±è±Ô¹Î', 70);
SELECT * FROM tTemp;
Àß »ðÀԵǰí Àß Á¶È¸µÈ´Ù. ¼¼¼Ç°£¿¡ µ¥ÀÌÅ͸¦ À¯ÁöÇϹǷΠCOMMIT Çصµ »ç¶óÁöÁö ¾ÊÁö¸¸ ´Ù¸¥ ¼¼¼Ç¿¡¼´Â º¸ÀÌÁö ¾ÊÀ¸¸ç ¼¼¼Ç Á¾·á½Ã Å×À̺íÀ» ÀÚµ¿ »èÁ¦ÇÑ´Ù. Àӽà Å×À̺íÀ» ¸¸µå´Â ¹®¹ýÀº ¿À¶óŬ°ú ºñ½ÁÇÏ°í °ü¸®ÇÏ´Â ¹æ½ÄÀº SQL
Server¿Í ºñ½ÁÇÏ´Ù.
Àӽà Å×À̺íÀº ÀϽÃÀûÀ¸·Î¸¸ Á¸ÀçÇϹǷΠÀÓ½ÃÀûÀΠ󸮿¡ À¯¿ëÇÏ´Ù. ¿øº»
Å×À̺íÀÇ »çº»À» ¶á ÈÄ ÀÚÀ¯·Ó°Ô Á¶ÀÛ, º¯ÇüÇØ º¼ ¼ö ÀÖÀ¸¸ç ¾ÆÁÖ º¹ÀâÇÑ ÀÛ¾÷À» Àß°Ô ³ª´©¾î ´Ü°èÀûÀ¸·Î
ó¸®ÇÒ ¼ö ÀÖ´Ù. »çÀå´ÔÀÌ Æ¯¼ö ÀÓ¹«¸¦ ¼öÇàÇÒ Å½ºÅ© Æ÷½º ±¸¼ºÀ» Áö½ÃÇߴµ¥ ¿ö³« Áß¿äÇÑ ÇÁ·ÎÁ§Æ®¶ó
¼±¹ß ±âÁØÀÌ ±î´Ù·Ó´Ù.
¨ç 2016³â
ÀÌÀü ÀÔ»çÀÚ Áß ¿ù±Þ »óÀ§ 10¸í ¼±¹ß
¨è ¼±¹ßµÈ ³²Á÷¿øÀÇ Æò±Õ ¼ºÃëµµº¸´Ù ³·Àº
³²Á÷¿øÀº Á¦¿Ü
¨é Àüü Á÷¿øÀÇ Æò±Õ ¿ù±Þº¸´Ù ³·Àº ¿©Á÷¿øÀº
Á¦¿Ü
¨ê ¿ù±Þ 300 ³ÑÀ¸¸é¼ ¾ÆÁ÷µµ ´ë¸®ÀÎ ²ÃÅë Á÷¿ø Á¦¿Ü
¨ë ¿ù±Þ 380 ³ÑÀ¸¸é¼ °úÀåÀÎ Á÷¿øÀº °æÇèÀÌ Ç³ºÎÇϹǷΠÆ÷ÇÔ
ÀÌ ¸ðµç Á¶°ÇÀ» ¸¸Á·ÇÏ´Â ÀοøÀ» Äõ¸® Çϳª·Î »Ì¾Æ ³»±â´Â ½±Áö ¾Ê´Ù. ¹°·Ð
ºÒ°¡´ÉÇÏÁö´Â ¾ÊÁö¸¸ °úÁ¤ÀÌ º¹ÀâÇÏ°í Äõ¸®¹®µµ ³ÇØÇØÁø´Ù. ÀÌ·² ¶§´Â Àӽà Å×À̺íÀ» ¸¸µé¾î ¼ø¼´ë·Î Çϳª¾¿
ó¸®Çϸé Á÷°üÀûÀÌ°í ½±´Ù. °¢ ´Ü°èº°·Î °á°ú¼ÂÀÌ ¾î¶»°Ô ¹Ù²î´ÂÁö °üÂûÇØ º¸ÀÚ. ¸ÕÀú Àӽà Å×À̺íÀ» »ý¼ºÇÑ´Ù.
CREATE GLOBAL TEMPORARY TABLE tTaskForce AS SELECT
* FROM tStaff;
tStaffÀÇ ±¸Á¶¸¦ ±×´ë·Î º¹»çÇÏ¿© tTaskForce Àӽà Å×À̺íÀ» »ý¼ºÇÑ´Ù. ÇÊµå ¸ñ·Ï¸¸ º¹»çÇÒ »ÓÀ̸ç
Àӽà Å×À̺íÀ» »ý¼ºÇÏ¸é¼ µ¥ÀÌÅͱîÁö ÇÑ ¹ø¿¡ º¹»çÇØ ³ÖÀ» ¼ö´Â ¾ø´Ù. Å×ÀÌºí »ý¼º ÈÄ µ¥ÀÌÅÍ´Â µû·Î
»ðÀÔÇÑ´Ù.
INSERT INTO tTaskForce SELECT * FROM (SELECT *
FROM tStaff
WHERE joindate <= '20160101' ORDER BY salary
DESC) WHERE rownum <= 10;
2016³â ÀÌÀü ÀÔ»çÀÚ´Â 12¸íÀε¥
À̸¦ ¿ù±Þ ³»¸²Â÷¼øÀ¸·Î Á¤·ÄÇÏ¿© »óÀ§ 10¸íÀ» °ñ¶ó °á°ú¼ÂÀ» tTaskForce
Àӽà Å×ÀÌºí¿¡ ÀúÀåÇÑ´Ù. Àӽà Å×À̺íÀ» ¸ÕÀú ¸¸µé°í ¿øº»À» Á¤·ÄÇÒ ÈÄ ÀϺΠ·¹Äڵ常 Àбâ
À§ÇØ ¼ºêÄõ¸®°¡ ÇÊ¿äÇÏ´Ù. SQL Server¿Í MariaDB´Â
Àӽà Å×ÀÌºí »ý¼º°ú µ¥ÀÌÅÍ »ðÀÔ °úÁ¤À» ÇÑ ¹ø¿¡ ó¸®ÇÒ ¼ö ÀÖ´Ù.
SQL Server : SELECT TOP 10 * INTO #tTaskForce FROM
tStaff
WHERE joindate <= '20160101' ORDER BY salary
DESC;
MariaDB : CREATE TEMPORARY TABLE tTaskForce AS
SELECT * FROM tStaff
WHERE joindate <= '20160101' ORDER BY salary
DESC LIMIT 10;
µÑ ´Ù Àӽà Å×À̺íÀ» »ý¼ºÇÏ¸é¼ ¿øº»ÀÇ ½ºÅ°¸¶¿Í µ¥ÀÌÅ͸¦ Çѹ濡 °¡Á®¿Â´Ù. ¶ÇÇÑ
ÀϺΠ·¹Äڵ带 °¡Á®¿À´Â TOP, LIMIT ¹®¹ýÀÌ µû·Î ÀÖ¾î ¼ºêÄõ¸®µµ ÇÊ¿ä ¾ø´Ù. ÀÌÈÄÀÇ °úÁ¤Àº SQL ServerÀÇ Å×À̺í À̸§¸¸ #tTaskForceÀÏ »Ó ÄÚµå´Â °°´Ù. ¿©±â±îÁö ´ÙÀ½ 10¸íÀÇ È常¦ ¼±Á¤ÇÑ´Ù.
´ÙÀ½Àº ³²Á÷¿øÀÇ Æò±Õ ¼ºÃëµµº¸´Ù ³·Àº ÀÏ ¸øÇÏ´Â ³²Á÷¿øÀ» ¼Ô¾Æ³½´Ù. ¼ºêÄõ¸®·Î
¼±¹ßµÈ ³²Á÷¿ø Æò±Õ ¼ºÃëµµ¸¦ ¸ÕÀú ±¸ÇÏ°í ±× º¸´Ù ³·Àº ³²Á÷¿øÀ» Áö¿ö ¹ö¸®¸é µÈ´Ù.
DELETE FROM tTaskForce WHERE score < (SELECT
AVG(score) FROM tTaskForce
WHERE gender = '³²') AND
gender = '³²';
ÀÌ ´Ü°è¿¡¼ 4¸íÀÌ Å»¶ôÇÏ°í 6¸í¸¸
³²´Â´Ù. ¿øº»ÀÌ ¾Æ´Ñ Àӽà Å×À̺íÀ̹ǷΠ¸¶À½´ë·Î Áö¿öµµ »ó°ü¾ø´Ù. ´ÙÀ½Àº
Æò±Õ ¿ù±Þº¸´Ù Àû°Ô ¹Þ´Â ¿©Á÷¿øÀ» Á¦¿ÜÇÑ´Ù. ¿©Á÷¿øÀÇ Æò±Õ ¿ù±ÞÀÌ ¾Æ´Ñ Àüü Á÷¿øÀÇ Æò±Õ ¿ù±Þ°ú ºñ±³ÇÑ´Ù.
DELETE FROM tTaskForce WHERE salary <
(SELECT AVG(salary) FROM tStaff) AND gender = '¿©';
1¸íÀÌ ´õ Å»¶ôÇÏ°í 5¸íÀÌ
³²´Â´Ù. º¸´Ù½ÃÇÇ Àӽà Å×À̺íÀº »çº»ÀÏ »ÓÀÌ¾î¼ ÁöÁö°í ºº°í ¸¶À½´ë·Î Á¶ÀÛÇÒ ¼ö ÀÖ´Ù. Ȥ½Ã ½Ç¼öÇÏ´õ¶óµµ º° »ó°ü¾øÀ¸¸ç ¾î¶² ½Ãµµ¸¦ Çصµ ºÎ´ã ¾ø´Ù. ´ÙÀ½À¸·Î
¸¸³â ´ë¸®´Â Á¦¿ÜÇÏ°í ¸¸³â °úÀåÀº Æ÷ÇÔÇÑ´Ù. ´ÙÀ½ µÎ Äõ¸®¹®À» ¼ø¼´ë·Î ½ÇÇàÇÑ´Ù.
DELETE FROM tTaskForce WHERE salary > 300 AND
grade = '´ë¸®';
INSERT INTO tTaskForce SELECT * FROM tStaff WHERE
salary > 380 AND grade = '°úÀå';
¸¸³â ´ë¸®ÀÎ Á¤¸ùÁÖ´Â ¹«´ÉÇÏ´Ï Á¦¿ÜÇÏ°í °æÇèÀÌ Ç³ºÎÇÑ ÀÌÀ²°î °úÀåÀº Æ÷ÇÔ½ÃŲ´Ù.
Áö¿ì´Â °Í »Ó¸¸ ¾Æ´Ï¶ó ´Ù½Ã »ðÀÔÇÏ´Â °Íµµ ¾ðÁ¦µçÁö °¡´ÉÇÏ´Ù. ÃÖÁ¾ÀûÀ¸·Î 5¸íÀÇ À¯´ÉÇÑ Æ¯°ø´ë°¡ ³²´Â´Ù.
ÃÖÁ¾ °á°ú¸¦ µµÃâÇÑ ÈÄ Àӽà Å×À̺íÀº ´õ ÀÌ»ó ÇÊ¿ä ¾øÀ¸¹Ç·Î »èÁ¦ÇÑ´Ù. ¿À¶óŬÀº
DROP TABLE ¸í·ÉÀ¸·Î »èÁ¦Ç쵂 ±×³É ³»¹ö·Á µÖµµ ´ÙÀ½ ¼¼¼Ç¿¡¼ µ¥ÀÌÅÍ´Â ÀÚµ¿À¸·Î »ç¶óÁø´Ù. SQL Server¿Í MariaDB´Â ±×³É ¹æÄ¡ÇØ µÎ¸é Å×À̺íÁ¶Â÷µµ
´ÙÀ½ ½ÃÀ۽à ¾Ë¾Æ¼ »èÁ¦ÇÑ´Ù.
»çÀå´ÔÀÌ Á¦½ÃÇÑ Á¶°ÇÀÌ ¾Æ¹«¸® º¹ÀâÇصµ ÇÑ´Ü°è ÇÑ´Ü°è ¹â¾Æ ³ª°¡¸é ¾î·ÆÁö ¾Ê´Ù.
ƯÁ¤ Áý´ÜÀº ²Ãº¸±â ½ÈÀ¸´Ï »©¶ó°Å³ª ´©±¸´Â ÀÏ ÀßÇÏ´Ï ²À Æ÷ÇÔ½ÃÅ°¶ó´Â Ưº° Áö½Ãµµ ¾ó¸¶µçÁö ¼ö¿ëÇÒ ¼ö ÀÖ´Ù. Áß°£ Áß°£¿¡ °æ°ú¸¦ »ìÆì º¼ ¼ö ÀÖ¾î Àß µÇ°í ÀÖ´ÂÁö È®ÀÎÇϸç ÀÛ¾÷ÇÒ ¼ö ÀÖ´Ù.
ÀÌ Á¤µµ Á¶°ÇÀ̸é Äõ¸®¹® Çϳª·Îµµ ¿øÇÏ´Â °á°ú¼ÂÀ» ¸¸µé¾î ³¾ ¼ö ÀÖ´Ù. ¼ºêÄõ¸®·Î
Áß°£ Áý°è¸¦ ±¸ÇÏ°í Á¦¿Ü, Æ÷ÇÔ ¿©ºÎ¿¡ µû¶ó AND, OR Á¶°ÇÀ»
Àß Á¶ÇÕÇÏ¸é µÈ´Ù. ±×·¯³ª ±²ÀåÈ÷ ±æ°í º¹ÀâÇØ ÇÑ ¹ø¿¡ ¿øÇÏ´Â °ÍÀ» Á¤È®È÷ ÀÛ¼ºÇϱ⠾î·Æ°í Áߺ¹µµ ½ÉÇÏ´Ù. ÀÌ¿¡ ºñÇØ Àӽà Å×À̺íÀº À¯¿¬¼ºÀÌ ³ô´Ù.
l ÇÑ ¹ø¿¡ ¸ðµç °ÍÀ»
´Ù ó¸®ÇÒ ÇÊ¿ä ¾øÀÌ ´Ü°è¸¦ ¹â¾Æ ¼øÂ÷ÀûÀ¸·Î ó¸®ÇÑ´Ù. ó¸® °úÁ¤ÀÌ ±æ°í º¹ÀâÇÏ´Ù¸é °úÁ¤À» ºÐÇØÇÏ¿©
Çϳª¾¿ ó¸®ÇÏ´Â °ÍÀÌ ¸íÈ®Çϸç Â÷ÈÄ À¯Áö, º¸¼öµµ ½±´Ù.
l ¿øº»À» ²À º¸Á¸ÇÒ Àǹ«°¡
¾ø´Ù. Áß°£ °á°ú¸¦ ±¸ÇÏ´Â ¼ºêÄõ¸®³ª ¿¬»ê½ÄÀº °úÇÏ°Ô º¹ÀâÇϰųª ¹Ýº¹ÀÌ ½ÉÇØ ºñÈ¿À²ÀûÀÌ´Ù. Àӽà Å×À̺íÀº Çʵ带 Á÷Á¢ ¹Ù²ã °¡¸ç ÀÛ¾÷ÇÒ ¼ö ÀÖ¾î ÀÚÀ¯µµ°¡ ³ô´Ù.
l ¾ÆÁ÷ ¹è¿ìÁö ¾ÊÀº ½ºÅ©¸³Æ®°¡
ÇÊ¿äÇØ ½Ç½À¿¡´Â Á¦¿ÜÇßÁö¸¸ ¾ÕÂÊ Ã³¸® °á°ú¿¡ µû¶ó µÚÂÊ Ã³¸® ¹æ½ÄÀ» °¡º¯ÀûÀ¸·Î °áÁ¤ÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦
µé¾î 3¹ø 󸮱îÁö ¼öÇàÇÑ ÈÄ¿¡µµ ³²Àº ÀοøÀÌ 5¸í ÀÌ»óÀΰ¡¿¡
µû¶ó ¸¸³â ´ë¸®¿Í ¸¸³â °úÀåÀÇ Æ÷ÇÔ ¿©ºÎ¸¦ ź·ÂÀûÀ¸·Î °áÁ¤ÇÏ´Â ½ÄÀÌ´Ù.
SQLÀº ¾Æ¹«¸® ±æ¾îµµ ÇϳªÀÇ ¸í·ÉÀ¸·Î ¸ðµç °ÍÀ» ÀÏ°ý ó¸®ÇÏ´Â °ÍÀÌ
¹Ì´öÀÌ¸ç ¼º´É»óÀ¸·Îµµ ±ÇÀåÇÑ´Ù. ±×·¯³ª ÀýÂ÷ÀûÀÎ Äڵ忡 Àͼ÷ÇÑ »ç¶÷¿¡°Ô´Â ½±Áö ¾ÊÀ¸¸ç ¶§·Î´Â ºÒ°¡´ÉÇÑ
°æ¿ìµµ ÀÖ´Ù. ÀÌ·² ¶§´Â ÀýÂ÷¸¦ ºÐÇØÇÏ¿© Àӽà Å×À̺í·Î ÀÛ¾÷ÇÏ´Â °ÍÀÌ Á÷°üÀûÀÌ´Ù.
¿¬½À ¹®Á¦
4.tCityÀÇ µµ½Ã Áß Àü¶óµµ Áö¿ª, ¸éÀû 500 ÃÊ°ú µµ½Ã¸¦ Æ÷ÇÔÇÏ°í Àα¸ 50 ¹Ì¸¸Àº Á¦¿ÜÇÑ ÈÄ ¸éÀûÀ» ¸¸Æò ´ÜÀ§·Î ¹Ù²Ù¾î Ãâ·ÂÇ϶ó.
ƯÁ¤ Á¶°ÇÀ¸·Î °Ë»öÇÑ ¶È°°Àº °á°ú¼ÂÀÌ ¿©·¯ ¹ø ÇÊ¿äÇÑ °æ¿ì°¡ ÀÖ´Ù. ¿¹¸¦
µé¾î ¿µ¾÷ºÎ ³²Á÷¿ø¸¸À» ´ë»óÀ¸·Î ¾î¶² ÀÛ¾÷À» ÇÑ´Ù¸é ´ÙÀ½ Äõ¸®¹®À¸·Î Å×À̺íÀ» ¸¸µç´Ù. Á¶°ÇÀý¿¡ ¿µ¾÷ºÎ
³²Á÷¿øÀ» ÁÖ¾úÀ¸´Ï ÇÊµå ¸ñ·Ï¿¡ depart¿Í gender´Â
±»ÀÌ Æ÷ÇÔÇÒ ÇÊ¿ä ¾ø´Ù.
SELECT name, salary, score FROM tStaff WHERE
depart = '¿µ¾÷ºÎ' AND gender = '³²';
´Ù¼¸¸íÀÇ ³²ÀÚ Á÷¿øÀÌ °Ë»öµÇ¸ç À̰͵µ Äõ¸®¹®À¸·Î ¸¸µç ÇϳªÀÇ Å×À̺íÀÌ´Ù. ÀÌ
ÁýÇÕÀ» ´ë»óÀ¸·Î Æò±Õ ¿ù±Þ ÀÌ»óÀÎ Á÷¿øÀ» Á¶»çÇÑ´Ù¸é ´ÙÀ½ Äõ¸®¹®À» ÀÛ¼ºÇÑ´Ù. FROM Àý¿¡ ´ë»ó Å×À̺íÀ»
¹àÇô¾ß ÇÏ°í Æò±Õ ¿ù±ÞÀ» ±¸ÇÏ´Â ¼ºêÄõ¸®¿¡¼µµ Å×À̺íÀÌ ÇÊ¿äÇÏ´Ù.
SELECT * FROM
(
SELECT
name, salary, score FROM tStaff WHERE depart = '¿µ¾÷ºÎ'
AND gender = '³²'
) A
WHERE salary >= (
SELECT
avg(salary) FROM
(
SELECT
name, salary, score FROM tStaff WHERE depart = '¿µ¾÷ºÎ'
AND gender = '³²'
)
B
);
º¸´Ù½ÃÇÇ ¶È°°Àº Äõ¸®¹®ÀÌ µÎ ¹ø ¹Ýº¹µÈ´Ù. ¹Ýº¹À» ÇÇÇÏ·Á¸é ¿µ¾÷ºÎ
³²Á÷¿ø¸¸À» ¸ð¾Æ º°µµÀÇ Å×À̺íÀ» ¸¸µç ÈÄ ÀÌ Å×À̺íÀ» »ç¿ëÇÏ¸é µÈ´Ù. ÇÑ ¹ø¸¸ ¾µ Äõ¸®¸¦ À§ÇØ »çº»
Å×À̺íÀ» ¸¸µå´Â °ÍÀº ºÎ´ã½º·´°í ÀýÂ÷µµ º¹ÀâÇØ Àӽà Å×À̺íÀ» ¾²´Â °ÍÀÌ ´õ ³´´Ù. ´ÙÀ½ Äõ¸®·Î À̸§, ¿ù±Þ, ¼ºÃëµµ¸¸À» °¡Áö´Â Àӽà Å×À̺íÀ» »ý¼ºÇÏ°í ¿µ¾÷ºÎ ³²Á÷¿ø¸¸
Á¶È¸ÇÑ´Ù.
CREATE GLOBAL TEMPORARY TABLE tBusiMan AS SELECT
name, salary, score FROM tStaff;
INSERT INTO tBusiMan SELECT name, salary, score
FROM tStaff
WHERE depart = '¿µ¾÷ºÎ' AND
gender = '³²';
SQL Server³ª MariaDB´Â
ÀÌ µÎ °úÁ¤À» ÇÑ ¹ø¿¡ ó¸®ÇÒ ¼ö ÀÖ´Ù.
SQL Server: SELECT name, salary, score INTO
#tBusiMan FROM tStaff
WHERE depart = '¿µ¾÷ºÎ' AND
gender = '³²';
MariaDB : CREATE TEMPORARY TABLE tBusiMan AS
SELECT name, salary, score FROM tStaff WHERE
depart = '¿µ¾÷ºÎ' AND gender = '³²';
¿µ¾÷ºÎ ³²Á÷¿ø ´Ù¼¸ ¸íÀ¸·Î¸¸ ±¸¼ºÇÑ Àӽà Å×À̺íÀ» »ý¼ºÇß´Ù. Áß°£¿¡
·¹Äڵ带 ´õ »ðÀÔ, »èÁ¦ÇÒ ¼ö ÀÖ°í ƯÁ¤ °ªÀ» Á¶ÀÛÇÏ´Â °Íµµ ¾ó¸¶µçÁö °¡´ÉÇÏ´Ù. ÀÌÁ¦ Àӽà Å×ÀÌºí¿¡¼ °ªÀ» ÀÐÀ¸¸é µÈ´Ù.
SELECT * FROM tBusiMan WHERE salary >= (SELECT
avg(salary) FROM tBusiMan);
FROM (...)¿¡ ÇØ´çÇÏ´Â ±¸¹®ÀÌ tBusiManÀ¸·Î ´ëüµÇ¾î ª°í °£°áÇÏ´Ù. »Ó¸¸ ¾Æ´Ï¶ó ´Ü°è¸¦ ³ª´©¾î
³õÀ¸´Ï »ç¶÷ÀÇ »ç°íµµ ´Ü¼øÇØÁø´Ù. ºä·Îµµ ÀÌ ¹®Á¦¸¦ Ç® ¼ö ÀÖ´Ù. Á¶°Ç¿¡
¸Â´Â ·¹ÄÚµå ÁýÇÕÀ» ºä·Î Á¤ÀÇÇÏ°í ºä¿¡¼ ¿øÇÏ´Â °ªÀ» Á¶»çÇÏ¸é µÈ´Ù.
CREATE VIEW vBusiMan AS SELECT name, salary, score
FROM tStaff
WHERE depart = '¿µ¾÷ºÎ' AND
gender = '³²';
SELECT * FROM vBusiMan WHERE salary >= (SELECT
avg(salary) FROM vBusiMan);
½ÇÇà °á°ú´Â ¶È°°´Ù. ±×·¯³ª ºä´Â DB
¿ÀºêÁ§Æ®¸¦ »ý¼ºÇÑ´Ù´Â ¸é¿¡¼ ¹ø°Å·Ó´Ù. ÀÚµ¿À¸·Î »èÁ¦µÇÁö ¾Ê´Âµ¥´Ù ±ÇÇѵµ ½Å°æ½á¾ß ÇÏ´Ï
Àӽà Å×ÀÌºíº¸´Ù ¿©·¯ ¸ð·Î ¹ø°Å·Ó´Ù.