Oracle 12c 데이터베이스 05 - LIKE 검색, NULL 검색, GROUP BY HAVING

💡 본 글은 ‘실습과 함께하는! 데이터베이스 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 조건절;