Oracle 에서 절대적 으로 전형 적 인 단일 표 조회 연습 은 매우 연습 할 만하 다.

이것 은 Oracle 의 조회 문 구 를 배 우 는 아주 좋 은 연습 이다. 그 중에서 간단 한 조 회 를 포함 하고 Oracle 자체 의 특징 을 가 진 단일 함수 의 응용 을 포함 하여 매우 볼 만하 다.
--1、    30     
SELECT * FROM EMP WHERE deptno=30;
--  
 SELECT * FROM EMP WHERE deptno=30;
 
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7499 ALLEN      SALESMAN   7698 20-  -81    1600.00    300.00     30
 7521 WARD       SALESMAN   7698 22-  -81    1250.00    500.00     30
 7654 MARTIN     SALESMAN   7698 28-  -81    1250.00   1400.00     30
 7698 BLAKE      MANAGER    7839 01-  -81    2850.00               30
 7844 TURNER     SALESMAN   7698 08-  -81    1500.00      0.00     30
 7900 JAMES      CLERK      7698 03-   -81    950.00               30
 
--2、       (CLERK)   ,         
SELECT ename   ,empno     ,deptno      FROM emp WHERE job='CLERK';
--  
                          
---------- -------- --------
SMITH          7369       20
ADAMS          7876       20
JAMES          7900       30
MILLER         7934       10

--3、           
SELECT * FROM EMP WHERE NVL(comm,0)>sal;
--  
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7654 MARTIN     SALESMAN   7698 28-  -81    1250.00   1400.00     30


--4、        60%   
SELECT * FROM EMP WHERE NVL(comm,0)>sal*0.6;
--  
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7654 MARTIN     SALESMAN   7698 28-  -81    1250.00   1400.00     30

--5、    10      (MANAGER)   20      (CLERK)     
SELECT * FROM EMP WHERE (job='MANAGER' AND deptno=10) OR (job='CLERK' AND deptno=20);
--  
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7369 SMITH      CLERK      7902 17-   -80    800.00               20
 7782 CLARK      MANAGER    7839 09-  -81    2450.00               10
 7876 ADAMS      CLERK      7788 23-  -87    1100.00               20
 
--6、    10     (MANAGER),  20      (CLERK),                 2000          
SELECT * FROM EMP WHERE (job='MANAGER' AND deptno=10) OR (job='CLERK' AND deptno=20) OR (job NOT IN('MANAGER','CLERK') AND sal>2000);
--  
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7369 SMITH      CLERK      7902 17-   -80    800.00               20
 7782 CLARK      MANAGER    7839 09-  -81    2450.00               10
 7788 SCOTT      ANALYST    7566 19-  -87    3000.00               20
 7839 KING       PRESIDENT       17-   -81   5000.00               10
 7876 ADAMS      CLERK      7788 23-  -87    1100.00               20
 7902 FORD       ANALYST    7566 03-   -81   3000.00               20
 
6 rows selected


--7、                 
SELECT DISTINCT(job) FROM EMP WHERE comm IS NOT NULL AND comm !=0;
--   
JOB
---------
SALESMAN
 
--8、               100       
SELECT * FROM EMP WHERE comm IS NULL OR comm<100;
--  
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7369 SMITH      CLERK      7902 17-   -80    800.00               20
 7566 JONES      MANAGER    7839 02-  -81    2975.00               20
 7698 BLAKE      MANAGER    7839 01-  -81    2850.00               30
 7782 CLARK      MANAGER    7839 09-  -81    2450.00               10
 7788 SCOTT      ANALYST    7566 19-  -87    3000.00               20
 7839 KING       PRESIDENT       17-   -81   5000.00               10
 7844 TURNER     SALESMAN   7698 08-  -81    1500.00      0.00     30
 7876 ADAMS      CLERK      7788 23-  -87    1100.00               20
 7900 JAMES      CLERK      7698 03-   -81    950.00               30
 7902 FORD       ANALYST    7566 03-   -81   3000.00               20
 7934 MILLER     CLERK      7782 23-  -82    1300.00               10
 
11 rows selected

--9、                
--              ,                        ,
--    ‘  -  ’           ,                   。
SELECT LAST_DAY(hiredate),EMP.* FROM EMP WHERE LAST_DAY(hiredate)-2=hiredate;
--  
LAST_DAY(HIREDATE) EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
------------------ ----- ---------- --------- ----- ----------- --------- --------- ------
30-  -81          7654 MARTIN     SALESMAN   7698 28-  -81    1250.00   1400.00     30

--10、  12         
--   MONTHS_BETWEEN(SYSDATE,hiredate)       ,    12       
SELECT MONTHS_BETWEEN(SYSDATE,hiredate)/12     ,EMP.* FROM EMP WHERE MONTHS_BETWEEN(SYSDATE,hiredate)/12 > 12;
--  
           EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
---------- ----- ---------- --------- ----- ----------- --------- --------- ------
31.5449952  7369 SMITH      CLERK      7902 17-   -80    800.00               20
31.3702640  7499 ALLEN      SALESMAN   7698 20-  -81    1600.00    300.00     30
31.3648877  7521 WARD       SALESMAN   7698 22-  -81    1250.00    500.00     30
     31.25  7566 JONES      MANAGER    7839 02-  -81    2975.00               20
30.7654253  7654 MARTIN     SALESMAN   7698 28-  -81    1250.00   1400.00     30
31.1713393  7698 BLAKE      MANAGER    7839 01-  -81    2850.00               30
31.0665006  7782 CLARK      MANAGER    7839 09-  -81    2450.00               10
25.2062855  7788 SCOTT      ANALYST    7566 19-  -87    3000.00               20
30.6283285  7839 KING       PRESIDENT       17-   -81   5000.00               10
30.8191887  7844 TURNER     SALESMAN   7698 08-  -81    1500.00      0.00     30
25.1121995  7876 ADAMS      CLERK      7788 23-  -87    1100.00               20
30.5826296  7900 JAMES      CLERK      7698 03-   -81    950.00               30
30.5826296  7902 FORD       ANALYST    7566 03-   -81   3000.00               20
30.4455328  7934 MILLER     CLERK      7782 23-  -82    1300.00               10
 
14 rows selected

 
--11、               
 SELECT INITCAP(ename) FROM emp;
--  
INITCAP(ENAME)
--------------
Smith
Allen
Ward
Jones
Martin
Blake
Clark
Scott
King
Turner
Adams
James
Ford
Miller
 
14 rows selected

--12、       5        
SELECT * FROM EMP WHERE LENGTH(ename) = 5;
--  
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7369 SMITH      CLERK      7902 17-   -80    800.00               20
 7499 ALLEN      SALESMAN   7698 20-  -81    1600.00    300.00     30
 7566 JONES      MANAGER    7839 02-  -81    2975.00               20
 7698 BLAKE      MANAGER    7839 01-  -81    2850.00               30
 7782 CLARK      MANAGER    7839 09-  -81    2450.00               10
 7788 SCOTT      ANALYST    7566 19-  -87    3000.00               20
 7876 ADAMS      CLERK      7788 23-  -87    1100.00               20
 7900 JAMES      CLERK      7698 03-   -81    950.00               30
 
8 rows selected

--13、    'R'      
SELECT * FROM EMP WHERE ename LIKE '%R%';
--  
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7521 WARD       SALESMAN   7698 22-  -81    1250.00    500.00     30
 7654 MARTIN     SALESMAN   7698 28-  -81    1250.00   1400.00     30
 7782 CLARK      MANAGER    7839 09-  -81    2450.00               10
 7844 TURNER     SALESMAN   7698 08-  -81    1500.00      0.00     30
 7902 FORD       ANALYST    7566 03-   -81   3000.00               20
 7934 MILLER     CLERK      7782 23-  -82    1300.00               10
 
6 rows selected

--14、            
SELECT ename   ,SUBSTR(ename,0,3)       FROM EMP;
--  
              
---------- ----------
SMITH      SMI
ALLEN      ALL
WARD       WAR
JONES      JON
MARTIN     MAR
BLAKE      BLA
CLARK      CLA
SCOTT      SCO
KING       KIN
TURNER     TUR
ADAMS      ADA
JAMES      JAM
FORD       FOR
MILLER     MIL
 
14 rows selected
 
--15、         , ‘a’     'A'
SELECT ename   ,REPLACE(ename,'A','a')  A    a FROM EMP;
--  
          A    A
---------- ------------
SMITH      SMITH
ALLEN      aLLEN
WARD       WaRD
JONES      JONES
MARTIN     MaRTIN
BLAKE      BLaKE
CLARK      CLaRK
SCOTT      SCOTT
KING       KING
TURNER     TURNER
ADAMS      aDaMS
JAMES      JaMES
FORD       FORD
MILLER     MILLER
 
14 rows selected

--16、--   10             
SELECT * FROM EMP WHERE MONTHS_BETWEEN(SYSDATE,hiredate)/12>10;
--  
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7369 SMITH      CLERK      7902 17-   -80    800.00               20
 7499 ALLEN      SALESMAN   7698 20-  -81    1600.00    300.00     30
 7521 WARD       SALESMAN   7698 22-  -81    1250.00    500.00     30
 7566 JONES      MANAGER    7839 02-  -81    2975.00               20
 7654 MARTIN     SALESMAN   7698 28-  -81    1250.00   1400.00     30
 7698 BLAKE      MANAGER    7839 01-  -81    2850.00               30
 7782 CLARK      MANAGER    7839 09-  -81    2450.00               10
 7788 SCOTT      ANALYST    7566 19-  -87    3000.00               20
 7839 KING       PRESIDENT       17-   -81   5000.00               10
 7844 TURNER     SALESMAN   7698 08-  -81    1500.00      0.00     30
 7876 ADAMS      CLERK      7788 23-  -87    1100.00               20
 7900 JAMES      CLERK      7698 03-   -81    950.00               30
 7902 FORD       ANALYST    7566 03-   -81   3000.00               20
 7934 MILLER     CLERK      7782 23-  -82    1300.00               10
 
14 rows selected

--         ,      
SELECT * FROM EMP ORDER BY ename;
--  
SELECT * FROM EMP ORDER BY ename;
 
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7876 ADAMS      CLERK      7788 23-  -87    1100.00               20
 7499 ALLEN      SALESMAN   7698 20-  -81    1600.00    300.00     30
 7698 BLAKE      MANAGER    7839 01-  -81    2850.00               30
 7782 CLARK      MANAGER    7839 09-  -81    2450.00               10
 7902 FORD       ANALYST    7566 03-   -81   3000.00               20
 7900 JAMES      CLERK      7698 03-   -81    950.00               30
 7566 JONES      MANAGER    7839 02-  -81    2975.00               20
 7839 KING       PRESIDENT       17-   -81   5000.00               10
 7654 MARTIN     SALESMAN   7698 28-  -81    1250.00   1400.00     30
 7934 MILLER     CLERK      7782 23-  -82    1300.00               10
 7788 SCOTT      ANALYST    7566 19-  -87    3000.00               20
 7369 SMITH      CLERK      7902 17-   -80    800.00               20
 7844 TURNER     SALESMAN   7698 08-  -81    1500.00      0.00     30
 7521 WARD       SALESMAN   7698 22-  -81    1250.00    500.00     30
 
14 rows selected

--18、            ,                  
SELECT ename,hiredate FROM EMP ORDER BY hiredate ASC;
--  
ENAME      HIREDATE
---------- -----------
SMITH      17-   -80
ALLEN      20-  -81
WARD       22-  -81
JONES      02-  -81
BLAKE      01-  -81
CLARK      09-  -81
TURNER     08-  -81
MARTIN     28-  -81
KING       17-   -81
JAMES      03-   -81
FORD       03-   -81
MILLER     23-  -82
SCOTT      19-  -87
ADAMS      23-  -87
 
14 rows selected

--19、         、     ,        ,              
SELECT ename,job,sal FROM emp ORDER BY job DESC,sal ASC;
--  
ENAME      JOB             SAL
---------- --------- ---------
WARD       SALESMAN    1250.00
MARTIN     SALESMAN    1250.00
TURNER     SALESMAN    1500.00
ALLEN      SALESMAN    1600.00
KING       PRESIDENT   5000.00
CLARK      MANAGER     2450.00
BLAKE      MANAGER     2850.00
JONES      MANAGER     2975.00
SMITH      CLERK        800.00
JAMES      CLERK        950.00
ADAMS      CLERK       1100.00
MILLER     CLERK       1300.00
SCOTT      ANALYST     3000.00
FORD       ANALYST     3000.00
 
14 rows selected
 
--20、         、          、          ,                   
--                  ,      
SELECT ename   ,TO_CHAR(hiredate,'yyyy')   , TO_CHAR(hiredate,'mm')    FROM emp ORDER BY   ,  ;
--  
              
---------- ---- ----
MILLER     1982 01
ALLEN      1981 02
WARD       1981 02
JONES      1981 04
SCOTT      1987 04
BLAKE      1981 05
ADAMS      1987 05
CLARK      1981 06
TURNER     1981 09
MARTIN     1981 09
KING       1981 11
SMITH      1980 12
JAMES      1981 12
FORD       1981 12
 
14 rows selected


--21、      30     ,       ,    
SELECT ename   ,sal   ,TRUNC(sal/30)    FROM EMP;
--  
                             
---------- --------- ----------
SMITH         800.00         26
ALLEN        1600.00         53
WARD         1250.00         41
JONES        2975.00         99
MARTIN       1250.00         41
BLAKE        2850.00         95
CLARK        2450.00         81
SCOTT        3000.00        100
KING         5000.00        166
TURNER       1500.00         50
ADAMS        1100.00         36
JAMES         950.00         31
FORD         3000.00        100
MILLER       1300.00         43

--22、   (     )2      
SELECT * FROM EMP WHERE TO_CHAR(hiredate,'mm') = 02;
--  
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7499 ALLEN      SALESMAN   7698 20-  -81    1600.00    300.00     30
 7521 WARD       SALESMAN   7698 22-  -81    1250.00    500.00     30
 
 --23、                
 SELECT ename   ,SYSDATE-hiredate         FROM EMP;
--  
                     
---------- ------------
SMITH      11520.760555
ALLEN      11455.760555
WARD       11453.760555
JONES      11414.760555
MARTIN     11235.760555
BLAKE      11385.760555
CLARK      11346.760555
SCOTT      9206.7605555
KING       11185.760555
TURNER     11255.760555
ADAMS      9172.7605555
JAMES      11169.760555
FORD       11169.760555
MILLER     11118.760555
 
14 rows selected


--24、              ’A‘   
 SELECT * FROM EMP WHERE ename LIKE '%A%';
--  
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7499 ALLEN      SALESMAN   7698 20-  -81    1600.00    300.00     30
 7521 WARD       SALESMAN   7698 22-  -81    1250.00    500.00     30
 7654 MARTIN     SALESMAN   7698 28-  -81    1250.00   1400.00     30
 7698 BLAKE      MANAGER    7839 01-  -81    2850.00               30
 7782 CLARK      MANAGER    7839 09-  -81    2450.00               10
 7876 ADAMS      CLERK      7788 23-  -87    1100.00               20
 7900 JAMES      CLERK      7698 03-   -81    950.00               30
 
7 rows selected

--25、                 
--    :
--       :         ,       12
SELECT ename,TRUNC(MONTHS_BETWEEN(SYSDATE,hiredate)/12)    FROM EMP;
 
ENAME               
---------- ----------
SMITH              31
ALLEN              31
WARD               31
JONES              31
MARTIN             30
BLAKE              31
CLARK              31
SCOTT              25
KING               30
TURNER             30
ADAMS              25
JAMES              30
FORD               30
MILLER             30
 
14 rows selected
--       :             
 SELECT ename,TRUNC(MONTHS_BETWEEN(SYSDATE,hiredate)/12)   ,TRUNC(MOD(MONTHS_BETWEEN(SYSDATE,hiredate),12))    FROM emp;
 
ENAME                           
---------- ---------- ----------
SMITH              31          6
ALLEN              31          4
WARD               31          4
JONES              31          3
MARTIN             30          9
BLAKE              31          2
CLARK              31          0
SCOTT              25          2
KING               30          7
TURNER             30          9
ADAMS              25          1
JAMES              30          6
FORD               30          6
MILLER             30          5
 
14 rows selected

--       :               
SELECT ename,TRUNC(MONTHS_BETWEEN(SYSDATE,hiredate)/12)   ,TRUNC(MOD(MONTHS_BETWEEN(SYSDATE,hiredate),12))   ,TRUNC(SYSDATE-ADD_MONTHS(hiredate,MONTHS_BETWEEN(SYSDATE,hiredate)))      FROM emp;
ENAME                                      
---------- ---------- ---------- ----------
SMITH              31          6         15
ALLEN              31          4         12
WARD               31          4         10
JONES              31          3          0
MARTIN             30          9          4
BLAKE              31          2          1
CLARK              31          0         23
SCOTT              25          2         13
KING               30          7         15
TURNER             30          9         24
ADAMS              25          1          9
JAMES              30          6         29
FORD               30          6         29
MILLER             30          5          9
 
14 rows selected

--    
SELECT ename,TO_CHAR(SYSDATE,'YYYY-MM-DD'),TO_CHAR(hiredate,'YYYY-MM-DD')     ,TRUNC(MONTHS_BETWEEN(SYSDATE,hiredate)/12)   ,TRUNC(MOD(MONTHS_BETWEEN(SYSDATE,hiredate),12))   ,TRUNC(SYSDATE-ADD_MONTHS(hiredate,MONTHS_BETWEEN(SYSDATE,hiredate)))      FROM emp;
--   
ENAME      TO_CHAR(SYSDATE,'YYYY-MM-DD')                                        
---------- ----------------------------- ---------- ---------- ---------- ----------
SMITH      2012-07-02                    1980-12-17         31          6         15
ALLEN      2012-07-02                    1981-02-20         31          4         12
WARD       2012-07-02                    1981-02-22         31          4         10
JONES      2012-07-02                    1981-04-02         31          3          0
MARTIN     2012-07-02                    1981-09-28         30          9          4
BLAKE      2012-07-02                    1981-05-01         31          2          1
CLARK      2012-07-02                    1981-06-09         31          0         23
SCOTT      2012-07-02                    1987-04-19         25          2         13
KING       2012-07-02                    1981-11-17         30          7         15
TURNER     2012-07-02                    1981-09-08         30          9         24
ADAMS      2012-07-02                    1987-05-23         25          1          9
JAMES      2012-07-02                    1981-12-03         30          6         29
FORD       2012-07-02                    1981-12-03         30          6         29
MILLER     2012-07-02                    1982-01-23         30          5          9
 
14 rows selected

 

좋은 웹페이지 즐겨찾기