패턴 매칭

SQL Server 데이터베이스에서 데이터 정제하기

Miriam Antona

Software Engineer

패턴 매칭 - 소개

SELECT * FROM series
| id  | name            | contact_number | ... |
|-----|-----------------|----------------|-----|
| 1   | Adventure Time  | 555-906-8845   | ... |
| 2   | Dexter          | 555-156-8845   | ... |
| 3   | Futurama        | 555-210-9951   | ... |
| 4   | Game of Thrones | 555-543-6641   | ... |
| ... | ...             | ...            | ... |
  • 유효한 번호: ###-###-####
    • 첫 번째와 네 번째 숫자: 2–9
    • 나머지: 0–9
  • 잘못된 번호: 555-156-8845
SQL Server 데이터베이스에서 데이터 정제하기

패턴 매칭 - 소개

  • SQL Server는 완전한 정규식 기능을 제공하지 않습니다.
  • SQL Server는 LIKE로 패턴 매칭을 수행할 수 있습니다.
  • 정규식을 완전히 사용하려면 확장을 설치해야 합니다.
SQL Server 데이터베이스에서 데이터 정제하기

패턴 매칭 - LIKE

  • 문자열이 지정한 패턴과 일치하는지 확인합니다
SQL Server 데이터베이스에서 데이터 정제하기

패턴 매칭 - LIKE

  • 문자열이 지정한 패턴과 일치하는지 확인합니다
와일드카드 문자 설명 예시
% 길이 0 이상 임의의 문자열 WHERE contact_number LIKE '555-%'
_ (밑줄) 임의의 한 글자 WHERE contact_number LIKE '___-___-____'
[] 지정한 범위/집합 내 임의의 한 글자 WHERE contact_number LIKE '[2-9][0-9][0-9]-[2-9][0-9][0-9]-[0-9][0-9][0-9][0-9]
[^] 지정한 범위/집합에 속하지 않는 임의의 한 글자 WHERE contact_number LIKE '[^2-9]'
SQL Server 데이터베이스에서 데이터 정제하기

% 예시 - 패턴 매칭

SELECT name, contact_number
FROM series
WHERE contact_number LIKE '555%'
| name            | contact_number |
|-----------------|----------------|
| Adventure Time  | 555-906-8845   |
| Dexter          | 555-156-8845   |
| Futurama        | 555-210-9951   |
| Game of Thrones | 555-abc-6641   |
| ...             | ...            |
SQL Server 데이터베이스에서 데이터 정제하기

% 예시 - 패턴 매칭

SELECT 
    name, 
    contact_number
FROM series
WHERE contact_number NOT LIKE '555%'
| name            | contact_number |
|-----------------|----------------|
| The Good Doctor | 000-930-1274   |
SQL Server 데이터베이스에서 데이터 정제하기

대괄호([]) 예시 - 패턴 매칭

SELECT 
    name, 
    contact_number
FROM series
WHERE contact_number LIKE '[2-9][0-9][0-9]-[2-9][0-9][0-9]-[0-9][0-9][0-9][0-9]'
| name           | contact_number |
|----------------|----------------|
| Adventure Time | 555-906-8845   |
| Futurama       | 555-210-9951   |
| Homeland       | 555-985-6314   |
| Westworld      | 555-456-1234   |
| ...            | ...            |
SQL Server 데이터베이스에서 데이터 정제하기

대괄호([]) 예시 - 패턴 매칭

SELECT 
    name, 
    contact_number
FROM series
WHERE contact_number NOT LIKE '[2-9][0-9][0-9]-[2-9][0-9][0-9]-[0-9][0-9][0-9][0-9]'
| name            | contact_number |
|-----------------|----------------|
| Dexter          | 555-156-8845   |
| Game of Thrones | 555-abc-6641   |
| The Good Doctor | 000-930-1274   |
SQL Server 데이터베이스에서 데이터 정제하기

연습해 봅시다!

SQL Server 데이터베이스에서 데이터 정제하기

Preparing Video For Download...