LIKE 연산자와 NULL
- 사용목적
- 정확한 일치가 아닌 패턴에 만족하는 행 찾기
- 사용예시
- 이름이 '홍'으로 시작하는 데이터 찾기
- 아이디에 ' - ' 이 포함된 데이터 찾기
- 사용방법
- 조건을 'where절'에 전달하여 해당 조건에 맞는 행을 선택하는 용도이다.
- LIKE와 함께 패턴을 완성하는 두 기호를 사용한다.
- %: 글자수 제한 없는 "모든"의 의미
- _(underscore) : 하나당 한 글자의 "모든"의 의미
- LIKE 연산자를 이용한 예제
1) 이름이 A로 시작하는 직원 모두를 출력하라
-> name LIKE 'A%'
~> %는 모든이라는 의미이며 글자수 제한이 없다.
2) 이름이 A로 시작하는 4자리인 직원 모두를 출력하라
-> 'name LIKE 'A___' (underscore를 3개)
3) 중간에 이름이 O가 포함된 직원을 모두 출력하라
-> 'name LIKE '%O%'
4) 이름이 E로 끝나는 직원 모두를 출력하라
-> 'name LIKE '%E'
5) 두번째 이름이 E인 직원 모두를 출력하라
-> 'name LIKE '_E%'
- 문제1!!
- professor 테이블의 교수 id에 ' - ' 기호가 포함된 교수의 이름, id, position을 출력하라.
=> select name, id, position
from professor
where id like '%-%';
- 문제2!!
- 학생 테이블에서 여학생의 이름, 주민번호, 학년 정보를 출력하라.
~> 여학생이면 주민번호 7번째 자리가 2인 것을 이용한다.
~> 앞의 6자리는 고정이므로 _을 6번 넣기!
=> select name, jumin, grade
from student
where jumin like '______2%';
- IS NULL/ IS NOT 연산자
- NULL
- 0 또는 space 값과는 다른, 아직 지정되지 않은 상태의 데이터이다.
ex) BONUS = null -> 아직 보너스가 정의되지 않았다.
-> "보너스가 없다,", "0이다" 라고 해석하면 안됨.
- NULL을 포함한 산술 연산의 결과 NULL 리턴한다,
-> NULL을 포함한 연산에 주의한다!!!
- NULL을 포함한 데이터의 조건은 IS NULL/ IS NOT NULL로 전달한다.