반응형
01. 정확한 정보가 아닐 때 포함 문자열만 검색하고 싶을 때 : LIKE
어떤 정보를 정확히 알고 있진 않은데 포함 문자열을 알고 있을 때가 있다. 혹은 특정 문자열을 포함하고 있는 열들의 자료가 필요할 때가 있다. 그럴 때 사용 하는 것이 LIKE이다.
SELECT COLUMN
FROM TABLE
WHERE COLUMN LIKE 'THIS'
;
THIS안에 조건을 넣어주면 된다. 위의 경우에는 THIS라는 문자열만 검색이 된다.
02. 조건 작성 방법
WHERE과 LIKE를 쓸 때는 적절한 조건을 작성해 줘야 원하는 결과값을 얻을 수 있다.
상황 | 작성해야 하는 조건 | 상세설명 |
A로 시작하는 모든 결과값을 원할 때 | 'A%' | |
A로 끝나는 모든 결과값을 원할 때 | '%A' | |
A가 포함된 모든 결과값을 원할 때 | '%A%' | |
A로 시작하는 결과값 중 글자수를 정확히 알 때 *_은 원하는 만큼 사용가능 |
'A_' | A뒤에 문자 한개 있는 경우 |
'A__' | A뒤에 문자 두개 있는 경우 | |
글자수를 알고 특정 문자의 위치를 정확히 알 때 *_은 원하는 만큼 사용가능 |
'_B' | B앞에 문자 한개 있는 경우 |
'_B_' | B앞뒤로 문자 한개씩 있는 경우 | |
'_b_k' | b와 k의 위치를 정확히 알고 b앞뒤로 문자 한개씩 있는 경우 | |
특정 문자가 중간에 있고 특정부분에서는 문자수를 알고 특정부분은 모를 때 | '_av%' |
EXAMPLE
김씨인 학생들의 이름과 전화번호를 알려주세요.
SELECT NAME, TEL
FROM CLASS
WHERE NAME LIKE '김%'
;
이름이 네글자이고 세번째 글자가 '재'인 학생의 이름과 전화번호를 알려주세요.
SELECT NAME, TEL
FROM CLASS
WHERE NAME LIKE '__재_'
;
이름 두번째 글자가 '진'인 학생의 이름과 전화번호를 알려주세요.
SELECT NAME, TEL
FROM CLASS
WHERE NAME LIKE '_진%'
;
03. 특정 조건을 갖고 있지 않은 결과값을 원할 때 : NOT LIKE
특정 조건을 만족하는 결과를 LIKE로 얻었다면 반대의 결과는 NOT LIKE를 이용해서 얻을 수 있다.
SELECT COLUMN01, COLUMN02
FROM TABLE
WHERE COLUMN 01 NOT LIKE 'THIS'
;
EXAMPLE
성이 Ed로 시작하지 않는 학생들의 이름과 전화번호를 알려주세요.
SELECT FIRST_NAME, LAST_NAME, TEL
FROM CLASS
WHERE FIRST_NAME NOT LIKE 'Ed%'
;
반응형
'ICT > SQL' 카테고리의 다른 글
SQL 문법 | 데이터 조회 및 필터 | ALIAS (0) | 2021.08.28 |
---|---|
SQL 문법 | 데이터 조회 및 필터 | WHERE IS NULL (0) | 2021.08.28 |
SQL 문법 | 데이터 조회 및 필터 | WHERE BETWEEN (0) | 2021.08.28 |
SQL 문법 | 데이터 조회 및 필터 | FETCH (0) | 2021.08.28 |
SQL 문법 | 데이터 조회 및 필터 | LIMIT & OFFSET (0) | 2021.08.28 |
댓글