본문 바로가기
SQL(Oracle)/Oracle 이론 정리

[Oracle] 연산자 / 집합연산자

by ProSeraphina 2020. 8. 5.

#연산자

  종류 및 의미 Java와의 비교 사용 예시
산술연산자 + , - , * , /
사칙연산
  - %(나눈 나머지값) 없음
    =>함수(MOD) 사용
  - 정수/정수=>실수
  - NULL이 들어간 연산은
    결과값이 NULL
  - SELECT 10+3, 10*3,       
    10/3,10-3 FROM DUAL;
   =>13, 30, 3.3333333, 7

  - NULL+10 =>NULL
비교연산자 = : 같다
 !=, <>, ^= : 같지 않다
나머지 Java와 동일
  - 같다 in Java
    기본형: ==
    문자열: equals(), compare()  
  - WHERE job!='CLERK';
  - WHERE job<>'CLERK';
논리연산자 AND
OR
  && : 스캐너 in Oracle
  || : 문자열결합 in Oracle
 
Oracle에만 있는 연산자
***부정은 NOT 종류 및 의미 사용 예시
IS NULL
IS NOT NULL
  NULL값 검색
  NULL이 아닌값 검색
  - 성과급(comm) 없는/있는 사원의 모든 정보
  SELECT * FROM emp WHERE comm IS NULL; --없는 사원
  SELECT * FROM emp WHERE comm IS NOT NULL; 
IN
  여러 조건 동시에 검색   deptno=10 OR deptno=20 OR deptno=30;
  = deptno IN(10,20,30)

  - 부서(deptno)가 10 or20 이 아닌 사원의 모든 정보
 SELECT * FROM emp WHERE deptno NOT IN(10,20);
BETWEEN A AND B   >=A AND <=B와 동일
  속도면에서 비교연산자
  우세
  sal>=100 && sal<=3000
  = sal BETWEEN 100 AND 3000 ((100과 3000 포함!))
LIKE
( % , _ )
  원하는 문자가 포함된
  문자열 검색
  [ % ] : 아무 문자열
  'A%': A로 시작하는 모든 문자열(cf. Java: startsWith() )
  '%A': A로 끝나는 모든 문자열(cf. Java: endsWith() )
  '%A%': A가 포함된 모든 문자열(cf. Java: contains() )
  - 주소 중 신촌을 포함하고 있는 모든 주소 출력
     SELECT * FROM zipcode WHERE dong LIKE '%신촌%';

  [ _ ] : 한 자리 문자열
  SELECT * FROM emp WHERE ename LIKE '_ _ _ _'; --4자 
  (=SELECT * FROM emp WHERE LENGTH(ename)=4;) --함수

 

#집합연산자

UNION   합집합
UNION ALL   합집합+교집합
INTERSECT   교집합
MINUS   차집합

끝.

댓글