논리연산자 먼저 살펴보자.
and: 모든 조건을 만족하는 대상 선택(교집합)
or: 한 조건을 만족하는 대상 선택(합집합)
not: 부정연산자(여집합)
부정연산자인 not의 경우에는 정해진 위치가 있다.
- not between, not in, not like, is not null
예제) emp에서 10번 부서이면서 급여가 4000 이상인 직원의 이름, 부서번호, 급여 출력
예제) emp에서 job이 manager 이거나 clerk 이면서 급여가 2000 미만인 직원의 이름, job, 급여 출력
manager는 급여가 2000미만은 없나보다. manager가 되어야겠다.
논리연산자에는 우선순위가 있다.
not > and > or 순이 되겠다.
마지막으로 기타연산자이다.
1) between A and B : A 이상 B 이하
예를 들어 급여(sal)가 2000이상 3000이하를 만족하는 직원의 이름, 급여를 출력하는 경우에는
select ename, sal
from emp
where sal >= 2000
and sal < =3000;
으로도 작성할 수 있지만 아래와 같이 작성할 수 있다.
select ename, sal
from emp
where sal between 2000 and 3000;
다만 '미만' 이나 '초과'의 범위에 속하게 되면 전자처럼 작성하여야 한다.
2) in 연산자: 포함연산자
emp에서 이름이 smith 또는 allen인 직원의 이름, 사번을 출력하고자 한다면
select ename, empno
from emp
where ename = 'SMITH'
or ename = 'ALLEN';
으로 작성할 수 있으나 아래와 같이 작성도 가능하다.
select ename, empno
from emp
where ename in ('SMITH', 'ALLEN');
오 그렇다면.. 위의 논리연산자 마지막 예제에 in을 적용시켜보자.
똑같이 나왔다. 역시 매니져가 되어야....
마지막으로 패턴연산자인 like를 살펴보자.
like는 정확하게 일치하지 않아도 되는 일부로 조건 전달 시 사용한다.
예를 들자면 A로 시작하는~, ~로 끝나는, 두 번째 글자가 ~인 등이 있다.
like와 함께 사용하는 기호로 %와 _(언더바)가 있다.
%는 자리수 상관 없이 모든
_ 는 하나당 한 자리수의 모든
emp에서 S로 시작하는 직원은
select *
from emp
where ename like 'S%';
로 작성하면 된다.
이와 마찬가지로 S로 시작하는 두 글자 이름은
select
from emp
where ename like 'S_';
그리고 emp에서 이름의 두 번째 글자가 C인 직원을 출력하고자 한다면
select *
from emp
where ename like '_C%'';
로 작성하면 된다.
복습 후기
오늘은 학원 첫 날이어서 오티도 진행했음에도 진도를 좍좍 나갔다.
강사님은 진도가 첫 날이라 빠르지 않고 설치 위주로 진행했다고 하셨는데 내일이 두렵다.
내일은 오라클 설치도 없을 거고 순수하게 수업만 나가게 될텐데 무서워졌다.
어쨌든, 복습을 하면서 과거 포트란 배울 때의 기억이 새록새록 올라왔다.
그 때는 전공이라 1년 과정으로 배웠는데 이번엔 sql만 3주 과정이라니 갑자기 또 무서움이 엄습했다.
이렇게 6개월을 버텨내야 하다니. 할 수 있겠지. 할 수 있다.
'배우기 > 복습노트[oracle sql]' 카테고리의 다른 글
[복습] SQL | Oracle 문자 함수: 문자열 위치 함수(instr), 문자열 길이 함수(length) (1) | 2023.10.27 |
---|---|
[복습] SQL | Oracle 문자 함수: 대소치환 함수(upper, lower, initcap), 문자추출 함수(substr) (0) | 2023.10.27 |
[복습] SQL | Oracle 테이블 레이아웃 확인 방법과 Null의 개념 (0) | 2023.10.26 |
[복습] SQL | Oracle 정렬(오름차순, 내림차순)과 연결연산자 || (0) | 2023.10.26 |
[복습] SQL | Oracle 필터링 기능을 하는 where절과 비교연산자 (0) | 2023.10.26 |