SQL연산자

DB 2009. 6. 2. 13:55
연산자 설명
 BETWEEN a AND b  a와 b 사이에 있다. (a, b값 포함)
 IN (list)  list의 값 중 어느 하나와 일치 한다.
 LIKE  문자 형태와 일치한다. (%, _ 사용)
 IS NULL  NULL 값을 갖는다.
 NOT BETWEEN a AND b  a와 b 사이에 있지 않다. (a, b값 포함하지 않음)
 NOT IN (list)  list의 값과 일치 하지 않는다.
 NOT LIKE  문자 형태와 일치 하지 않는다.
 NOT IS NULL (10g에서는 IS NOT NULL을 쓴다.)  NULL값을 갖지 않는다.

1. BETWEEN 연산자
   : 두 값의 범위에 해당하는 행을 출력하기 위해 사용한다.
   1) EMP 테이블에서 급여가 1300 에서 1500 사이의 사원의 성명, 담당업무, 급여, 부서 번호를 출력하여라.

      SELECT ename, job, sal, deptno
      FROM emp
      WHERE sal BETWEEN 1300 AND 1500;

     결과>
      ENAME                    JOB                       SAL          DEPTNO
      -------------------- ------------------ ---------- ----------
      TURNER                   SALESMAN                     1500             30
      MILLER                   CLERK                            1300             10
      BETWEEN AND 구문을 사용할 때는 작은 값이 앞에 와야 한다.

      위의 예제에서 1500을 먼저 쓰고 1300을 뒤에 쓰면 선택된 레코드가 없다는 결과가 나온다.

      BETWEEN AND 구문을 사용하지 않고 AND구문을 사용해서 sal >= 1300 AND sal <=1500 이라고 해도 같은 결과가 출력된다.


2. IN 연산자

   : 목록에 있는 값에 대해서 출력하기 위해 사용한다.

   1) EMP 테이블에서 사원번호가 7902, 7788, 7566인 사원의 사원번호, 성명, 담당업무, 급여, 입사일자를 출력하여라.

       SELECT empno, ename, job, sal, hiredate
       FROM emp
       WHERE empno IN (7902, 7788, 7566);

      결과>

       EMPNO ENAME                JOB                       SAL          HIREDATE
       ----- -------------------- ------------------ ---------- --------
         7566 JONES                    MANAGER                       2975 81/04/02
         7788 SCOTT                    ANALYST                        3000 87/04/19
         7902 FORD                     ANALYST                         3000 81/12/03

       IN 구문을 OR절을 사용해서 empno = 7902 OR empno = 7788 OR empno = 7902 와 같이 사용해도 같은 결과가 출력된다.


3. LIKE 연산자

   1) 검색 STRING 값에 대한 와일드 카드 검색을 위해서 LIKE연산자를 사용한다.

   2) 검색 조건은 LITERAL 문자나 숫자를 포함할 수 있다.

   3) %는 문자가 없거나 하나 이상의 문자를, 즉 *와 같이 모든 것을 의미하고, _는 하나의 문자, 즉 ?와 같은 와일드카드로 사용된다.

   4) 패턴 일치 문자를 조합할 수 있다.

   5) %나 _에 대해서 검색하기 위해서는 Escape 식별자를 이용할 수 있다.

       예를 들어 X_Y가 포함된 값을 찾고 싶은데 _는 와일드카드 문자이므로 이 기능을 없애야 한다.

       그럴 때는 뒤에 ESCAPE문자를 지정해서 사용하면 된다.

       예) WHERE name LIKE '%X\_Y%' ESCAPE '\';

            ESCAPE문자를 \로 지정했다. \말고 다른 것으로 지정해도 된다.

   6) EMP 테이블에서 입사일자가 82년도에 입사한 사원의 사번, 성명, 담당업무, 급여, 입사일자, 부서번호를 출력하여라.

       SELECT empno, ename, job, sal, hiredate, deptno
        FROM emp
        WHERE hiredate LIKE '82%';

        위와 같이 명령을 내리면 hiredate 칼럼에 속한 투플 중에서 82로 시작하는 값은 모두 출력된다.


4. IS NULL 연산자

   NULL값을 조회할 때 사용한다.

   SELECT empno, ename, job, sal, hiredate, deptno
   FROM emp
   WHERE comm IS NULL;

   위와 같이 명령을 내리면 comm(보너스)이 NULL값인 레코드는 모두 출력된다.


5. NOT BETWEEN a AND b, NOT IN, NOT LIKE, NOT IS NULL은 앞서 설명한 연산자들의 반대의 명령을 실행하는 구문이라고 이해하자.

[출처] SQL연산자|작성자 이경모


'DB' 카테고리의 다른 글

[오라클] 패스워드 잊었을때  (0) 2012.01.11
비교 연산자  (0) 2009.06.02
연산자 우선 순위  (0) 2009.06.02
정렬  (0) 2009.06.02
자형 함수  (0) 2009.06.02
Posted by 으랏차
,