728x90
반응형
SMALL
■ NULL 연산자
- NULL 값을 체크하는 연산자
- IS NULL, IS NOT NULL
SELECT *
FROM hr.employees
WHERE commission_pct IS NULL;
SELECT *
FROM hr.employees
WHERE commission_pct IS NOT NULL;
■ LIKE 연산자
- 문자 패턴만 찾는 연산자
- % : 0개 이상의 문자를 찾을때 사용
- _ : 1개 문자를 찾을때 사용
SELECT *
FROM hr.employees
WHERE last_name LIKE 'K%';
SELECT *
FROM hr.employees
WHERE last_name LIKE '_i%';
SELECT *
FROM hr.employees
WHERE last_name LIKE '__n%';
- ESCAPE '\' : LIKE 연산자 사용시에 % 또는 _ 를 순수한 문자로 인식할 수 있는 방법.
- ESCAPE '(부호)' (부호) 기본적으로는 \ 으로 쓰나, 다양한 기호를 쓸 수 있다.
ex)
JOB_ID
-------
HR_REP
HRREP
HR%REP <-
HR_PROG
HR%PROG <-
HR_%REG
[문제]JOB_ID 값 중에 HB%로 시작되는 패턴을 추출해야 한다.
SELECT *
FROM hr.employees
WHERE job_id LIKE 'HR\%%' ESCAPE '\';
SELECT *
FROM hr.employees
WHERE last_name LIKE 'K%';
-- 문자형 타입으로 형변형 후 LIKE 쓰기
SELECT *
FROM hr.employees
WHERE hire_date LIKE '02%';
/*
- 주의!! LIKE 연산자는 문자패턴을 찾는 연산자이기 떄문에 기준컬럼이 문자 컬럼 아닌 다른 유형의 타입의 컬럼을 사용하면 내부적으로 문자타입의 컬럼으로 형변환을 해야한다.
- 주의!! INDEX 가 걸려있는 컬럼이 형변환이 발생하면 인덱스 스캔이 아닌 table full scan 이 발생한다.
(table full scan 뜻 : ex) 두꺼운 책을 정독하면서 한 단어를 찾는 거와 같은 것이다.)
*/
[문제]employees 테이블에 있는 데이터 중에 job_id 가 SA로 시작되고 salary 값이 10000 이상 받는 사원들의 정보를 출력해주세요.
SELECT *
FROM hr.employees
WHERE job_id LIKE 'SA%'
AND salary >= 10000;
[문제]last_name의 세번째 문자가 'a' 또는 'e' 글자가 포함된 사원들의 정보를 출력해주세요.
SELECT *
FROM hr.employees
WHERE last_name LIKE '__a%'
OR last_name LIKE '__e%';
[문제] employees 테이블에 있는 데이터 중에 job_id 가 SA로 시작되고 salary 값은 10000 이상 받고 2005년도에 입사한(hire_date) 사원들의 정보를 출력해주세요
SELECT *
FROM hr.employees
WHERE job_id LIKE 'SA%'
AND salary >= 10000
AND hire_date BETWEEN '05/01/01' AND '05/12/31' ;
728x90
반응형
LIST
'Data Base > Oracle SQL' 카테고리의 다른 글
23.10.10. Oracle SQL 숫자 함수, 날짜 함수 (1) | 2023.10.10 |
---|---|
23.10.06. Oracle SQL 정렬(SORT), 함수(function), 문자함수 (0) | 2023.10.06 |
23.10.06. Oracle SQL WHRER 절, IN 연산자 (0) | 2023.10.06 |
23.10.06. Oracle SQL ② SELECT 문 (0) | 2023.10.06 |
23.10.05. Oracle SQL ① SELECT문 (1) | 2023.10.05 |