OracleDB 연산자

20180423 OracleDB

가끔가다 OracleDB가 접속이 안 될 때가 있습니다. 그럴 경우, 서비스가 중단되어있는지 확인 해 보는것이 좋습니다.

만약에 밑줄이 그어진 부분이 중단되어있었다면, 서비스를 재 시작하는 것으로 문제를 해결 할 수 있습니다.

연산자

논리 연산자는 따로 다루지 않겠습니다. 하지만 한 가지 중요한 점은 NOT →AND→ OR 순으로 우선순위가 있다는 것입니다.

  • BETWEEN 연산 : 중간에 있는 값을 질의 할 때 사용합니다.
select ename, sal From emp where sal>=2500 and sal <=3500;

select ename, sal From emp where sal between 2500 and 3500;

위의 두 코드의 결과는 같습니다.

select ename, sal From emp where sal between 3500 and 2500;

위의 질의는 결과값이 나타나질 않습니다.  OracleDB에서는 지정 형식이 작은 수 부터 큰 수 입니다.

 

  • IN 연산 : 열거를 할 때에 씁니다. 성능적으로도 구문적으로도 뛰어납니다.
select * from emp where empno= 7369 or EMPNO= 7521 or empno = 7782;
select*from emp where empno in (7369,7521,7782);


반대로 위의 질의와 정 반대의, 즉 7369, 7521, 7782 가 아닌 결과를 찾을 때에는 NOT IN 을 씁니다.

select * from emp where empno!= 7369 and EMPNO!= 7521 and empno!= 7782;
select*from emp where empno Not in (7369,7521,7782);

 

  •  LIKE 연산 : 스트링 값에 대한 와일드 카드 검색을 위해서 사용.
    emp 테이블에서 이름이'A'자로 시작하는 사람을 찾습니다.
select*from emp where ename like 'A%';

select*from emp where ename like '_A%';

이런 식으로 넣으면 이름 두 번째 자리에서 부터 'A'자로 시작하는 사람을 찾습니다.

select*from emp where ename like '%DAM%';

이런 식으로 여러가지 방식으로 응용이 가능합니다. 여담으로 MyBatis에서는 '%'||ENAME||'%' 이런식으로 구문이 조금 다르다고 합니다.