Programming/Database

[ORACLE 초급] 조건 검색 - WHERE, 연산자

728x90
반응형

WHERE절

데이터를 조회할 때 특정 조건을 기준으로 원하는 행을 출력하는 데 사용
(여러 연산자를 함께 사용해 더욱 세밀하게 검색 가능)

SELECT [조회할 열1], [조회할 열2], ..., [열N 이름]
FROM   [조회할 테이블명]
WHERE  [조회할 행을 선별하기 위한 조건식];

WHERE의 조건식이 TRUE인 경우 출력

AND, OR 연산자

조건식을 여러 개 지정할 때 사용하는 논리 연산자 (조건식 개수는 제한이 없음)
문자열 데이터는 대·소문자 구별!

AND : 둘 다 TRUE이면 TRUE
OR : 하나만 TRUE여도 TRUE

SELECT *
FROM   EMP
WHERE  [조건식1] AND [조건식2] OR [조건식3];

다양한 연산자

  • 산술 연산자
    +, -, *, / 수치 연산

  • 비교 연산자
    >, >=, <, <= 대소 비교
    → 숫자가 아닌 문자열에도 사용 가능 (알파벳 순서로 비교)
    =, !=, <>, ^= 등가 비교
    → 양쪽 데이터가 같은 값인지 확인

  • 논리 부정 연산자
    NOT : TRUE이면 FALSE, FALSE이면 TRUE
    IN, BETWEEN, IS NULL 연산자와 함께 복합적으로 사용하는 경우가 많음

  • IN 연산자
    특정 열에 해당되는 데이터 값을 여러 개 조회하고자 할 경우 사용

      SELECT [조회할 열1], [조회할 열2], ..., [열N 이름]
      FROM   [조회할 테이블명]
      WHERE  열 이름 (NOT) IN (데이터1, 데이터2, ..., 데이터N);
  • BETWEEN A AND B 연산자
    특정 열의 최소, 최대 범위를 지정해 해당 범위 내의 데이터만 조회

      SELECT [조회할 열1], [조회할 열2], ..., [열N 이름]
      FROM   [조회할 테이블명]
      WHERE  열 이름 BETWEEN 최소값 AND 최대값;
  • LIKE 연산자
    문자열 일부가 포함된 데이터 조회

    와일드카드?
    _ : 어떤 값이든 상관없이 한 개의 문자 데이터
    % : 길이와 상관없이 모든 문자 데이터 (없는 경우도 포함)

    LIKE 'S%' : 대문자 S로 시작하는 데이터 조회
    LIKE '_L%' : 두번째 문자가 L인 데이터 조회 (L 앞에 반드시 한 문자가 와야 함)

    ESCAPE절?
    _나 %를 와일드 카드가 아닌 데이터 문자로 다룸
    \ (역슬래쉬) 뒤의 기호는 문자로 인식함

  • IS NULL 연산자
    ! 숫자 0과 NULL을 혼동하지 않도록 주의 !
    NULL은 연산 자체가 무의미하기 때문에 = 으로 비교할 수 없고, IS NULL 또는 IS NOT NULL을 통해 구별

  • 집합 연산자
    UNION (합집합) : SELECT문을 통해 조회한 결과를 하나의 집합 같이 다룰 수 있음 (중복 제거)
    ⇒ SELECT문이 출력하는 열 개수와 각 열의 자료형이 순서대로 일치해야 함

    UNION ALL : 중복 데이터 모두 출력

      SELECT EMPNO, ENAME, SAL, DEPTNO
      FROM EMP
      WHERE DEPTNO = 10
      UNION (ALL)
      SELECT EMPNO, ENAME, SAL, DEPTNO
      FROM EMP
      WHERE DEPTNO = 10

    MINUS (차집합) : 결과 값이 같은 데이터는 제외된 첫 번째 SELECT문의 결과 값 출력

    INTERSECT (교집합) : 결과 값이 같은 데이터만 출력

728x90
반응형