💡 본 글은 ‘실습과 함께하는! 데이터베이스 Oracle 12c’ 강의 내용을 바탕으로 정리하였습니다.
LIKE 검색, NULL 검색, GROUP BY HAVING
LIKE 검색
- 정확한 키워드를 모르는 경우 일부만으로 검색하는 방법
- 와일드카드를 사용하여 패턴 매칭
- LIKE 검색은 DBMS에 부담이 많이 감, LIKE에 OR 같은 논리 연산자는 중복 사용하지 않는 게 좋음
구분 | 설명 |
---|---|
% |
0 - n 글자 |
_ |
1글자(글자수를 정확하게 매핑) |
(문법)
SELECT 칼럼명 FROM 테이블명 WHERE 칼럼명 LIKE 패턴;
NULL
NULL 값
NULL
이란 해당 칼럼의 값이 없다는 의미 (해당 칼럼이NULL
을 허용하는 경우)
구분 | 설명 |
---|---|
IS NULL |
NULL 값을 갖는 칼럼 |
NULL |
NULL 아닌 값을 갖고 있는 칼럼 |
(문법)
SELECT 칼럼명 FROM 테이블명 WHERE 칼럼명 IS NULL;
SELECT 칼럼명 FROM 테이블명 WHERE 칼럼명 IS NOT NULL;
NULL 함수
- 숫자 칼럼을 연산해야 할 때
NULL
을 처리해주는 함수 NULL
값이 나오면 다른 값으로 대체해서 계산에 문제 없도록 처리SELECT
의 컬럼명으로 사용할 수 있음- 오라클 제공 함수
구분 | 설명 |
---|---|
NVL() |
NVL(NULL이 아니라면 수행할 함수, NULL일 때 대체할 값) |
NVL2() |
NVL2(함수, NULL이 아니라면 넣을 값, NULL일 때 넣을 값) |
COALESCE() |
COALESCE(칼럼명, NULL이 아니라면 넣을 값, NULL일 때 넣을 값) |
GROUP BY - HAVING
GROUP BY
- 집합함수와 같이 사용해 그룹 별 연산을 적용
(문법)
SELECT 칼럼명, 집합함수명(컬럼명) FROM 테이블명 GROUP BY 칼럼명;
HAVING
- 집합 연산에 WHERE 조건절 대체로 사용 (GROUP BY 이전에 이미 WHERE을 쓴 경우)
(문법)
SELECT 칼럼명, 집합함수명(컬럼명) FROM 테이블명 GROUP BY 칼럼명 HAVING 조건절;