💻Programming/Oracle

[Oracle/오라클] 연산자

horang_dev 2021. 3. 12. 11:42

 연산자  

 - 4칙연산자 (+, -, /, * )

 - 관계연산자 (>, >=, <, <=, =, !=(<>))

 - 논리연산자 ( AND, OR, NOT )

 

 1) IN 연산자

    - 주어진 값 중 어느 하나와 일치하면 전체가 참 ( TRUE )이 되는 연산자

    - OR 연산자로 바꾸어 쓸 수 있다.

    - WHERE  절의 조건 구성에 사용

 

    컬럼명 IN (값1, 값2, ... 값n) ;

 

ex) 사원테이블(employees)에서 부서가 60, 40, 20번 부서에 속한 사원정보를 조회하시오. 
	Alias는 사원번호, 사원명, 부서번호, 입사일이다.
  
  -- IN 연산자 사용
  SELECT employee_id AS 사원번호,
   	 emp_name AS 사원명,
         department_id AS 부서번호,
         hire_date AS 입사일
    FROM employees
   WHERE department_id IN (60,40,20);
 
  -- ON 연산자 사용
  SELECT employee_id AS 사원번호,
   	 emp_name AS 사원명,
         department_id AS 부서번호,
         hire_date AS 입사일
    FROM employees
   WHERE department_id = 60
      OR department_id = 40
      OR department_id = 20;

 2) ANY(SOME) 연산자

    - 기능은 IN 연산자와 동일

 

    컬럼명 관계연산자 ANY|SOME (값1, 값2, ... 값n) ;

  SELECT employee_id AS 사원번호,
   	 emp_name AS 사원명,
         department_id AS 부서번호,
         hire_date AS 입사일
    FROM employees
   --WHERE department_id =ANY (60,40,20);
   WHERE department_id =SOME (60,40,20);

 3) BETWEEN 연산자

    - 범위를 지정하여 비교할 때 사용

    - ANY 연산자로 변환 가능

    - 컬럼에 저장된 값의 범위가 A ~ B 사이 값이면 참 (TRUE) 반환

    컬럼명 BETWEEN A AND B ;

 

ex) 매입테이블(employees)에서 2005년 2월 5일부터 16일 사이에 입고된 상품정보를 조회하시오.
     Alias는 날짜, 상품코드, 수량, 단가, 금액이다.

  SELECT buy_date AS 날짜,
   	 buy_prod AS 상품코드,
         buy_qty AS 수량,
         buy_cost AS 단가,
         buy_qty * buy_cost AS 금액
    FROM buyprod
   WHERE buy_date BETWEEN '20050205' AND '20050216';

 4) LIKE 연산자

    - 패턴 비교시 사용

    - 문자열 자료 비교에 사용되는 연산자

    - ' % ' 와 ' _ '  사용

    - ' % ' 는 사용된 위치에서 모든 문자열과 대응

        ex) '김%' : '김'으로 시작하는 모든 문자열과 대응 

            '%도' : '도'로 끝나는 모든 문자열과 대응

    - ' _ ' 는 사용된 위치에서 모든 문자열과 대응

        ex) '김_' : '김'으로 시작하고 2글자로 구성된 문자열로 두번째 글자는 모든 문자가 허용됨.

            '_도' : '도'로 끝나고 2글자로 구성된 문자열로 첫번째 글자는 모든 문자가 허용됨.

 

ex) 거래처테이블(buyer)에서 주소지가 서울인 거래처 조회하시오,
	Alias는 거래처코드, 거래처명, 주소, 담당자 이다.
  
  --LIKE 연산자 미사용
  SELECT buyer_id AS 거래처코드,
   	 buyer_name AS 거래처명,
         buyer_add1||' '||buyer_add2 AS 주소,
         buyer_charger AS 담당자
    FROM buyer
   WHERE SUBSTR(buyer_add1,1,2) = '서울' ; --buyer_add1의 첫 글자에서 두번째 글자까지가 '서울'이면
   
  --LIKE 연산자 사용
  SELECT buyer_id AS 거래처코드,
   	 buyer_name AS 거래처명,
         buyer_add1||' '||buyer_add2 AS 주소,
         buyer_charger AS 담당자
    FROM buyer
   WHERE buyer_add1 = '서울%' ; 

 

반응형