-
5.SQL연산자 : IN, BETWEEN A AND B, LIKE, IS NULL, NOTOracle 2023. 7. 31. 14:35
5.4 다양한 SQL연산자
5.4.1 IN : 목록 연산자
select * from emp where job = 'PRESIDENT' or job = 'ANALYST' or job = 'CLERK';
select * from emp where job IN ('PRESIDENT', 'ANALYST', 'CLERK');
위의 두 코드가 같은 결과를 반환한다.
활용해보자.
Q. 업무가 'PRESIDENT', 'ANALYST', 'CLERK'인 사원 중 81년도에 입사한 사원 정보를 출력하는 쿼리를 작성하세요.
desc: 테이블의 구조를 보여주는 명령어
NUMBER(P[, S]) P: 최대 ~38, 전체 숫자의 자릿수, S: 소수점 아래 자릿수
VARCHAR2(size) 가변 길이 문자 데이터 타입(저장되는 문자열의 실제 크기만큼만 자원 사용), size: 바이트 , 최대 ~8000byte
DATE: date 타입에서 날짜만 저장하면, 시간값은 자동으로 0시 0분 0초가 됨5.4.2 BETWEEN A AND B
A이상 B 이하
select * from emp where sal >= 1300 and sal <= 3000;
select * from emp where sal between 1300 and 3000;
select * from emp where ename between 'C' and 'G';
위 문제를 between을 쓰면,
5.4.3 LIKE: 검색 연산자
- _: underscore. 하나의 문자를 대체
- ex) '_AMES' ⇒ 빈 자리에 어떤 문자가 와도, 뒤의 'AMES'만 동일하면 선택
- %: 없거나 하나 또는 여러 문자를 대체
- ex) '%ORACLE%' ⇒ ORACLE의 앞 뒤로 아무 문자도 없어도, 하나의 문자가 있어도, 그 이상의 문자가 있어도 선택
SELECT * FROM emp WHERE ename LIKE '_I%';
SELECT * FROM emp WHERE sal LIKE '2%';
✽ 단, LIKE는 검색 대상을 문자열로 인식한다. 따라서
- 따옴표를 꼭 써줘야 하며
- 년도는 SQL 기본 형식(곧, 82=>1982)를 지원하지 않아, 82로 저장된 년도를 1982로 검색할 경우 선택되지 않는다.
- 날짜와 숫자를 검색할 때는 유의할 것
✽ ESCAPE절: 데이터에 '_' 문자나 '%'문자가 포함되어 있다면?
X_Y문자를 앞부분에 가지고 있는 데이터를 찾으려면 다음의 코드를 쓴다.
SELECT * FROM emp WHERE ename LIKE 'X₩_Y' ESCAPE '₩';
5.4.4 IS NULL 연산자: NULL값 비교
SELECT * FROM emp WHERE comm = null;
위 코드는 작동하지 않는다.
SELECT * FROM emp WHERE comm IS NULL;
null 값을 조회할 때는 IS NULL 연산자를 사용한다.
5.4.5 NOT 연산자
NOT IN NOT BETWEEN A AND B NOT LIKE IS NOT NULL
NOT은 기존 연산자의 의미를 반전 시킨다. 곧,
조건에 해당하는 데이터를 제외한 나머지 데이터들을 조회한다.
'Oracle' 카테고리의 다른 글
6.1 오라클 데이터베이스 함수의 종류 (0) 2023.07.31 5. 집합연산자: UNION, UNION ALL, MINUS, INTERSECT (0) 2023.07.31 4.5 ORDER BY (0) 2023.07.25 4.3 별칭 4.4 연결 연산자 || (0) 2023.07.25 4.2 select 문장의 구성, 4.3 select 절의 기본과 표현식 (0) 2023.07.25 - _: underscore. 하나의 문자를 대체