°úÁ¤ ¸ñÀû

º» °úÁ¤¿¡¼­´Â ºä »ý¼º°ú »ç¿ë¿¡ ´ëÇØ ¹è¿ó´Ï´Ù. ¶ÇÇÑ, ºä¿¡ ´ëÇÑ Á¤º¸¸¦ ÀÐ¾î µéÀ̱â À§ÇØ °ü·Ã µ¥ÀÌÅÍ »çÀü °´Ã¼¸¦ ÁúÀÇÇÏ´Â °ÍÀ» ¹è¿ì°Ô µË´Ï´Ù.

 

ºä¶õ?

Å×À̺íÀÇ ºä¸¦ »ý¼ºÇÔÀ¸·Î½á µ¥ÀÌÅÍ Á¶ÇÕ ¶Ç´Â ³í¸®Àû ºÎºÐÁýÇÕÀ» ³ªÅ¸³¾ ¼ö ÀÖ½À´Ï´Ù. ºä´Â Å×ÀÌºí ¶Ç´Â ´Ù¸¥ ºä¸¦ ±âÃÊ·Î ÇÏ´Â ³í¸®Àû Å×À̺íÀÔ´Ï´Ù. ºä´Â ±× ÀÚü·Î¼­ ¼ÒÀ¯ÇÏ´Â µ¥ÀÌÅÍ ´Â ¾øÁö¸¸ ⹮ó·³ â¹®À» ÅëÇØ ¾î¶² µ¥ÀÌÅ͸¦ º¸°Å³ª º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

ºäÀÇ ÀåÁ¡

º¸´Ù ÀÚ¼¼ÇÑ Á¤º¸¸¦ ¾Ë°íÀÚ ÇÑ´Ù¸é, ´ÙÀ½À» ÂüÁ¶ÇϽʽÿÀ. Oracle Server SQL Reference, Release 7.3 ¶Ç´Â 8.0, ¡°CREATE VIEW.¡±

´Ü¼ø ºä¿Í º¹ÇÕ ºä

ºä´Â 2°¡Áö Á¾·ù Áï, ´Ü¼ø ºä¿Í º¹ÇÕ ºä°¡ ÀÖ½À´Ï´Ù. ±Ùº»ÀûÀÎ Â÷ÀÌÁ¡Àº DML(»ðÀÔ, °»½Å, »èÁ¦) ÀÛ¾÷¿¡ °ü·ÃµÇ¾î ÀÖ½À´Ï´Ù.

 

ºä »ý¼º

CREATE VIEW ¹®Àå¿¡¼­ ¼­ºêÄõ¸®¸¦ ³»ÀåÇÏ¿© ºä¸¦ »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

±¸¹®¿¡¼­:

OR REPLACE

ÀÌ¹Ì Á¸ÀçÇÑ´Ù¸é ºä¸¦ ´Ù½Ã »ý¼ºÇÕ´Ï´Ù.

FORCE

±âº» Å×À̺íÀÇ Á¸Àç ¿©ºÎ¿¡ °ü°è¾øÀÌ ºä¸¦ »ý¼ºÇÕ´Ï´Ù.

NOFORCE

±âº» Å×À̺íÀÌ Á¸ÀçÇÒ °æ¿ì¿¡¸¸ ºä¸¦ »ý¼ºÇÕ´Ï´Ù.

view

ºäÀÇ À̸§ÀÔ´Ï´Ù.

alias

ºä ÁúÀÇ¿¡ ÀÇÇØ ¼±ÅÃµÈ Ç¥Çö½Ä¿¡ ´ëÇÑ À̸§À» ÁöÁ¤ÇÕ´Ï´Ù.  º°ÄªÀÇ ¼ö´Â ºä¿¡ ÀÇÇØ ¼±ÅÃµÈ Ç¥Çö½ÄÀÇ ¼ö¿Í ÀÏÄ¡ÇØ¾ß  ÇÕ´Ï´Ù.

subquery

SELECT ¹®ÀåÀ» ¿Ï¼ºÇÕ´Ï´Ù. SELECT ¸®½ºÆ®¿¡¼­ ¿­¿¡ ´ëÇÑ º°ÄªÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

WITH CHECK OPTION

´ÜÁö ºä¿¡ ÀÇÇØ ¾×¼¼½º °¡´ÉÇÑ ÇุÀÌ »ðÀÔ, °»½ÅµÉ ¼ö ÀÖÀ½À» ¸í½ÃÇÕ´Ï´Ù.

constraint

CHECK OPTION Á¦¾à Á¶°Ç¿¡ ´ëÇØ ÁöÁ¤µÈ À̸§ÀÔ´Ï´Ù.

WITH READ ONLY

ºä¿¡¼­ ¼öÇàµÉ ¼ö ÀÖ´Â DML ÀÛ¾÷ÀÌ Çϳªµµ ¾øÀ½À» È®½ÇÈ÷ ÇÕ´Ï´Ù.

ºä »ý¼º (°è¼Ó)

À§ÀÇ ¿¹´Â ºÎ¼­ 10ÀÇ ¸ðµç Á¾¾÷¿ø¿¡ ´ëÇÑ Á¾¾÷¿ø ¹øÈ£, À̸§, ¾÷¹«¸íÀ» Æ÷ÇÔÇÏ´Â ºä¸¦ »ý¼ºÇÕ´Ï´Ù.

SQL*Plus DESCRIBE ¸í·É¾î¸¦ »ç¿ëÇÏ¿© ºäÀÇ ±¸Á¶¸¦ µð½ºÇ÷¹ÀÌ ÇÒ ¼ö ÀÖ½À´Ï´Ù.

 Name                            Null?    Type
 ------------------------------- -------- ------------
 EMPNO                           NOT NULL NUMBER(4)
 ENAME                                    VARCHAR2(10)
 JOB                                      VARCHAR2(9)


ºä »ý¼º Áöħ

 

ºä »ý¼º (°è¼Ó)

¼­ºêÄõ¸®¿¡¼­ ¿­ º°ÄªÀ» Æ÷ÇÔÇÔÀ¸·Î½á ¿­ À̸§À» Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù.

À§ÀÇ ¿¹´Â ºÎ¼­ 30¿¡ ´ëÇØ EMPLOYEE_NUMBER º°ÄªÀ» °®´Â Á¾¾÷¿ø ¹øÈ£, NAME º°ÄªÀ» °®´Â À̸§, SALARY º°ÄªÀ» °®´Â ±Þ¿©¸¦ Æ÷ÇÔÇÏ´Â ºä¸¦ »ý¼ºÇÕ´Ï´Ù.

¶Ç´Â, CREATE VIEW Àý¿¡¼­ ¿­ º°ÄªÀ» Æ÷ÇÔÇÏ¿© ¿­ À̸§À» Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

ºä¿¡¼­ µ¥ÀÌÅÍ °Ë»ö

ÀÓÀÇÀÇ Å×ÀÌºí¿¡¼­ ÇÒ ¼ö ÀÖ´Â °Íó·³ ºä·ÎºÎÅÍ µ¥ÀÌÅ͸¦ °Ë»öÇÒ ¼ö ÀÖ½À´Ï´Ù. Àüü ºäÀÇ ³»¿ëÀ» µð½ºÇ÷¹ÀÌ Çϰųª, ´ÜÁö ƯÁ¤ Çà°ú ¿­¸¸À» º¼ ¼ö ÀÖ½À´Ï´Ù.

 

µ¥ÀÌÅÍ »çÀüÀÇ ºä

ÀÏ´Ü ºä°¡ »ý¼ºµÇ¸é, ºäÀÇ À̸§°ú ºä Á¤ÀǸ¦ º¸±â À§ÇØ USER_VIEWS ¶ó´Â µ¥ÀÌÅÍ »çÀü Å×À̺íÀ» ÁúÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. ºä¸¦ ¸¸µå´Â SELECT ¹®ÀåÀÇ ÅؽºÆ®´Â LONG ¿­¿¡ ÀúÀåµË´Ï´Ù.

µ¥ÀÌÅÍ ¾×¼¼½º ºä

ºä¸¦ »ç¿ëÇÏ¿© µ¥ÀÌÅ͸¦ ¾×¼¼½º ÇÒ ¶§ ¿À¶óŬ ¼­¹ö´Â ´ÙÀ½ ÀÛ¾÷À» ¼öÇàÇÕ´Ï´Ù:
1. USER_VIEWS µ¥ÀÌÅÍ »çÀü Å×ÀÌºí¿¡¼­ ºä Á¤ÀǸ¦ °Ë»öÇÕ´Ï´Ù.
2. ºä ±â¹Ý Å×ÀÌºí¿¡ ´ëÇÑ ¾×¼¼½º ±ÇÇÑÀ» È®ÀÎÇÕ´Ï´Ù.
3. ºä ÁúÀǸ¦ ±âº» Å×ÀÌºí ¶Ç´Â Å×À̺íµé¿¡¼­ÀÇ µ¿µîÇÑ ÀÛ¾÷À¸·Î ÀüȯÇÕ´Ï´Ù. ´Þ¸® ¸»Çϸé, µ¥ÀÌÅÍ´Â ±âº» Å×ÀÌºí¿¡¼­ °Ë»öµÇ°Å³ª, ±âº» Å×À̺íÀÇ µ¥ÀÌÅÍ¿¡ °»½ÅÀ» ÇÕ´Ï´Ù.

 

ºä ¼öÁ¤

OR REPLACE ¿É¼ÇÀº ºñ·Ï ÀÌ À̸§ÀÌ ÀÌ¹Ì Á¸ÀçÇÒÁö¶óµµ ºä°¡ »ý¼ºµÉ ¼ö ÀÖµµ·Ï ÇØÁֹǷÎ,  ±× ¼ÒÀ¯ÀÚ¿¡ ´ëÇÑ ¿À·¡µÈ ºä ¹öÀüÀ» ´ëüÇÕ´Ï´Ù.

ÁÖ: CREATE VIEW Àý¿¡¼­ ¿­ º°ÄªÀ» ÁöÁ¤ÇÒ ¶§, º°ÄªÀº ¼­ºêÄõ¸®ÀÇ ¿­°ú µ¿ÀÏÇÑ ¸í·ÉÀ¸·Î ³ª¿­µÊÀ» ¸í½ÉÇϽʽÿÀ.

º¹ÇÕ ºä »ý¼º

À§ÀÇ ¿¹´Â ºÎ¼­¸í, ÃÖ¼Ò ±Þ¿©, ÃÖ´ë ±Þ¿©, ºÎ¼­ÀÇ Æò±Õ ±Þ¿©ÀÇ º¹ÀâÇÑ ºä¸¦ »ý¼ºÇÕ´Ï´Ù. ´Ù¸¥ À̸§ÀÌ ºä¿¡ ´ëÇØ ÁöÁ¤µÆÀ½À» ¸í½ÉÇϽʽÿÀ. ºäÀÇ ¾î¶² ¿­ÀÌ ÇÔ¼ö³ª Ç¥Çö½Ä¿¡¼­ À¯·¡µÇ¾ú´Ù¸é º°ÄªÀº ÇʼöÀûÀÔ´Ï´Ù.

SQL*Plus DESCRIBE ¸í·É¾î¸¦ »ç¿ëÇÏ¿© ºäÀÇ ±¸Á¶¸¦ º¼ ¼ö ÀÖ½À´Ï´Ù. SELECT ¹®ÀåÀ» »ý¼ºÇÏ¿© ºäÀÇ ³»¿ëÀ» µð½ºÇ÷¹ÀÌ ÇÕ´Ï´Ù.

SQL> SELECT  *
  2  FROM    dept_sum_vu;

NAME              MINSAL    MAXSAL    AVGSAL
-------------- --------- --------- ---------
ACCOUNTING          1300      5000 2916.6667
RESEARCH             800      3000      2175
SALES                950      2850 1566.6667

 

ºä¿¡¼­ DML ¿¬»ê ¼öÇà

¿¬»êÀÌ ¾î¶² ƯÁ¤ ±ÔÄ¢À» µû¸¥´Ù¸é ºä¸¦ ÅëÇØ µ¥ÀÌÅÍ¿¡ DML ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.
´ÙÀ½ Áß ¾î´À °ÍÀ» Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù¸é ºä¿¡¼­ ÇàÀ» Á¦°ÅÇÒ ¼ö ÀÖ½À´Ï´Ù:

 

ºä¿¡¼­ DML ¿¬»ê ¼öÇà ±ÔÄ¢ (°è¼Ó)

ÀÌÀü ½½¶óÀ̵å¿Í ´ÙÀ½ Áß ÀϺο¡¼­ ¾ð±ÞµÈ ÀÓÀÇÀÇ Á¶°ÇÀ» Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù¸é ºä¿¡¼­ µ¥ÀÌÅ͸¦ ¼öÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù:

À§ÀÇ ÀÓÀÇÀÇ Á¶°ÇÀ» Æ÷ÇÔÇÏÁö ¾Ê°í µðÆúÆ® °ª¾ø´Â NOT NULL ¿­À» Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù¸é, ºä¸¦ ÅëÇØ µ¥ÀÌÅ͸¦ Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. ºä¸¦ ÅëÇØ ±âº» Å×À̺í·Î Á÷Á¢ÀûÀ¸·Î °ªÀ» Ãß°¡ÇÒ ¼ö ÀÖÀ½À» ¸í½ÉÇϽʽÿÀ.

º¸´Ù ÀÚ¼¼ÇÑ Á¤º¸¸¦ ¾Ë°íÀÚ ÇÑ´Ù¸é, ´ÙÀ½À» ÂüÁ¶ÇϽʽÿÀ.                                  
0racle8 Server SQL Reference, Release 7.3 ¶Ç´Â 8.0, ¡°CREATE VIEW.¡±

 

WITH CHECK OPTION Àý »ç¿ë

ºä¸¦ ÅëÇØ ÂüÁ¶ ¹«°á¼º üũ¸¦ ¼öÇàÇÏ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù. ¶ÇÇÑ µ¥ÀÌÅͺ£À̽º ·¹º§¿¡¼­ Á¦¾à Á¶°ÇÀ» Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ºä´Â µ¥ÀÌÅÍ ¹«°á¼ºÀ» º¸È£Çϱâ À§ÇØ »ç¿ëµÉ ¼ö ÀÖÁö¸¸, »ç¿ëÀº ¸Å¿ì Á¦Çѵ˴ϴÙ.
 
ºä¸¦ ÅëÇØ ¼öÇàµÇ´Â INSERT¿Í UPDATE´Â WITH CHECK OPTION ÀýÀÌ ÀÖÀ¸¸é ºä¸¦ °¡Áö°í °Ë»öÇÒ ¼ö ¾ø´Â Çà »ý¼ºÀ» Çã¿ëÇÏÁö ¾ÊÀ½À» ¸í½ÃÇÕ´Ï´Ù. ±×·¯¹Ç·Î »ðÀԵǰųª °»½ÅµÇ´Â µ¥ÀÌÅÍ¿¡ ´ëÇؼ­ ¹«°á¼º Á¦¾àÁ¶°Ç°ú µ¥ÀÌÅÍ °ËÁõ üũ¸¦ Çã¿ëÇÕ´Ï´Ù.

ºä°¡ ¼±ÅÃÇÏÁö ¾ÊÀº Çà¿¡ ´ëÇØ DML ÀÛ¾÷À» ¼öÇàÇÏ·Á°í Çϸé, ÁöÁ¤µÈ Á¦¾àÁ¶°Ç ¸í°ú ÇÔ²² ¿¡·¯°¡ µð½ºÇ÷¹ÀÌ µË´Ï´Ù.

 SQL> UPDATE empvu20
   2  SET    deptno = 10
   3  WHERE  empno = 7788;
 update empvu20
         *
 ERROR at line 1:
 ORA-01402: view WITH CHECK OPTION where-clause violation

ÁÖ: ºÎ¼­¹øÈ£°¡ 10À¸·Î º¯°æµÈ´Ù¸é ºä´Â ´õ ÀÌ»ó ±× Á¾¾÷¿øµéÀ» º¼ ¼ö ¾ø±â ¶§¹®¿¡ ¾Æ¹« Ç൵ °»½ÅµÇÁö ¾Ê½À´Ï´Ù. ±×·¯¹Ç·Î, WITH CHECK OPTION Àý·Î ºä´Â ºÎ¼­ 20 Á¾¾÷¿ø¸¸ º¼ ¼ö ÀÖ°í, ÀÌ Á¾¾÷¿øµé¿¡ ´ëÇÑ ºÎ¼­¹øÈ£°¡ ºä¸¦ ÅëÇØ º¯°æµÇ´Â °ÍÀ» Çã¿ëÇÏÁö ¾Ê½À´Ï´Ù.

DML ¿¬»ê ºÎÁ¤

WITH READ ONLY ¿É¼ÇÀ¸·Î ºä¸¦ »ý¼ºÇÏ¿© ºä¿¡¼­ DML ¿¬»êÀÌ ¼öÇàµÉ ¼ö ¾ø°Ô ÇÕ´Ï´Ù. À§ÀÇ ¿¹´Â ºä¿¡¼­ ÀÓÀÇÀÇ DML ¿¬»êÀ» ÇÏÁö ¸øÇϵµ·Ï EMPVU10 ºä¸¦ ¼öÁ¤ÇÕ´Ï´Ù.

ºä¿¡¼­ ÇàÀ» Á¦¾îÇÏ·Á°í ÇÏ¸é ¿¡·¯°¡ ¹ß»ýµË´Ï´Ù.

SQL> DELETE FROM  empvu10
  2  WHERE  employee_number = 7782;
DELETE FROM empvu10
            *
ERROR at line 1:
ORA-01752:Cannot delete from view without exactly one key-preserved table   

 

ºä Á¦°Å

ºä¸¦ Á¦°ÅÇϱâ À§ÇØ DROP VIEW ¹®ÀåÀ» »ç¿ëÇÕ´Ï´Ù. ÀÌ ¹®ÀåÀº µ¥ÀÌÅͺ£À̽º¿¡¼­ ºä Á¤ÀǸ¦ Á¦°ÅÇÕ´Ï´Ù. ºä »èÁ¦´Â ºä°¡ ¸¸µé¾îÁø ±âº» Å×ÀÌºí¿¡´Â ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê½À´Ï´Ù. ±× ºä¿¡ ±âÃÊÇÏ¿© ¸¸µé¾îÁø ºä ¶Ç´Â ´Ù¸¥ ¾îÇø®ÄÉÀ̼ÇÀº ¹«È¿È­ µË´Ï´Ù. »ý¼ºÀÚ ¶Ç´Â DROP ANY VIEW ±ÇÇÑÀ» °¡Áø »ç¶÷¸¸ ºä¸¦ Á¦°ÅÇÒ ¼ö ÀÖ½À´Ï´Ù.

±¸¹®Çü½Ä¿¡¼­:

        view            ºäÀÇ À̸§ÀÔ´Ï´Ù.

 

ÀζóÀÎ ºä

SELECT ¹®ÀÇ FROM Àý¿¡ ÀÖ´Â ÀζóÀÎ ºä´Â SELECT ¹®ÀÇ µ¥ÀÌÅÍ ¼Ò½º¸¦ Á¤ÀÇÇÕ´Ï´Ù. ´ÙÀ½ ¿¹Á¦¿¡¼­ ÀζóÀÎ ºä b´Â EMP Å×ÀÌºí¿¡ ÀÖ´Â °¢ ºÎ¼­ÀÇ ºÎ¼­ ¹øÈ£ ¹× ÃÖ°í ±Þ¿©¿¡ ´ëÇÑ ¼¼ºÎ »çÇ×À» ¹ÝȯÇÏ¸ç ±âº» ÁúÀÇÀÇ WHERE a.deptno = b.deptno AND a.sal < b.maxsal ÀýÀº ÇØ´ç ºÎ¼­¿¡¼­ ÃÖ°í ±Þ¿©º¸´Ù Àû°Ô ¹Þ´Â ¸ðµç »ç¿ø¿¡ ´ëÇÑ »ç¿ø À̸§, ±Þ¿©, ºÎ¼­ ¹øÈ£ ¹× ÃÖ°í ±Þ¿©¸¦ Ç¥½ÃÇÕ´Ï´Ù.

SQL> SELECT  a.ename, a.sal, a.deptno, b.maxsal

  2   FROM   emp a, (SELECT   deptno, max(sal) maxsal

  3                   FROM     emp

  4                   GROUP BY deptno) b

  5  WHERE   a.deptno = b.deptno

  6  AND     a.sal < b.maxsal;

 

  ENAME            SAL    DEPTNO    MAXSAL

  ---------- --------- --------- ---------

  CLARK           2450        10      5000

  MILLER          1300        10      5000

  ...

  TURNER          1500        30      2850

  JAMES            950        30      2850

10 rows selected.

¡°Top-N¡± ºÐ¼®

Top-N ÁúÀÇ´Â Å×ÀÌºí¿¡¼­ Á¶°Ç¿¡ ´ëÇÑ ÃÖ»óÀ§ ·¹ÄÚµå n°³ ¶Ç´Â ÃÖÇÏÀ§ ·¹ÄÚµå n°³¸¦ Ç¥½ÃÇÏ´Â ½Ã³ª¸®¿À¿¡ À¯¿ëÇÕ´Ï´Ù. ÀÌ °á°ú ÁýÇÕÀº ´Ù¸¥ ºÐ¼®¿¡µµ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, Top-N ºÐ¼®À» »ç¿ëÇÏ¿© ´ÙÀ½ À¯ÇüÀÇ ÁúÀǸ¦ ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

¡°Top-N¡± ºÐ¼® ¼öÇà

Top-N ÁúÀÇ´Â ´ÙÀ½¿¡ ¼³¸íµÈ ¿ä¼Ò¿Í ÇÔ²² ÀÏ°ü¼º ÀÖ´Â Áßø ÁúÀÇ ±¸Á¶¸¦ »ç¿ëÇÕ´Ï´Ù.

¡°Top-N¡± ºÐ¼® ¿¹Á¦  

½½¶óÀÌµå ¿¹Á¦´Â EMP Å×ÀÌºí¿¡¼­ ÃÖ»óÀ§ ¼ÒµæÀÚ ¼¼ ¸íÀÇ À̸§ ¹× ±Þ¿©¸¦ Ç¥½ÃÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù. ¼­ºê Äõ¸®´Â EMP Å×ÀÌºí¿¡¼­ ¸ðµç »ç¿øÀÇ À̸§ ¹× ±Þ¿©¿¡ ´ëÇÑ ¼¼ºÎ »çÇ×À» ¹ÝȯÇÏ¿© ±Þ¿©ÀÇ ³»¸²Â÷¼øÀ¸·Î Á¤·ÄÇÕ´Ï´Ù. ±âº» ÁúÀÇÀÇ WHERE ROWNUM <= 3 Àý·Î ÀÎÇØ °á°ú ÁýÇÕ Áß »óÀ§ ·¹ÄÚµå ¼¼ °¡Áö¸¸ Ç¥½ÃµË´Ï´Ù.

´ÙÀ½Àº ÀζóÀÎ ºä¸¦ »ç¿ëÇÏ´Â Top-N ºÐ¼®ÀÇ ´Ù¸¥ ¿¹Á¦ÀÔ´Ï´Ù. ´ÙÀ½ ¿¹Á¦¿¡¼­´Â ÀζóÀÎ ºä E¸¦ »ç¿ëÇÏ¿© ȸ»çÀÇ ÃÖÀå±â ±Ù¹« »ç¿ø ³× ¸íÀ» Ç¥½ÃÇÕ´Ï´Ù.

SQL>  SELECT ROWNUM as SENIOR,E.ename, E.hiredate

  2  FROM  (SELECT ename,hiredate FROM emp

  3         ORDER BY hiredate)E

  4  WHERE rownum <= 4;

 

 SENIOR ENAME      HIREDATE

--------- ---------- ---------

        1 SMITH      17-DEC-80

        2 ALLEN      20-FEB-81

        3 WARD       22-FEB-81

        4 JONES      02-APR-81

Quick Quiz - SPL 12Àå

  1. CREATE OR REPLACE FORCE VIEW vw_emp
    AS SELECT * FROM employee ORDER BY ename;
    À§ÀÇ ¹®ÀåÀÌ Á¤»óÀûÀ¸·Î ½ÇÇàµÇÁö ¾Ê´Â ÀÌÀ¯´Â?

    A. employee tableÀÌ Á¸ÀçÇÏÁö ¾Ê±â ¶§¹®¿¡
    B. View¿¡¼­´Â ¸ðµç columnsÀ» Á¶È¸ÇÒ ¼ö ¾ø±â ¶§¹®¿¡
    C. ORDER BY ÀýÀ» »ç¿ëÇßÀ¸¹Ç·Î
    D. FORCE ¶ó´Â keyword¸¦ »ç¿ëÇßÀ¸¹Ç·Î
    ´ä
    O


  2. ´ÙÀ½ ¹®Àå¿¡ ´ëÇÑ ¼³¸í Áß À߸øµÈ °ÍÀº?
    CREATE FORCE VIEW empvu45
    AS SELECT *
    FROM s_emp
    WHERE dept_id = 45
    WITH CHECK OPTION CONSTRAINT empvu45_ck;
    A. ÀÌ view¿¡´Â dept_id °¡ 45ÀÎ row¸¸ Æ÷ÇԵȴÙ.
    B. ÀÌ viewÀÇ data¿¡ ´ëÇؼ­´Â dept_id ¸¦ 45 ÀÌ¿ÜÀÇ °ªÀ¸·Î ¼öÁ¤ÇÒ ¼ö ¾ø´Ù.
    C. ÀÌ view´Â data dictionary¿¡ select ¹®ÀåÀ¸·Î ÀúÀåµÈ´Ù.
    D. ÀÌ view´Â s_emp tableÀÌ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é »ý¼ºÇÒ ¼ö ¾ø´Ù.
    ´ä
    X Á¤´ä:D


  3. ´ÙÀ½ ¹®Àå¿¡¼­ error°¡ ¹ß»ýÇÏ´Â °÷Àº?
    A. CREATE VIEW view1
    B. AS
    C. SELECT empno, name, sal
    D. FROM emp
    E. ORDER BY deptno;
    ´ä
    O


  4. ¾Æ·¡¿Í °°ÀÌ »ý¼ºÇÑ VIEW¿¡¼­ DEPTNO¸¦ ¼öÁ¤ÇÒ ¼ö ÀÖ´Â DATA´Â?
    CREATE VIEW sal_vu
    AS SELECT last_name, salary, deptno
    FROM s_emp
    WHERE sal > 45000
    WITH CHECK OPTION;

    A. SMITH, 12000, 20
    B. BROWN, 55000, NULL
    C. LIZA, 40000, 30
    D. ALICE, 50000, NULL
    E. MIKE, 20000, 10
    ´ä
    X Á¤´ä:BD