728x90
최근 쿼리짜는 능력을 향상시키고 싶다는 생각에 SQL을 기초부터 공부해보기로 결심했다. 이 게시글은 이틀 동안 DataCamp의 Introduction to SQL 코스를 통해 기초부터 공부하며 내 자신이 잊지 않길 바라는 마음에서 공부한 내용을 기록한 글이다.
LIKE 연산자
WHERE절을 이용해 텍스트 데이터를 필터링 할 수 있으나, 정확한 텍스트가 아닌 패턴으로 검색하고자 할 때 LIKE 혹은 NOT LIKE연산자를 사용할 수 있다. 이를 위해 와일드 카드를 사용해 텍스트를 대치시킬 수 있다.
와일드 카드(%, _)
'%'는 0, 1, n개의 텍스트와 대치된다. 아래 쿼리는 'DataCamp', 'DataC', 'Data' 등 name컬럼의 값이 'Data'로 시작하는 회사의 이름을 반환한다.
SELECT name
FROM companies
WHERE name LIKE 'Data%';
'_'는 1개의 텍스트와 대치된다. 아래의 쿼리는 'Ara Celi', 'Aramis Knight', 'Arben Bajraktaraj' 등 두 번째 글자로 'r'이 오는 사람 이름을 반환한다.
SELECT name
FROM people
WHERE name LIKE '_r%';
마지막으로, 간단하게 아래의 예를 두어 '%'와 '_'의 사용되는 경우를 생각해볼 수 있다.
SELECT
'FOO' LIKE 'FOO', -- true
'FOO' LIKE 'F%', -- true
'FOO' LIKE 'F_', -- false
'FOO' LIKE '_O_', -- true
'FOO' LIKE '_O'; -- false
;
NOT LIKE 연산자
만약 명시한 패턴과 매치하지 않는 레코드를 찾기 위해서는 NOT LIKE 연산자를 사용할 수 있다. 아래의 쿼리는 '50 Cent', 'B.J. Novak', 'Babak Najafi' 등 첫 글자가 A로 시작하지 않는 사람 이름을 반환한다.
SELECT name
FROM people
WHERE name NOT LIKE 'A%';
반응형
'Database > PostgreSQL' 카테고리의 다른 글
SQL) OUTER JOIN (0) | 2021.05.11 |
---|---|
SQL) INNER JOIN, CASE문, INTO (0) | 2021.05.01 |
SQL) GROUP BY절, HAVING절 - 그룹화하기 (0) | 2021.04.30 |
SQL) DISTINCT를 통한 중복 제거, ORDER BY 절을 통한 레코드 정렬 (0) | 2021.04.30 |
SQL) 산술연산자, 집계 함수, AS(Alias), BETWEEN (0) | 2021.04.30 |