논리 연산자, 텍스트 마이닝 AND, OR, IN, LIKE, TRIM 예시

전영덕·2023년 6월 27일
0

SQL책 정리

목록 보기
6/10

논리 연산자

AND 연산자

select 열이름1,열이름2
from 테이블명
where 조건절1 and 조건절2
;

필터랑 히고 싶은 조건절1과 조건절2 를 모두 만족하는 결과값이 나온다.

벤다이어그램으로 치면 교집합이다.

OR 연산자

select 열이름1,열이름2
from 테이블명
where 조건절1 or 조건절2
;

필터링 히고 싶은 조건절1과 조건절2 의 둘 중 하나가 만족하는 결과값이 나온다.

벤다이어그램으로 치면 합집합이다.

IN , NOT IN

select 열이름1, 열이름2
from 테이블명
where 바교할열이름 in(조건1, 조건2)
;
select *
from employee e
where LAST_NAME in (King, james)
;
  • IN은 OR연산자가 여러 번 사용될 경우 보기쉽게 나타내기 위해 사용한다.

NOT은 부정의 의미이다. 즉, 조건절의 조건이 아닌 경우를 출력하게 된다.

텍스트 마이닝

텍스트 마이닝 : 텍스트를 통해서 데이터를 검출하는 것

LIKE연산자를 이용한 필터링

1. 앞은 알고 뒤에 나오는 문자들을 알 수 없는 경우

select 열이름
from 테이블명
where 열이름 like '찾고싶은문자%'
;

select *
from employee e
where LAST_NAME like 'jame%'
;

2. 뒤는 알고 앞에 나오는 문자들을 알 수 없는 경우

select 열이름
from 테이블명
where 열이름 like '%찾고싶은문자'
;

select *
from employee e
where LAST_NAME like '%ames'
;

3. 앞, 뒤 둘다 문자들을 알 수 없는 경우

select 열이름
from 테이블명
where 열이름 like '%찾고싶은문자%'
;

select *
from employee e
where LAST_NAME like '%ame%'
;

4. 앞은 알고 뒤에 나오는 문자를 알 수 없는 경우 이면서 글자수는 아는 경우(가 1개면 1개, 가2개면 2개)

select 열이름
from 테이블명
where 열이름 like '찾고싶은문자_'
;

select *
from employee e
where LAST_NAME like 'jame_'
;

5. 뒤는 알고 앞에 나오는 문자를 알 수 없는 경우 이면서 글자수는 아는 경우(가 1개면 1개, 가2개면 2개)

select 열이름
from 테이블명
where 열이름 like '_찾고싶은문자'
;

select *
from employee e
where LAST_NAME like '_ames'
;

6. 시작과 끝 문자만 아는 경우

select 열이름
from 테이블명
where 열이름 like '첫글자%마지막글자'
;

select *
from employee e
where LAST_NAME like 'j%s'
;

select *
from employee e
where LAST_NAME like 'j___s'
;
# 글자수가 5개인것을 알면 이렇게도 될듯

7. 특정 글자를 원하지 않는 경우

select 열이름
from 테이블명
where 열이름 not like '%원하지않는문자%'
;

select *
from employee e
where LAST_NAME not like '%me%'
;

와일드 카드

와일드카드 문자란(Wildcard character)문자란 특정한 문자 또는 문자들을 대체하기 위해 사용하는 문자를 의미한다.
% : 숫자 0 또는 문자들을 대체하기 위해 사용함
_ : 한 개의 단어를 대체하기 위해 사용함(책에는 단어라고 되어있는데 이거 단어가 아니라 문자아닌가?)

공백제거 TRIM

  1. 오른쪽 공백 제거하기
select 열이름1, RTRIM(열이름2)
from 테이블명
;
  1. 왼쪽 공백 제거하기
select 열이름1, LTRIM(열이름2)
from 테이블명
;
  1. 양쪽 공백 제거하기
select 열이름1, TRIM(열이름2)
from 테이블명
;

0개의 댓글