오늘은... 공부를 안 하고 하루를 그냥 보냈다. 코딩테스트만 몇 문제 풀었는데, 아직 쉬운 문제 구간이라 쉽게 풀렸다.
SQL 정규표현식 문제
정규표현식 복습!
복잡한 검색을 할 때 패턴을 구체화 할 수 있는 강력한 기능
단순히
Like ‘%word%’
문을 쓰는 것을 넘어서, 첫 번째 글자로는 어떤 패턴의 문자가 오고, 중간에 어떤 구조가 반복되고, 맨 마지막에는 어떤 문자로 끝나야 하고, 이렇게 자세한 조건을 걸어서 필터링 할 수 있다.기본적으로
REGEXP
와RLIKE
는 주어진 문자열이 정규 표현식과 일치하면 True(1)를 반환한다.SQL #1 pattern 일 경우 WHERE column_1 REGEXP 'abc' -- column_1의 행 중에서 'abc'가 포함된 경우 True #2 pattern A or pattern b WHERE column_1 REGEXP 'abc|de' -- column_1의 행 중에서 'abc' 또는 'de'가 포함된 경우 True #3 문자 그룹 WHERE column_1 REGEXP '[A-Z]' -- column_1의 행 중에서 알파벳 대문자가 포함된 경우 True -- 대문자 : A-Z / 소문자 : a-z / 숫자 : 0-9 / 한글 : 가-힣 -- 만약 대소문자 상관 없이 영어 알파벳이나 숫자 또는 한글이 들어있는 string을 출력해야 한다면 [A-Za-z0-9가-힣] 이렇게 쓸 수 있다. -- 만약 연속적인 특정 범위만 추출하고 싶다면 [A-F] 이런 식으로도 범위를 지정할 수 있다. -- 만약 e 또는 x 또는 p를 포함하는 행만 나타내고 싶으면 [exp] 이렇게 쓰면 된다. IN('e','x','p') 와 같은 결과 #4 반복 WHERE column_1 REGEXP '[a-c]*' -- column_1의 행 중에서 a-c 범위 사이 알파벳이 0회 이상 포함되는 문자열일 경우 True WHERE column_1 REGEXP '[a-c]+' -- column_1의 행 중에서 a-c 범위 사이 알파벳이 1회 이상 포함되는 문자열일 경우 True WHERE column_1 REGEXP '[a-c]?' -- column_1의 행 중에서 a-c 범위 사이 알파벳이 0회 또는 1회 포함되는 문자열일 경우 True WHERE column_1 REGEXP '[a-c]{2}' -- column_1의 행 중에서 a-c 범위 사이 알파벳이 2회 반복되는 문자열일 경우 True WHERE column_1 REGEXP '[a-c]{3,5}' -- column_1의 행 중에서 a-c 범위 사이 알파벳이 3회 이상 5회 이하 반복되는 문자열일 경우 True #5 위치 WHERE column_1 REGEXP '^[a-c]' -- column_1의 행 중에서 문자열의 시작이 a-c 범위 사이 알파벳인 경우 True WHERE column_1 REGEXP '[a-c]&' -- column_1의 행 중에서 문자열의 끝이 a-c 범위 사이 알파벳인 경우 True
알파벳 모음으로 시작하는 도시의 이름 출력하는 문제
SQL SELECT CITY FROM STATION WHERE CITY REGEXP '^[aeiou]'
'내일배움캠프_데이터분석_2기 > TIL' 카테고리의 다른 글
[TIL] camp_day54_240703 (0) | 2024.07.05 |
---|---|
[TIL] camp_day52_240701 (0) | 2024.07.01 |
[TIL] camp_day50_240626 (0) | 2024.06.26 |
[TIL] camp_day49_240625 (0) | 2024.06.25 |
[TIL] camp_day48_240624 (0) | 2024.06.24 |