[오라클(Oracle) 기초] in / like / is null / nvl을 이용한 조건 검색
1. IN 연산자
2. like 연산자
3. is null
4. nvl
1. IN 연산자
- IN(a, b , c...)
- a, b, c, ... 값들 중 하나라도 해당되면 참
ex) student 테이블에서 학년이 1학년이거나 2학년인 학생을 검색하여 이름, 학년 출력
1
2
3
|
select name, grade
from student
where grade in('1', '2');
|
cs |
(where grade = '1' or grade ='2' 와도 동일한 결과)
ex) emp 테이블에서 급여가 150 또는 250 또는 350인 사원을 검색하여 사원 번호, 이름, 급여 출력
1
2
3
|
select empno, ename, sal
from emp
where sal in (150,250,350);
|
cs |
(where sal = 150 or sal = 250 or sal = 350 와도 동일한 결과)
2. like 연산자
(1) 문자열 검색
ex) student 테이블에서 이름이 '김지연'인 학생의 학번, 이름을 조회
1
2
3
|
select studno, name
from student
where name = '김지연';
|
cs |
(2) like 연산자
위의 예시와 같이 검색할 정확한 문자열을 알고 있을 경우에는 문제가 없지만 성이 '김'인 학생, 이름 마지막 글자가 '연'인 학생 등 문자열의 일부분으로 검색할 경우에는 와일드카드와 like 연산자를 활용한다.
※ 와일드카드
- % : 모든 문자
- _(언더바) : 하나의 문자
ex) student 테이블에서 이름이 '김'으로 시작하는 학생의 학번, 이름 출력
1) % 사용한 경우
1
2
3
|
select studno, name
from student
where name like '김__';
|
cs |
ex) student 테이블에서 이름이 '영'으로 끝나는 학생의 학번, 이름 출력
1) % 사용한 경우
1
2
3
|
select studno, name
from student
where name like '__영';
|
cs |
ex) student 테이블에서 이름에 '수'가 들어가는 학생의 학번, 이름 출력
1
2
3
|
select studno, name
from student
where name like '%수%';
|
cs |
3. is null
null: 아직 정의되지 않았거나 미확인 값을 의미
(※ 0 또는 공백과는 전혀 다른 개념)
ex) PROFESSOR 테이블에서 아직 급여가 정해지지 않은(null) 교수의 교수 번호와 이름 출력
1
2
3
|
select profno, name
from PROFESSOR
where sal is null;
|
cs |
ex) 반대로 급여가 정해져 입력되어 있는 교수의 교수 번호와 이름 출력
1
2
3
|
select profno, name
from PROFESSOR
where sal is not null;
|
cs |
4. nvl
null과 다른 값의 연산 결과는 null이 된다. 예를 들어 두 칼럼을 더할 때 둘 중 하나의 행이 null인 경우 더한 결과도 null로 출력된다. 따라서 null 이 있는 칼럼과 연산할 경우 nvl을 활용하여 null이 0으로 출력되도록 조정할 수 있다.
ex) sal 칼럼이 null이면 sal이 0으로 출력
1
|
nvl(sal, 0)
|
cs |
ex) PROFESSOR 테이블에서 이름, 급여(sal)와 수당(comm)을 더한 '급여' 칼럼을 출력(단, comm이 null일 경우 0으로 계산)
1
2
|
select name, sal + nvl(comm, 0) as 급여
from PROFESSOR;
|
cs |
[오라클(Oracle) 기초] in / like / is null / nvl을 이용한 조건 검색
-요약-
1. IN 연산자
- in(a, b, c, ...) : a, b, c, .... 중 하나라도 일치하면 참
- not in : 일치하지 않으면 참
2. like 연산자
- % : 모든 문자 / 언더바(_) : 하나의 문자
- 문자열의 일부를 검색하여 조회 (ex. 이름 첫 글자가 '김'인 경우 : '김%' or '김__')
3. is null
- 아직 정의되지 않았거나 미확인 값
- 조건 검색할 때 in null 사용(ex. where sal is null)
4. nvl
-null인 경우 다른 값으로 출력
-ex) nvl(sal, 0) : sal 칼럼이 null이면 sal이 0으로 출력
'Database > Oracle' 카테고리의 다른 글
[오라클(Oracle) 기초] 숫자 함수( ABS / ROUND / TRUNC / MOD / CEIL / FLOOR 함수 ) (0) | 2022.04.13 |
---|---|
[오라클(Oracle) 기초] 문자 함수(대소문자 변환 / 길이 반환 / SUBSTR / INSTR 함수) (0) | 2022.04.13 |
[오라클(Oracle) 기초] 정렬(order by / asc / desc) (0) | 2022.04.12 |
[오라클(Oracle) 기초] WHERE절(조건절 검색) / 비교 연산자 / and / or / not / between (0) | 2022.04.12 |
[오라클(Oracle)기초] select/distinct/컬럼 별명 붙이기 (0) | 2022.04.12 |
댓글