내일배움캠프_데이터분석_2기/TIL

[TIL] camp_day51_240627

단ee 2024. 6. 27. 20:40

오늘은... 공부를 안 하고 하루를 그냥 보냈다. 코딩테스트만 몇 문제 풀었는데, 아직 쉬운 문제 구간이라 쉽게 풀렸다.

  1. SQL 정규표현식 문제

    • 정규표현식 복습!

      • 복잡한 검색을 할 때 패턴을 구체화 할 수 있는 강력한 기능

      • 단순히 Like ‘%word%’ 문을 쓰는 것을 넘어서, 첫 번째 글자로는 어떤 패턴의 문자가 오고, 중간에 어떤 구조가 반복되고, 맨 마지막에는 어떤 문자로 끝나야 하고, 이렇게 자세한 조건을 걸어서 필터링 할 수 있다.

      • 기본적으로 REGEXPRLIKE 는 주어진 문자열이 정규 표현식과 일치하면 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
    • 문제 : HackerRank_Weatther Observation Station 6

    • 알파벳 모음으로 시작하는 도시의 이름 출력하는 문제

        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