ORACLE 연산자

.·2022년 4월 14일
0

ORACLE

목록 보기
3/10

산술 연산자 ( + , - , * , / )

-부서번호가 10 번인 사원들의 급여를 출력하되 10% 인상된 금액으로 출력해 보세요.

SQL>SELECT sal, sal*1.1
 FROM emp
 WHERE deptno = 10 ;

비교 연산자 ( = , != , > , < , >= , <= )

-급여가 3000 이상인 사원들의 모든 정보를 출력하세요.

SQL>SELECT *
 FROM emp
 WHERE sal >= 3000 ;

-부서번호가 30번이 아닌 사람들의 이름과 부서번호를 출력해보세요.

SQL>SELECT ename, deptno
 FROM emp
 WHERE deptno != 30 ;

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

  • 부서번호가 10번이고 급여가 3000 이상인 사원들의 이름과 급여를 출력하세요.
SQL>SELECT ename, sal
 FROM emp
 WHERE deptno = 10 AND sal >= 3000 ; 
  • 직업이 SALESMAN 이거나 MANAGER 인 사원의 사원번호와 부서번호를 출력하세요
SQL>SELECT empno, deptno
 FROM emp
 WHERE job = 'SALESMAN' OR job = 'MANAGER' ;

SQL 연산자 ( IN , ANY , ALL , BETWEEN , LIKE , IS NULL , IS NOT NULL )

<1> IN 연산자 ( OR 연산자와 비슷한 역할)

  • 부서번호가 10번이거나 20번인 사원의 사원번호와 이름, 부서번호 출력하기
SQL>SELECT empno, ename, deptno
 FROM emp
 WHERE deptno=10 OR deptno=20 ;

IN 연산자를 사용한다면 ?

SQL>SELECT empno, ename, deptno
 FROM emp
 WHERE deptno IN(10,20) ;

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

SQL>SELECT empno, sal
 FROM emp
 WHERE sal > ANY(1000, 2000, 3000) ;

--> 급여가 1000이상인 row 모두 select

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

SQL>SELECT empno, sal
 FROM emp
 WHERE sal > ALL(1000, 2000, 3000) ;

--> 조건이 다 맞아야 하므로 급여가 3000이상인 row만 select

<4>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' ;

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

null의 값 : 알 수 없음(비교불가)

-커미션이 NULL 인 사원의 사원이름과 커미션을 출력해보세요

SQL>SELECT ename, comm
 FROM emp
 WHERE comm IS NULL ;

-커미션이 NULL 이 아닌 사원의 사원이름과 커미션을 출력해보세요

SQL>SELECT ename, comm
 FROM emp
 WHERE comm IS NOT NULL ;

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

  • 사원이름이 'FORD' 인 사원이 존재하면 사원의 이름과 커미션을 출력하기
SQL>SELECT ename, comm
 FROM emp
 WHERE EXISTS (SELECT ename FROM emp WHERE ename='FORD'); 

-> select ename from emp where ename='FORD' 이게 true여야 실행

  • true를 직접 못적을 때는 10=10과 같이 표기하기
SQL> select ename, comm from emp
  2  where 10=10;
SQL> select ename, comm from emp
  2  where 10!=10;

<7>LIKE 연산자 (문자열 비교) ***

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

% : 어떤 문자열(문자 존재하지 않아도 됨)
date타입에서도 적용가능‘81%’ ->81년도 어쩌고

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%' ;

<8> 결합 연산자 ( || )

=>+와 같은 역할 , 단순히 문자열을 연결해서 하나의 데이터로 리턴한다.

오라클에서는 ||가 연결연산자(+) !!!!!!!!!

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

0개의 댓글