본문 바로가기

database/oracle

4. oracle (연산자)

 

비교연산자

=, !=, >, <, >=, <=

 

논리연산자

AND, OR , NOT

 

SQL 연산자

IN, ANY, ALL, BETWEEN, LIKE ,IS NULL, IS NOT NULL

 

연산자 설명

IN 연산자 (OR 연산자와 비슷한 역활)

ANY 연산자 (조건을 비교할때 어느 하나라도 맞으면 true)

ALL 연산자(조건을 비교할때 조건이 모두 맞느면 true)

BETWEEN A AND B (A와 B 사이의 데이타를 얻어온다)

IS NULL (NULL 인경우 TRUE) , IS NOT NULL (NULL 이 아닌경우 TRUE)

EXISTS (데이터가 존재하면 TRUE)

LIKE 연산자 (문자열 비교)

결합 연산자 ( || ) =>단순히 문자열을 연결해서 하나의 데이타로 리턴한다.

 

비교연산자 != 예시

부서번호가 30번이 아닌 사람들의 이름과 부서번호를 출력

SQL>SELECT ename, deptno

FROM emp

WHERE deptno != 30 ;

 

논리연산자 AND 예시

부서번호가 10번이고 급여가 3000 이상인 사원들의 이름과 급여를 출력

SQL>SELECT ename, sal

FROM emp

WHERE deptno = 10 AND sal >= 3000 ;

 

논리연산자 OR  예시

직업이 SALESMAN 이거나 MANAGER 인 사원의 사원번호와 부서번호를 출력

SQL>SELECT empno, deptno

FROM emp

WHERE job = 'SALESMAN' OR job = 'MANAGER' ;

 

논리연산자 OR과 SQL 연산자 IN 비교

 

ex)OR

SQL>SELECT empno, ename, deptno

FROM emp

WHERE deptno=10 OR deptno=20 ;

ex)IN

SQL>SELECT empno, ename, deptno

FROM emp

WHERE deptno IN(10,20) ;

 

SQL 연산자 ANY와 ALL의 예시

추후에 1000,2000,3000 대신 SELECT문이 연계될 것이다.

 

SQL연산자 ANY (조건을 비교할때 어느 하나라도 맞으면 true)

급여가 1000 이상인 로우를 SELECT 하게 된다.

SQL>SELECT empno, sal

FROM emp

WHERE sal > ANY(1000, 2000, 3000) ;

 

SQL연산자 ALL 연산자(조건을 비교할때 조건이 모두 맞으면 true)

급여가 3000 이상인 로우를 SELECT 하게 된다.

SQL>SELECT empno, sal

FROM emp

WHERE sal > ALL(1000, 2000, 3000) ;

 

BETWEEN A AND B

 

A와 B 사이의 데이타를 얻어온다

급여가 1000 과 2000 사이인 사원들의 사원번호,이름,급여를 출력

SQL>SELECT empno, ename, sal

FROM emp

WHERE sal BETWEEN 1000 AND 2000 ;

 

사원이름이 'FORD' 와 'SCOTT' 사이의 사원들의 사원번호,이름을 출력

SQL>SELECT empno, ename

FROM emp

WHERE ename BETWEEN 'FORD' AND 'SCOTT' ;

 

IS NULL (NULL 인경우 TRUE) , IS NOT NULL (NULL 이 아닌경우 TRUE)

 

커미션이 NULL 인 사원의 사원이름과 커미션을 출력

SQL>SELECT ename, comm

FROM emp

WHERE comm IS NULL ;

 

커미션이 NULL 이 아닌 사원의 사원이름과 커미션을 출력

SQL>SELECT ename, comm

FROM emp

WHERE comm IS NOT NULL ;

 

EXISTS (데이터가 존재하면 TRUE)

사원이름이 'FORD' 인 사원이 존재하면 사원의 이름과 커미션을 출력

SQL>SELECT ename, comm

FROM emp

WHERE EXISTS (SELECT ename FROM emp WHERE ename='FORD');

 

LIKE 연산자 (문자열 비교)

 

사원이름이 'J' 로 시작하는 사원의 사원이름과 부서번호를 출력

SQL>SELECT ename, deptno

FROM emp

WHERE ename LIKE 'J%' ;

 

사원이름에 'J' 가 포함된는 사원의 이름과 부서번호를 출력

SQL>SELECT ename, deptno

FROM emp

WHERE ename LIKE '%J%' ;

 

사원이름의 두번째 글자가 'A' 인 사원의 이름,급여,입사일을 출력

SQL>SELECT ename, sal, hiredate

FROM emp

WHERE ename LIKE '_A%' ;

 

사원 이름이 'ES' 로 끝나는 사원의 이름,급여,입사일을 출력

SQL>SELECT ename, sal, hiredate

FROM emp

WHERE ename LIKE '%ES' ;

 

입사년도가 81년 인 사원들의 입사일과 사원번호를 출력

SQL>SELECT hiredate, empno

FROM emp

WHERE hiredate LIKE '81%' ;

 

결합 연산자 || 

단순히 문자열을 연결해서 하나의 데이타로 리턴한다.

SQL>SELECT ename || '의 직업은' || job || ' 입니다.' FROM emp ;

 

실제 예시

산술연산자 * 예시

산술연산자 활용 예시이다.  AS 를 사용하여 칼럼명 sal*1.1을 UPSAL 로 변경하였다.

 

 

BETWEEN AND

 

첫번째 실행문

기본적으로 생각되지만 오류로 실행되지 않는다

두번째 실행문

실행 가능하다.

세번째 실행문

BETWEEN AND를 사용하여 간결하다.

 

 

NULL인 데이터를 확인하는 문법이다. IS NULL과 IS NOT NULL이 있다.

 

{"originWidth":402,"originHeight":358,"style":"alignCenter","caption":"

oracle에서 ||는 연결연산자로 활용된다.

 

SET PAGESIZE

 

SET PAGESIZE 를 사용하여 한번에 보이는 행 개수를 늘리거나 줄일 수 있다.

'database > oracle' 카테고리의 다른 글

6. oracle(단일행 함수,문자 함수)  (0) 2022.07.14
5. oracle (SPOOL, HOST)  (0) 2022.07.14
3. oracle (scott, 실행순서, 데이터 양식, ASC, DESC, AS)  (0) 2022.07.13
2. oracle (ED, 명령어)  (0) 2022.07.13
오라클 정리 자료  (0) 2022.07.13