'DB'에 해당되는 글 23건

  1. 2009.06.02 자형 함수
  2. 2009.06.02 숫자형 함수
  3. 2009.06.02 DUAL 테이블
  4. 2009.06.02 날짜형함수
  5. 2009.06.02 데이터형 변환
  6. 2009.06.02 TO_CHAR 함수
  7. 2009.06.02 기타 함수
  8. 2009.06.02 그룹 함수
  9. 2009.06.02 GROUP BY
  10. 2009.06.02 Join

자형 함수

DB 2009. 6. 2. 13:54

IT에서 함수는 기능이라고 이해하면 될 것 같다.

SQL 함수들은 기본적인 Query문을 더욱 강력하게 해주고 데이터 값을 조작하는데 사용된다.


문자를 입력 받고 문자와 숫자 값 모두를 RETURN 할 수 있는 문자형 함수가 있다.


1. LOWER 함수

   대소문자가 혼합되어 있거나 대문자인 문자열을 소문자로 변환한다.

   사용법>

      LOWER(column | expression)

   예>

      LOWER('MANAGER')  ==> manager

   문제> EMP 테이블에서 scott의 사원번호, 성명, 담당업무(소문자로), 부서번호를 출력하여라.

            SELECT empno, ename, LOWER(job), deptno

            FROM emp

            WHERE ename = 'scott';

           

               EMPNO ENAME                LOWER(JOB)             DEPTNO
              ----- -------------------- ------------------ ----------
                7788 SCOTT                analyst                    20


2. UPPER 함수

   대소문자가 혼합되어 있거나 소문자인 문자열을 대문자로 변환한다.

   사용법>

      UPPER(column | expression)

   예>

      UPPER('manager')  ==> MANAGER

   문제> EMP 테이블에서 scott의 사원번호, 성명, 담당업무, 부서번호를 출력하여라.

            SELECT empno, ename, job, deptno
            FROM emp
            WHERE ename = UPPER('scott');


            EMPNO ENAME                JOB                    DEPTNO
            ----- -------------------- ------------------ ----------
              7788 SCOTT                ANALYST                    20


3. INITCAP 함수

   각 단어의 첫번째 문자를 대문자로, 나머지 문자는 소문자로 변경한다.

   사용법>

      INITCAP(column | expressioni)

    예>

      INITCAP('ORACLE SERVER')  ==> Oracle Server

    문제> DEPT 테이블에서 컬럼의 첫 글자들만 대문자로 변환하여 모든 정보를 출력하여라.

             SELECT deptno, INITCAP(dname), INITCAP(loc)

             FROM dept;

          

             DEPTNO INITCAP(DNAME)               INITCAP(LOC)
             ------ ---------------------------- ------------
                   10 Accounting                   New York
                   20 Research                     Dallas
                   30 Sales                        Chicago
                   40 Operations                   Boston


4. CONCAT 함수

   두 개의 문자열을 연결한다. 두 개의 매개변수만 사용 가능.

   사용법>

      CONCAT(column1 | expression1, column2 | expression2)

   예>

      CONCAT('ORACLE', 'SERVER')  ==> ORACLESERVER


5. SUBSTR 함수

   지정된 길이만큼의 문자열을 추출한다.

   사용법>

      SUBSTR(column | expression, m, (,n))

   예>

      SUBSTR('000101-3234232', 8, 1) ==> 3

   문제> EMP 테이블에서 이름의 첫글자가 'K'보다 크고 'Y'보다 작은 사원의 사원번호, 이름, 업무, 급여, 부서번호를 출력하여라.

            단, 이름순으로 정렬하여라.

            SELECT empno, ename, job, sal, deptno
            FROM emp
            WHERE SUBSTR(ename, 1, 1) > 'K' AND SUBSTR(ename, 1, 1) < 'Y'

            // ename의 첫번째 글자니까 ename, 1, 1로 한것이다. ename 뒤에 1, 1의 의미는 1번째 자리부터 1자리까지 추출하는 것이다.

            // 만약 1, 3 이면 1번째 자리부터 3자리를 추출할 것이다.
            ORDER BY ename;

      결과>

      EMPNO ENAME                JOB                       SAL     DEPTNO
      ----- -------------------- ------------------ ---------- ----------
        7654 MARTIN               SALESMAN                 1250         30
        7934 MILLER               CLERK                    1300         10
        7788 SCOTT                ANALYST                  3000         20
        7369 SMITH                CLERK                     800         20
        7844 TURNER               SALESMAN                 1500         30
        7521 WARD                 SALESMAN                 1250         30


6. LENGTH 함수

   문자열의 길이를 숫자값으로 RETURN 한다.

   사용법> LENGTH(column | expression)

   예> LENGTH('000101-3234232')  ==> 14

   문제> EMP 테이블에서 부서가 20번인 사원의 사원번호, 이름, 이름의 자리수, 급여, 급여의 자리수를 출력하여라.

            SELECT empno, ename, LENGTH(ename), sal, LENGTH(sal)
            FROM emp
           WHERE deptno = 20;


           EMPNO ENAME                LENGTH(ENAME)        SAL LENGTH(SAL)
           ----- -------------------- ------------- ---------- -----------
             7369 SMITH                            5        800           3
             7566 JONES                            5       2975           4
             7788 SCOTT                            5       3000           4
             7876 ADAMS                            5       1100           4
             7902 FORD                             4       3000           4


7. INSTR 함수

   명명된 문자의 위치를 숫자 값으로 RETURN 한다.

   사용법> INSTR(column | expression, m(,n))

   예> LENGTH('MILLER', 'L', 1, 2) ==> 4

   문제> EMP 테이블에서 이름 중 'L'자의 위치를 출력하여라.

            SELECT ename, INSTR(ename, 'L') e_null, INSTR(ename, 'L', 1, 1) e_11,
            INSTR(ename, 'L', 1, 2) e_12, INSTR(ename, 'L', 4, 1) e_41,
            INSTR(ename, 'L', 4, 2) e_42

            // ename, 'L', 4, 2 의 의미는 enama의 4번째 자리를 기준으로 2번째 자리부터 L을 검색해서 위치를 리턴하는 것이다.
            FROM emp
            ORDER BY ename;


            ENAME                    E_NULL       E_11       E_12       E_41       E_42
            -------------------- ---------- ---------- ---------- ---------- ----------
             ADAMS                         0          0          0          0          0
             ALLEN                         2          2          3          0          0
             BLAKE                         2          2          0          0          0
             CLARK                         2          2          0          0          0
             FORD                          0          0          0          0          0
             JAMES                         0          0          0          0          0
             JONES                         0          0          0          0          0
             KING                          0          0          0          0          0
             MARTIN                        0          0          0          0          0
             MILLER                        3          3          4          4          0
             SCOTT                         0          0          0          0          0

            ENAME                    E_NULL       E_11       E_12       E_41       E_42
            -------------------- ---------- ---------- ---------- ---------- ----------
             SMITH                         0          0          0          0          0
             TURNER                        0          0          0          0          0
             WARD                          0          0          0          0          0


8. LPAD 함수

    문자값을 좌측부터 채운다.

    사용법> LPAD(column | expression, n, 'string')

    예) LPAD('MILLER', 10, '*') => ****MILLER

         // 10자리의 공간을 확보하고 MILLER를 넣고 남은 자리에 *가 들어가게 되는 것이다.

         // 만약 실제 데이터보다 확보한 공간이 작으면 그 확보한 공간까지만 데이터가 출력된다.


9. RPAD 함수

   문자값을 우측부터 채운다.

   나머지 사용법이나 예는 위에 LPAD의 형식이다. 결과는 string이 우측부터 채워진다.


10. TRIM 함수

   왼쪽 문자를 지우는 함수이다.

   사용법> TRIM(leading/trailing/both trim_character FROM trim_source)

              leading은 왼쪽에 있는 문자를 지우는 옵션이고, trailing은 오른쪽 문자, both는 양쪽에 있는 문자를 지우는 옵션이다.

              디폴트는 both이다.

              trim은 가장자리에 있는 문자만 지우고 가운데에 있는 문자는 지우지 못한다.

              앞 뒤 공백을 지우는 데 쓰면 유용하겠다.

   예> TRIM('H' FROM 'HelloWorld')  ==> elloWorld

   문제> EMP 테이블에서 10번 부서의 사원에 대하여 담당 업무 중 좌측에 'M'을 삭제하여 출력하여라.

            SELECT TRIM('M' FROM job)
            FROM emp
            WHERE deptno = 10;


            TRIM('M'FROMJOB)
            ------------------
            ANAGER
            PRESIDENT
            CLERK


11. REPLACE 함수

   특정 문자열을 대신하는 함수이다.

   사용법> REPLACE(column | expression1, 'string1', 'string2')

   예> REPLACE('JACK and JUE', 'J', 'BL')  ==> BLACK and BLUE

   문제> EMP 테이블에서 JOB에 'A'를 '$'로 바꾸어 출력하여라.

            SELECT job, REPLACE(job, 'A', '$')
            FROM emp;


            JOB                REPLACE(JOB,'A','$
           ------------------ ------------------
           CLERK              CLERK
           SALESMAN           S$LESM$N
           SALESMAN           S$LESM$N
           MANAGER            M$N$GER
           SALESMAN           S$LESM$N
           MANAGER            M$N$GER
           MANAGER            M$N$GER
           ANALYST            $N$LYST
           PRESIDENT          PRESIDENT
           SALESMAN           S$LESM$N
           CLERK              CLERK

           JOB                REPLACE(JOB,'A','$
          ------------------ ------------------
          CLERK              CLERK
          ANALYST            $N$LYST
          CLERK              CLERK


[출처] 문자형 함수|작성자 이경모


'DB' 카테고리의 다른 글

연산자 우선 순위  (0) 2009.06.02
정렬  (0) 2009.06.02
숫자형 함수  (0) 2009.06.02
DUAL 테이블  (0) 2009.06.02
날짜형함수  (0) 2009.06.02
Posted by 으랏차
,

숫자형 함수

DB 2009. 6. 2. 13:54

1. ROUND 함수

   명시된 소수점으로 반올림하는 함수이다.

   숫자를 n자리까지 반올림한다. n이 양수이면 소수자리를, 음수이면 정수 자리를 반올림한다.

   생략할 수 있으며, 생략할 경우 디폴트는 0 이다.

   사용법> ROUND(column | expression, n)

   예> ROUND(456.789, 2)  ==> 456.79

        ROUND(4567.678,0), //반올림을 하되 소수점 자리를 남기지 않는다.

      ROUND(456.678,2),  //반올림을 하되 소수점 2번째 자리까지 남긴다,

                         // 즉 소수 3번째자리에서 반올림하면 된다.

      ROUND(4567.678,-2) // -2가 붙으면 소수점을 기준으로 좌측에 2자리를 0으로 만든다.

                        // 0으로 만들되 반올림을 하면서 0으로 만든다.

 

2. TRUNC 함수

   ROUND가 반올림하는 함수였다면, TRUNC는 명시된 자리까지 절삭하는 함수이다.

   사용법> TRUNC(column1 | expresion1, n(

   예> TRUNC(456.789, 2)  ==> 456.78

       //뒤에 명시된 2자리까지만 남기고 나머지는 절삭한 값이다.

       TRUNC(4567.678)

       // 위와 같이 자리수를 지정하지 않으면 디폴트값은 0으로써 정수자리만 남기고,

       // 소수자리는 절삭한다.

       TRUNC(4567.678,0) // 위에 0을 생략한 것과 동일한 결과이다.
       TRUNC(4567.678,2), //소수 2자리까지 남기고 나머지는 절삭.

       TRUNC(4567.678,-2) // 소수점을 기준 좌측의 2자리를 0으로 만든다.

                          // ROUND와 차이점은 반올림을 하지 않는 것이다.

 

3. MOD 함수

   나눗셈 연산을 하고난 나머지 값을 구하는 함수이다.

   사용법> MOD(column1 | expression1, n)

   예> MOD(10, 3)  ==> 1

 

4. POWER 함수

   거듭제곱을 구하는 함수이다.

   사용법> POWER(column1 | expression1, n)

   예> POWER(2, 3)  ==> 8  //2의 3제곱이다.

 

5. SQRT 함수

   제곱근을 구하는 함수이다.

   사용법> SQRT(column1 | expression1)

   예> SQRT(4)  ==> 2

 

6. SIGN 함수

   주어진 숫자가 양수인지 음수인지 또는 0인지를 구하는 함수이다.

   사용법> SIGN(column1 | expression1)

   예> SIGN(100)  ==> 1

       // 양수이면 1을 출력, 0이면 0을 출력, 음수이면 -1을 출력한다.

 

7. CHR 함수

   아스키 코드에 해상하는 문자를 구하는 함수이다.

   사용법> CHR(column1 | expression1)

   예> CHR(65)  ==> A

[출처] 숫자형 함수|작성자 이경모

'DB' 카테고리의 다른 글

정렬  (0) 2009.06.02
자형 함수  (0) 2009.06.02
DUAL 테이블  (0) 2009.06.02
날짜형함수  (0) 2009.06.02
데이터형 변환  (0) 2009.06.02
Posted by 으랏차
,

DUAL 테이블

DB 2009. 6. 2. 13:53

DUAL 테이블은 가상의 테이블이라고 보면 될 것 같다.

어떤 값을 알고자 할 때, 굳이 실제 테이블에 결과를 보지 않아도 DUAL테이블을 사용하면 된다.

예를 들어 아래와 같이 ROUND함수를 써서 그 값을 조회해본다고 가정하자.

SELECT ROUND(4567.678), ROUND(4567.678,0),

             ROUND(4567.678,2), ROUND(4567.678,-2)

FROM dual;

여기서는 특정 테이블의 칼럼을 가져다가 쓰는 것이 아니고 실제 값을 입력한 것이기 때문에 굳이 실제 테이블이 필요없다. 이럴 때는 dual을 쓰는 것이 유용하다.

[출처] DUAL 테이블|작성자 이경모


'DB' 카테고리의 다른 글

자형 함수  (0) 2009.06.02
숫자형 함수  (0) 2009.06.02
날짜형함수  (0) 2009.06.02
데이터형 변환  (0) 2009.06.02
TO_CHAR 함수  (0) 2009.06.02
Posted by 으랏차
,

날짜형함수

DB 2009. 6. 2. 13:53

날짜 함수는 오라클 날짜에 대해 연산을 한다.

모든 날자 함수는 숫자값을 리턴하는데 MONTHS_BETWEEN을 제외하고는 DATE형을 리턴한다.


1. MONTHS_BETWEEN 함수

   1) 날짜와 날짜 사이의 월수를 계산한다.

   2) 결과는 음수 또는 양수가 될 수 있다.

   3) 결과의 정수부분은 월을, 소수부분은 일을 나타낸다.

   사용법> MONTHS_BETWEEN(date1, date2)

   예> MONTHS_BETWEEN(sysdate, hiredate)  ==> 212.04794

   문제> EMP 테이블에서 10번 부서원의 현재까지의 근무 월수를 계산하여 출력하여라.

      SELECT ename, hiredate, SYSDATE, MONTHS_BETWEEN(SYSDATE, hiredate) m_between,
       TRUNC(MONTHS_BETWEEN(SYSDATE, hiredate), 0) t_between
       FROM emp
       WHERE deptno = 10
       ORDER BY MONTHS_BETWEEN(SYSDATE, hiredate) DESC


      ENAME                HIREDATE SYSDATE   M_BETWEEN  T_BETWEEN
      -------------------- -------- -------- ---------- ----------
      CLARK                81/06/09 08/12/29 330.667913        330
      KING                 81/11/17 08/12/29 325.409848        325
      MILLER               82/01/23 08/12/29   323.2163        323


2. ADD_MONTHS 함수

   날짜에 월을 더하고 빼는 함수이다. 결과는 날짜형.

   사용법> ADD_MONTHS(date1, n)

   예> ADD_MONTHS(hiredate , 5)  => 82/06/23

        //기존의 날짜에서 5개월을 더한 값이다.

   문제> EMP 테이블에서 10번 부서원의 입사 일자로부터 5개월이 지난 후 날짜를 계산하여 출력.

      SELECT ename, hiredate, ADD_MONTHS(hiredate, 5) a_month
      FROM emp
      WHERE deptno = 10
      ORDER BY hiredate DESC;


      ENAME                HIREDATE A_MONTH
      -------------------- -------- --------
      MILLER               82/01/23 82/06/23
      KING                 81/11/17 82/04/17
      CLARK                81/06/09 81/11/09


3. NEXT_DAY 함수

   1) 명시된 요일의 돌아오는 날짜를 계산한다.

   2) 요일 뿐 아니라 숫자도 기술 가능(SUNDAY:1, MONDAY:2......)

   3) NLS_LANG이 KOREAN_KOREA.KO16KSC5601로 되어 있으면 한글도 사용 가능.

       월요일, 화요일...(월,화,수..와 같이 넣을 수 도 있다.)

   사용법> NEXT_DAY(date1, 'string' | n)

   예> NEXT_DAY(hiredate, 'FRIDAY')  ==> 82/01/29

         // 10g에서는 'FRIDAY', 'SUNDAY'와 같은 영문 표시형식이 안되는데,

         // 다른 표기법이 있을지도 므르겠지만 아무튼 위 표시형식은 안된다.

         NEXT_DAY(hiredate, '금요일')  ==> 82/01/29

   문제> EMP테이블에서 10번 부서원의 입사 일자로부터 돌아오는 금요일을 계산하여 출력하여라.

      SELECT ename, hiredate, NEXT_DAY(hiredate, '금요일') n_day,
      NEXT_DAY(hiredate, 6) n_6, NEXT_DAY(hiredate, 7) n_7, NEXT_DAY(hiredate, '금') n_금
      FROM emp
      WHERE deptno = 10
      ORDER BY hiredate DESC


      ENAME                HIREDATE N_DAY    N_6      N_7      N_금
      -------------------- -------- -------- -------- -------- --------
      MILLER               82/01/23 82/01/29 82/01/29 82/01/30 82/01/29
      KING                 81/11/17 81/11/20 81/11/20 81/11/21 81/11/20
      CLARK                81/06/09 81/06/12 81/06/12 81/06/13 81/06/12


4. LAST_DAY

   월의 마지막 날짜를 계산. 윤년, 평년은 자동 계산

   사용법> LAST_DAY(date1)

   예> LAST_DAY(hiredate)  ==> 81-11-30

   문제> EMP 테이블에서 입사한 달의 근무 일 수를 계산하여 출력하여라.

            단, 토요일과 일요일도 근무 일수에 포함한다.

       SELECT empno, ename, hiredate, LAST_DAY(hiredate) l_last,
       LAST_DAY(hiredate) - hiredate l_day
       FROM emp
       WHERE deptno = 10
       ORDER BY hiredate DESC


       EMPNO ENAME                HIREDATE L_LAST        L_DAY
       ----- -------------------- -------- -------- ----------
       7934 MILLER               82/01/23 82/01/31          8
       7839 KING                 81/11/17 81/11/30         13
       7782 CLARK                81/06/09 81/06/30         21


5. ROUND 함수

   날짜도 반올림이 가능하다. 7개월부터 올림된다고 이해하면 되겠다.

   사용법> ROUND(date1 [,fmt])

   예> ROUND('99-06-25', 'MONTH')  ==> 99-07-01

         ROUND('98-06-25', 'YEAR')  ==> 98-01-01


6. TRUNC 함수

    숫자형 함수와 마찬가지로 명시된 형식으로 절삭한다.

    사용법> TRUNC(date1, [,fmt])

    예> TRUNC('99-06-25', 'MONTH')  ==> 99-06-01

          TRUNC('99-06-25', 'YEAR')  ==> 99-01-01

   문제> EMP 테이블에서 10번 부서 중 입사한 달의 ROUND와 TRUNC 함수를 비교한다.

      SELECT ename, hiredate, ROUND(hiredate, 'MONTH') m_round,
      TRUNC(hiredate, 'MONTH') m_trunc, ROUND(hiredate, 'YEAR') y_round,
      TRUNC(hiredate, 'YEAR') y_trunc
      FROM emp
      WHERE deptno = 10
      ORDER BY hiredate DESC;


      ENAME                HIREDATE M_ROUND  M_TRUNC  Y_ROUND  Y_TRUNC
      -------------------- -------- -------- -------- -------- --------
      MILLER               82/01/23 82/02/01 82/01/01 82/01/01 82/01/01
      KING                 81/11/17 81/12/01 81/11/01 82/01/01 81/01/01
      CLARK                81/06/09 81/06/01 81/06/01 81/01/01 81/01/01

[출처] 날짜형함수|작성자 이경모


'DB' 카테고리의 다른 글

숫자형 함수  (0) 2009.06.02
DUAL 테이블  (0) 2009.06.02
데이터형 변환  (0) 2009.06.02
TO_CHAR 함수  (0) 2009.06.02
기타 함수  (0) 2009.06.02
Posted by 으랏차
,

데이터형 변환

DB 2009. 6. 2. 13:52

오라클은 데이터를 적용할 DB의 데이터형이 서로 다르더라도 형변환에 의해 데이터를 사용할 수 있게 한다.

오라클 시스템에서 자동으로 변환해주는 암시적인 데이터형 변환과 변환 함수를 통한 명시적인 데이터형 변환으로 나눌 수 있겠다.


1. 암시적인 데이터형 변환

   값 할당시 오라클 서버는 아래와 같이 자동으로 변환할 수 있다.

  

 FROM

 TO

 VARCHAR2 or CHAR  NUMBER
 VARCHAR2 or CHAR  DATE
 NUMBER  VARCHAR2
 DATE  VARCHAR2

   CHAR에서 NUMBER로의 변환은 문자열이 적절한 숫자로 나타낼 수 있는 경우에만 가능하고,

   CHAR에서 DATE로의 변환은 디폴트 데이터형이 같을 경우에만 가능하다.

   비록 암시적인 데이터형 변환을 이용할 수 있더라도, SQL문장의 안정성을 위해서

   명시적 데이터형 변환을 할 것을 권장한다.


2. 명시적인 데이터형 변환

   SQL은 변환 함수를 통하여 어떤 데이터형의 값을 다른 데이터형의 값으로 변환 해준다.

[출처] 데이터형 변환|작성자 이경모


'DB' 카테고리의 다른 글

DUAL 테이블  (0) 2009.06.02
날짜형함수  (0) 2009.06.02
TO_CHAR 함수  (0) 2009.06.02
기타 함수  (0) 2009.06.02
그룹 함수  (0) 2009.06.02
Posted by 으랏차
,

TO_CHAR 함수

DB 2009. 6. 2. 13:52

숫자, 날짜, 문자열을 지정한 형식의 VARCHAR2 문자열로 변환하는 함수이다.


1. 날짜 형식을 변환하는 경우

   사용법> TO_CHAR(date, 'fmt')

   예> TO_CHAR(hiredate, 'RR/MM/DD')  => 81/11/17

   특정 포맷(fmt)형식으로 출력할 수 있다.


   <날짜 포맷 형식>

  

 구성 요소

 설명

 SCC or CC  세기 : BC 날짜에는 _S를 붙인다.
 Years in dates YYYY or SYYYY  년 : BC 날짜에는 _S를 붙인다.
 YYY or YY of Y  년의 마지막 3 또는 2 또는 1자리 수
 Y, YYY  콤마가 있는 년
 IYYY, IYY, IY, I  ISO 표준에 바탕을 둔 4, 3, 2 또는 1자리 수
 SYSER or YEAR

 문자로 표현된 년;

 BC날짜에는 _S를 붙인다.

 BC or AD  BC / AD 지시자
 B.C or A.D  .이 있는 BC/AD 지시자
 Q  년의 4분의 1 (Quarter)
 MM  두 자리 값의 월(숫자)
 MONTH  월의 Full Name
 MON  세 자리의 약어로 된 월 이름
 RM  로마 숫자 월
 WW or W  년이나 월의 주
 DDD or DD or D  년, 월 또는 주의 일
 DAY  요일의 Full Name
 DY  세 자리 약어로 된 요일 이름
 J

 Julian day;

 BC4713년 12월 31일 이후의 요일 수


   <시간 포맷 형식>

 구성 요소

 설명

 AM or PM  정오 지시자
 A.M or P.M  .이 있는 정오 지시자
 HH or HH12 or HH24  하루 중 시간 (1~12, 0~23)
 MI  분(0~59)
 SS  초(0~59)
 SSSSS  자정 이후의 초 (0~86399)


   <기타 포맷 형식>

 구성 요소

 설명

 / . ,  사용 문자가 결과에 다시 나타난다.
 "of the"  인용 부호 내의 문자가 결과에 함께 출력


   <숫자에 영향을 주는 접미사>

 구성 요소

 설명

 TH  서수 (DDTH ==> 4TH)
 SP  명시한 수 (DDSP ==> FOUR)
 SPTH or THSP  명시한 서수 (DDSPTH ==> FOURTH)


   문제> EMP 테이블에서 10번 부서 중 입사 일자를 '01/05/1981'과 '1998년 1월 1일'의 형태로

           출력하여라.

      SELECT ename, hiredate, TO_CHAR(hiredate, 'DD/MM/YYYY') eng, TO_CHAR

      (hiredate, 'yyyy"년" mm"월" dd"일"') kor
      FROM emp
      WHERE deptno = 10
      ORDER BY hiredate DESC;

     

      ENAME                          HIREDATE ENG             KOR
      ------------------------------ -------- --------------- ---------------
      MILLER                         82/01/23 23/01/1982      1982년 01월 23일
                                                    

      KING                           81/11/17 17/11/1981      1981년 11월 17일
                                                       

      CLARK                          81/06/09 09/06/1981      1981년 06월 09일
                                                       

2. 숫자 형식을 변환하는 경우

   1) 숫자 값을 문자로 변환할 때, 즉 NUMBER형을 VARCHAR2로 전환 할 때 사용.

   2) 이 기법은 연결(Concatenation) 시에 유용하다고 한다.

   3) 형식에 제공되는 자리수를 초과하는 숫자에 대해서는 #을 출력한다.


   <숫자형식 모델>

 요소  설명  예  결과
 9  출력폭을 결정.  999999

 1234 (값이 6자리가 안되므로 4자리만 나옴)

 0  빈자리를 0으로 채움  099999  001234
 $  달러 기호를 붙임  $999999  $1234
 L  지역 화폐 기호  L999999  \1234
 .  명시한 위치에 소수점  999999.99  1234.00
 ,  명시한 위치에 콤마  999,999  1,234
 MI  우측에 마이너스 기호  999999MI  1234- (값이 음수일 때만 -로 출력됨.)
 PR  음수를 <>로 묶음  999999PR  <1234>
 EEEE  지수 부호 표기  99.999EEEE  1.234E+03
 V  10을 n번 곱한다.  9999V99  123400 (V뒤에 있는 자리 수대로 곱함. 여기는 두 자리므로 100을 곱한다.)
 B  0을 공백으로 출력.  B9999.990  1234.00

   문제> EMP 테이블에서 20번 부서 중 급여 앞에 $를 삽입하고 3자리마다 ,를 출력하라.

      SELECT ename, sal, TO_CHAR(sal, '$999,999') sal_test
      FROM emp
      WHERE deptno = 20
      ORDER BY sal DESC;


      ENAME                                 SAL SAL_TEST
      ------------------------------ ---------- ------------
      SCOTT                                3000    $3,000
      FORD                                 3000    $3,000
      JONES                                2975    $2,975
      ADAMS                                1100    $1,100
      SMITH                                 800      $800

[출처] TO_CHAR 함수|작성자 이경모


'DB' 카테고리의 다른 글

날짜형함수  (0) 2009.06.02
데이터형 변환  (0) 2009.06.02
기타 함수  (0) 2009.06.02
그룹 함수  (0) 2009.06.02
GROUP BY  (0) 2009.06.02
Posted by 으랏차
,

기타 함수

DB 2009. 6. 2. 13:50

기타 함수 Oracle

2008/12/31 18:13

복사 http://blog.naver.com/kyungmer/130039963000

1. NVL 함수

   Null 값을 어떤 특정한 값(실제 값)으로 변환하는데 사용한다.

   사용법> NVL(expr1, expr2)

   예> NVL(comm, 0)


2. NVL2 함수

   값이 Null인 경우와 Null이 아닌 경우의 리턴값이 다르다.

   사용법> NVL2(col | expr, expr1, expr2)

   예> NVL2(comm, 'SAL+COMM', 'SAL')

      값이 Null이 아니면 'SAL+COMM'을, 값이 Null이면 'SAL'을 리턴한다.

   문제> EMP 테이블에서 모든 사원들의 이름, 급여, 보너스와 보너스가 있으면 SAL+COMM을,

            보너스가 없으면 SAL이라는 문자열을 출력하라.

      SELECT ename, sal, comm, NVL2(comm, 'SAL+COMM', 'SAL') income
      FROM emp;

  

      ENAME                       SAL       COMM INCOME
      -------------------- ---------- ---------- ---------------
      SMITH                       800            SAL
      ALLEN                      1600        300 SAL+COMM
      WARD                       1250        500 SAL+COMM
      JONES                      2975            SAL
      MARTIN                     1250       1400 SAL+COMM
      BLAKE                      2850            SAL
      CLARK                      2450            SAL
      SCOTT                      3000            SAL
      KING                       5000            SAL
      TURNER                     1500          0 SAL+COMM
      ADAMS                      1100            SAL

      ENAME                       SAL       COMM INCOME
      -------------------- ---------- ---------- ---------------
      JAMES                       950            SAL
      FORD                       3000            SAL
      MILLER                     1300            SAL


3. NULLIF 함수

   두 개의 값을 비교하여 같으면 Null 값을 리턴하고 서로 다른 값을 가지면 첫번째 expr을 리턴한다.

   사용법> NULLIF(expr1, expr2)

   예> NULLIF(comm, 0)


4. COALESCE 함수

   나열된 값을 순차적으로 체크하여 NULL이 아닌 값을 리턴해주는 함수.

   사용법> COALESCE(expr1, expr2....exprn)

   예> COALESCE(comm, sal, 10)

   문제> EMP 테이블에서 사원의 이름, 보너스 및 급여를 출력하는데 급여가 널이면 보너스를,

            보너스가 널이면 급여를 출력하시오.

      SELECT ename, sal, comm, COALESCE(sal, comm)
      FROM emp;


      ENAME                       SAL       COMM COALESCE(SAL,COMM)
      -------------------- ---------- ---------- ------------------
      SMITH                       800                           800
      ALLEN                      1600        300               1600
      WARD                       1250        500               1250
      JONES                      2975                          2975
      MARTIN                     1250       1400               1250
      BLAKE                      2850                          2850
      CLARK                      2450                          2450
      SCOTT                      3000                          3000
      KING                       5000                          5000
      TURNER                     1500          0               1500
      ADAMS                      1100                          1100

      ENAME                       SAL       COMM COALESCE(SAL,COMM)
      -------------------- ---------- ---------- ------------------
      JAMES                       950                           950
      FORD                       3000                          3000
      MILLER                     1300                          1300


5. DECODE 함수

   CASE나 IF-ELSE 문의 역할을 한다.

   사용법> DECODE(col | expr, search1, result1[,search2, result2, ...][,default])

   예> DECODE(deptno, 10, sal*1.1, 20, sal*1.5, sal*1.2, sal)

   문제> EMP 테이블에서 JOB이 ANALYST이면 급여 증가는 10%이고 JOB이 CLERK이면

            급여 증가는 15%이고 JOB이 MANAGER이면 급여 증가는 20%이다.

            다른 업무에 대해서는 급여 증가가 없다.

            사원번호, 이름, 업무, 급여, 증가된 급여를 출력하여라.

     

      SELECT empno, ename, job, sal,
      DECODE(job, 'ANALYST', sal*1.1, 'CLERK', sal*1.15, 'MANAGER', sal+sal*0.2, sal) d_sal
      FROM emp
      ORDER BY sal DESC;


      EMPNO ENAME                JOB                       SAL      D_SAL
      ----- -------------------- ------------------ ---------- ----------
       7839 KING                 PRESIDENT                5000       5000
       7902 FORD                 ANALYST                  3000       3300
       7788 SCOTT                ANALYST                  3000       3300
       7566 JONES                MANAGER                  2975       3570
       7698 BLAKE                MANAGER                  2850       3420
       7782 CLARK                MANAGER                  2450       2940
       7499 ALLEN                SALESMAN                 1600       1600
       7844 TURNER               SALESMAN                 1500       1500
       7934 MILLER               CLERK                    1300       1495
       7521 WARD                 SALESMAN                 1250       1250
       7654 MARTIN               SALESMAN                 1250       1250

       EMPNO ENAME                JOB                       SAL      D_SAL
       ----- -------------------- ------------------ ---------- ----------
        7876 ADAMS                CLERK                    1100       1265
        7900 JAMES                CLERK                     950     1092.5
        7369 SMITH                CLERK                     800        920


6. CASE 함수

   DECODE 함수와 동일하나 지원하지 않는 범위 비교가 가능하다.

   사용법> CASE col | expr WHEN condition1 THEN result1

                                      [WHEN condition2 THEN result2

                                                  ..........

                                       WHEN conditionN THEN resultN

                                       ELSE result]

               END

   예> CASE job WHEN 'ANALYST' THEN sal *1.1

                       WHEN 'CLERK' THEN sal*1.15

                       WHEN 'MANAGER' THEN sal*1.2

                       ELSE sal

         END

   위에 5.DECODE함수에서 나왔던 문제를 CASE함수로 풀면 아래와 같다.

   SELECT empno, ename, job, sal,
      CASE job WHEN 'ANALYST' THEN sal*1.1
               WHEN 'CLERK' THEN sal*1.15
               WHEN 'MANAGER' THEN sal*1.2
               ELSE sal
      END d_sal
   FROM emp
   ORDER BY sal DESC;

[출처] 기타 함수|작성자 이경모

'DB' 카테고리의 다른 글

데이터형 변환  (0) 2009.06.02
TO_CHAR 함수  (0) 2009.06.02
그룹 함수  (0) 2009.06.02
GROUP BY  (0) 2009.06.02
Join  (0) 2009.06.02
Posted by 으랏차
,

그룹 함수

DB 2009. 6. 2. 13:47

단일 행 함수와는 달리 그룹 함수는 여러 행 또는 테이블 전체에 대해 함수가 적용되어 하나의 결과를 가져오는 함수를 말한다.

그룹 당 하나의 결과가 주어지도록 행의 집합에 대해 연산할 경우 GROUP BY 절을 이용하여 그룹화 할 수 있고 HAVING을 이용하여 그룹에 대한 조건을 제한할 수 있다.

<그룹함수의 종류>

 AVG(DISTINCT|ALL|n) : NULL값을 제외한 n개 행의 평균값.

 COUNT(DISTINCT|ALL|*) : NULL값을 포함한 행의 개수.

 MAX(DISTINCT|ALL|expr) : 최대값.

 MIN(DISTINCT|ALL|expr) : 최소값.

 STDDEV(DISTINCT|ALL|n) : NULL값을 제외한 n의 표준 편차.

 SUM(DISTINCT|ALL|n) : NULL값을 제외한 n의 합계.

 VARIANCE(DISTINCT|ALL|n) : NULL값을 제외한 n의 분산.

 * DISTINCT는 해당 함수로 하여금 오직 중복되지 않는 값만 리턴하게 해준다.

   그러나 ALL(Default)은 해당 함수로 하여금 모든 값을 고려하게 한다.

 * expr이 있는 인수들의 자료 형태는 CHAR, VARCHAR2, NUMBER, DATE형이 될 수 있다.

 * COUNT(*)를 제외한 모든 그룹 함수들은 NULL값을 무시한다.

   NULL값을 하나의 값으로 치환하기 위해서는 NVL함수를 사용하면 된다.

 * 모든 자료형에 대하여 MAX와 MIN을 사용할 수 있다.

   그러나 AVG, SUM, VARIANCE, STDDEV는 NUMBER만 사용 가능하다.

 문제1> EMP 테이블에서 모든 SALESMAN에 대하여 급여의 평균, 최고액, 최저액, 합계를 출력하라.

   SELECT AVG(sal), MAX(sal), MIN(sal)
   FROM emp
   WHERE job LIKE 'SAL%'


   AVG(SAL)   MAX(SAL)   MIN(SAL)
   --------- ---------- ----------
           1400       1600       1250

 문제2> EMP 테이블에 등록되어 있는 인원수, 보너스에 NULL이 아닌 인원수, 보너스의 평균,

           등록되어 있는 부서의 수를 구하여 출력하라.

      SELECT COUNT(*), COUNT(comm), AVG(NVL(comm, 0)), COUNT(DISTINCT deptno)
      FROM emp


      COUNT(*) COUNT(COMM) AVG(NVL(COMM,0)) COUNT(DISTINCTDEPTNO)
       --------- ----------- ---------------- ---------------------
                  17           5       147.058824                     3

[출처] 그룹 함수|작성자 이경모


'DB' 카테고리의 다른 글

TO_CHAR 함수  (0) 2009.06.02
기타 함수  (0) 2009.06.02
GROUP BY  (0) 2009.06.02
Join  (0) 2009.06.02
Equijoin  (0) 2009.06.02
Posted by 으랏차
,

GROUP BY

DB 2009. 6. 2. 13:46

GROUP BY는 그룸함수를 테이블보다 작은 그룹으로 나누어 사용할 수 있는 절이다.

테이블을 하나의 그룹으로 다루면 필요하지 않으나 테이블 안에서 그룹을 나눌 때 사용한다는 말이다.


1. 단일 그룹으로 사용.

   SELECT절에 그룹 함수와 Column이 같이 기술되면 반드시 GROUP BY절이 기술 되어야 한다.

   예를 들어

   SELECT deptno, COUNT(*), AVG(sal), MIN(sal), MAX(sal), SUM(sal) FROM emp;

   위와 같은 명령을 내리면 deptno는 다수의 값이지만, 나머지들은 하나의 값을 출력해야한다.

   이런 경우는 출력되지 않고 에러가 난다. 출력하는 Column의 개수는 동일해야 겠다.

   이럴 때 같은 deptno끼리 묶고, 각 deptno에 해당하는 sal의 COUNT, AVG, MIN, MAX, SUM값을

   구할 수 있겠다.

   SELECT deptno, COUNT(*), AVG(sal), MIN(sal), MAX(sal), SUM(sal)
   FROM emp
   GROUP BY deptno;


   DEPTNO COUNT(*) AVG(SAL)  MIN(SAL)   MAX(SAL) SUM(SAL)
    ------- ---------- ----------  ---------- ---------- ----------
           30               7  2128.57143           950          5500         14900
           20               6          2475            800          4500        12375
           10               4        2987.5          1500          5000        11950


2. 다수의 Column으로 그룹화

   다수의 Column을 그룹화해서 표현할 수 있다.

   예를 들어 부서별, 업무별로 그룹화해서 각각의 합계, 개수 등을 구할 수 있다.

   SELECT deptno, job, COUNT(*), AVG(sal), SUM(sal)
   FROM emp
   GROUP BY deptno, job;


   DEPTNO JOB                  COUNT(*)   AVG(SAL)   SUM(SAL)
   ------ ------------------ ---------- ---------- ----------
         20 CLERK                       2        950       1900
         30 SALESMAN                    4       1400       5600
         20 MANAGER                     1       2975       2975
         30 CLERK                       1        950        950
         30                                   2       5250      10500
         10 PRESIDENT                   1       5000       5000
         30 MANAGER                     1       2850       2850
         10 CLERK                       1       1500       1500
         20                                  1
         10 MANAGER                     1       2450       2450
         20 ANALYST                     2       3750       7500

   DEPTNO JOB                  COUNT(*)   AVG(SAL)   SUM(SAL)
   ------ ------------------ ---------- ---------- ----------
         10                                          1       3000       3000


3. ROLLUP과 CUBE 연산자를 이용한 GROUP BY

   테이블은 행과 열로 이루어져 있는데 ROLLUP은 테이블 행의 합계를 구해주고,

   CUBE는 행과 열의 부분합과 총계를 구해준다고 이해하면 되겠다.

   예를 들어 부서별 합계는

   SELECT deptno, sum(sal)
   FROM emp
   GROUP BY deptno;

 

        DEPTNO   SUM(SAL)
     ---------- ----------
              30      19900
              20      12375
              10      11950

   위와 같이 구할 수 있다.

   여기서 부서 급여를 총합산한 금액을 구하려면 ROLLUP기능을 사용하면 된다.

   SELECT deptno, sum(sal)
   FROM emp
   GROUP BY ROLLUP(deptno);


    DEPTNO   SUM(SAL)
    ---------- ----------
             10      11950
             20      12375
             30      19900
                      44225

   위와 같이 ROLLUP 기능을 통해 부서별 급여의 총합계가 구해졌다.

   그렇다면 부서별, 업무별 급여의 총 합계를 구해보자.

   SELECT deptno, job, sum(sal)
   FROM emp
   GROUP BY ROLLUP(deptno, job);


    DEPTNO JOB                  SUM(SAL)
    ---------- ------------------ ----------
               10                              3000
               10 CLERK                    1500
               10 MANAGER                2450
               10 PRESIDENT               5000
               10                               11950
               20
               20 CLERK                    1900
               20 ANALYST                  7500
              20 MANAGER                  2975
              20                                12375
              30                                10500

    DEPTNO    JOB                      SUM(SAL)
    ---------- ------------------ ----------
               30 CLERK                       950
               30 MANAGER                  2850
               30 SALESMAN                 5600
               30                                19900
                                                  44225

   부서별, 업무별 합계를 구하기 위해 ROLLUP으로 deptno, job을 입력해줬으나,

   부서별 합계만 구해진다.

   부서별, 업무별 급여를 함께 구하려면 CUBE를 쓰면 된다.

   SELECT deptno, job, sum(sal)
   FROM emp
   GROUP BY CUBE(deptno, job);


       DEPTNO JOB                  SUM(SAL)
   ---------- ------------------ ----------
                                               10500  

                                               44225  
                                              3000
                   CLERK                    4350
                  ANALYST                  7500
                  MANAGER                  8275
                  SALESMAN                 5600
                  PRESIDENT                5000
             10                              11950
             10                               3000
             10 CLERK                    1500

    DEPTNO JOB                  SUM(SAL)
   ---------- ------------------ ----------
              10 MANAGER                  2450
              10 PRESIDENT                5000
              20
              20                         12375
              20 CLERK                    1900
              20 ANALYST                  7500
              20 MANAGER                  2975
              30                         10500
              30                         19900
              30 CLERK                     950
              30 MANAGER                  2850

    DEPTNO JOB                  SUM(SAL)
    ---------- ------------------ ----------
              30 SALESMAN                 5600

   CUBE는 위와 같이 업무별 합계도 같이 구해진다.

   즉, 테이블에 DEPTNO는 행, JOB은 열일 때 ROLLUP은 행의 합계만 구해지고,

   CUBE는 행과 열의 부분합, 총계가 구해진다고 보면 되겠다.

   ROLLUP과 CUBE가 잘 적용되었는지 확인하려면 GROUPING함수를 사용하면 된다.

   GROUPING함수를 사용해서 0이 리턴되면 해당 컬럼이 ROLLUP이나 CUBE 연산에 사용되었음을

   나타내고, 1이 리턴되면 사용되지 않았음을 나타낸다.

   SELECT deptno, job, SUM(sal), GROUPING(deptno)
   FROM emp
   GROUP BY CUBE(deptno, job);


    DEPTNO JOB                  SUM(SAL) GROUPING(DEPTNO)
    ---------- ------------------ ---------- ----------------
                                                10500                1
                                                44225                1
                                                3000                1
                   CLERK                    4350                1
                   ANALYST                  7500                1
                   MANAGER                  8275                1
                   SALESMAN                 5600                1
                   PRESIDENT                5000                1
               10                                11950                0
               10                                 3000                0
               10 CLERK                     1500                0

    DEPTNO JOB                  SUM(SAL) GROUPING(DEPTNO)
   ---------- ------------------ ---------- ----------------
               10 MANAGER                  2450                0
               10 PRESIDENT                5000                0
               20                                                      0
               20                               12375                0
               20 CLERK                    1900                0
               20 ANALYST                  7500                0
               20 MANAGER                  2975                0
               30                                10500                0
               30                               19900                0
               30 CLERK                       950                0
               30 MANAGER                  2850                0

    DEPTNO JOB                  SUM(SAL) GROUPING(DEPTNO)
    ---------- ------------------ ---------- ----------------
                30 SALESMAN                 5600                0

   위 결과를 보면 deptno의 합계는 잘 적용되었으나 job의 합계는 적용되지 않았음을 볼 수 있다.

   배운대로라면 job의 합계는 적용되어야 정상인데...흠...뭔가 오류가 있는 모양인데...

   1이 나오면 그룹화할 집합이 없다는 뜻이라는데...

   CUBE의 정의는 행과 열의 합계와 부분합을 구해준다는 정의만 알고 일단 넘어가자.


4. GROUPING SETS

   GROUP BY절의 확장된 형태로 하나의 쿼리문에서 원하는 그룹핑 조건을 여러개 기술할 수 있다.

   GROUPING SETS 함수 사용이 불가능했던 이전 버전에서는 복잡한 UNION ALL연산자라는 것을

   사용해서 길게 코딩했다고 하는데, 지금은 GROUPING SETS함수를 이용해서

   간단하게 사용할 수 있다.

   예를 들어 부서, 업무를 한 그룹으로 묶고 부서, 관리자를 한 그룹으로 묶은 후 이 두 그룹 급여의

   총액을 구한다고 하자.

     SELECT deptno, job, mgr, sum(sal)
      FROM emp
      GROUP BY GROUPING SETS((deptno, job), (deptno, mgr));


    DEPTNO JOB                       MGR   SUM(SAL)
    ---------- ------------------ ---------- ----------
                20 CLERK                               1900
                30 SALESMAN                            5600
                20 MANAGER                             2975
                30 CLERK                                950
                30                                    10500
                10 PRESIDENT                           5000
                30 MANAGER                             2850
                10 CLERK                               1500
                20
                10 MANAGER                             2450
                20 ANALYST                             7500

    DEPTNO JOB                       MGR   SUM(SAL)
    ---------- ------------------ ---------- ----------
               10                                     3000
               20                          7839       2975
               30                                    10500
               10                          7839       2450
               30                          7698       6550
               20                          7566       7500
               10                          7782       1500
               20
               20                          7902        800
               10                                     8000
               30                          7839       2850

    DEPTNO JOB                       MGR   SUM(SAL)
    ---------- ------------------ ---------- ----------
               20                          7788       1100


5. HAVING절

   WHERE절을 이용하여 조회하고자 하는 레코드를 선별할 수 있으나,

   그룹에 대한 조건은 HAVING절에서 기술한다.

   예를 들어 아래와 같이 그룹에 대한 조건을 WHERE절을 쓰면 에러 난다.

   SELECT deptno, COUNT(*), SUM(sal)
    FROM emp
    WHERE COUNT(*) > 4
    GROUP BY deptno;

   WHERE COUNT(*) > 4
              *
   3행에 오류:
   ORA-00934: 그룹 함수는 허가되지 않습니다

   위처럼 에러가 발생하니 HAVING을 이용해 아래와 같이 코딩하면 정상적으로 결과가 출력된다.

   SELECT deptno, COUNT(*), SUM(sal)
    FROM emp
    GROUP BY deptno
    HAVING COUNT(*) > 4;

  

   DEPTNO   COUNT(*)   SUM(SAL)
   ------ ---------- ----------
         30          8      19900
         20          6      12375


   문제1> EMP 테이블에서 급여가 최대 5000 이상인 직원이 있는 부서에 대해서

             부서번호, 평균 급여, 급여의 합을 구하여 출력하여라.

             SELECT deptno, AVG(sal), SUM(sal)
             FROM emp
             GROUP BY deptno
             HAVING MAX(sal) >= 5000


            DEPTNO   AVG(SAL)   SUM(SAL)
            ---------- ---------- ----------
                        30     2487.5      19900
                        10     2987.5      11950


   문제2> EMP 테이블에서 업무별 급여의 평균이 3000 이상인 업무에 대해서

             업무명, 평균 급여, 급여의 합을 구하여 출력하여라.

             SELECT job, AVG(sal), SUM(sal)
             FROM emp
             GROUP BY job
             HAVING AVG(sal) > 3000;


             JOB                  AVG(SAL)   SUM(SAL)
            ------------------ ---------- ----------
                                                 5250      10500
                PRESIDENT                5000       5000
                   ANALYST                  3750       7500

   문제3> EMP 테이블에서 전체 월급이 5000을 초과하는 각 업무에 대해서 업무와 월급여 합계를

             출력하여라. 단 판매원은 제외하고 월 급여 합계로 내림차순 정렬하여라.

             SELECT job, SUM(sal)
              FROM emp
              WHERE job NOT LIKE 'SALE%'
              GROUP BY job
              HAVING SUM(sal) > 5000
              ORDER BY SUM(sal) DESC;


             JOB                  SUM(SAL)
            ------------------ ----------
            MANAGER                  8275
            ANALYST                  7500

[출처] GROUP BY|작성자 이경모


'DB' 카테고리의 다른 글

기타 함수  (0) 2009.06.02
그룹 함수  (0) 2009.06.02
Join  (0) 2009.06.02
Equijoin  (0) 2009.06.02
Non-Equijoin  (0) 2009.06.02
Posted by 으랏차
,

Join

DB 2009. 6. 2. 13:46

Join은 여러 개의 테이블로부터 자료를 검색하기 위하여 사용한다.


일반적으로 Primary Key와 Foreign Key를 사용하여 Join 하는 경우가 대부분이지만,

때로는 논리적인 값들의 연관으로 Join하는 경우도 있다고 한다.


그러니까 만약 emp테이블과 dept 테이블의 칼럼을 SELECT로 조회한다고 했을 때 한 쿼리문에 emp테이블과 dept테이블을 모두 조회할 수 있는데 이런 것을 Join이라고 한다.

[출처] Join|작성자 이경모


'DB' 카테고리의 다른 글

그룹 함수  (0) 2009.06.02
GROUP BY  (0) 2009.06.02
Equijoin  (0) 2009.06.02
Non-Equijoin  (0) 2009.06.02
Outer Join  (0) 2009.06.02
Posted by 으랏차
,