PostgreSQL 데이터베이스에서 데이터 정제하기
Darryl Reeves, Ph.D.
Industry Assistant Professor, New York University
camis | name | inspection_date | score | nta | ...
---------+---------------------------------+-----------------+-------+------+-----
... | ... | ... | ... | ... | ...
41659848 | LA BRISA DEL CIBAO | 01/30/2018 | 20 | QN26 | ...
40961447 | MESON SEVILLA RESTAURANT | 03/19/2019 | 50 | MN15 | ...
50063071 | WA BAR | 05/23/2018 | 15 | MN17 | ...
50034992 | EMPANADAS MONUMENTAL | 06/21/2019 | 17 | MN35 | ...
50095871 | ALPHONSO'S PIZZERIA & TRATTORIA | 01/16/2020 | 10 | MN28 | ...
41104041 | THE SPARROW TAVERN | 09/17/2019 | 13 | QN72 | ...
50016937 | BURGER KING | 09/14/2018 | 12 | QN55 | ...
50066469 | DARBAR'S CHICKEN & RIBS | 08/07/2017 | 11 | QN55 | ...
41195691 | F & J PINE RESTAURANT | 05/02/2019 | 26 | BX49 | ...
50015706 | EL RINCONCITO DE LOS SABORES | 12/18/2019 | 20 | QN35 | ...
... | ... | ... | .. | ... | ...
NTA 코드의 유효 접두사

SELECT * FROM restaurant_inspection WHERE nta LIKE 'QN544';
SELECT * FROM restaurant_inspection WHERE nta = 'QN544';
패턴 매칭 문자
% - 길이 0 이상의 임의 문자 시퀀스와 일치
_(밑줄) - 임의의 한 글자와 일치
SELECT
*
FROM
restaurant_inspection
WHERE nta LIKE 'QN%';
SELECT
*
FROM
restaurant_inspection
WHERE nta LIKE 'QN%'
AND nta NOT LIKE 'QN__';
LIKE의 패턴 매칭은 제한적임SELECT
camis, name, inspection_date, score, nta
FROM
restaurant_inspection
WHERE nta SIMILAR TO 'QN%' AND nta NOT SIMILAR TO 'QN__';
| 메타문자 | 용도 | 예제 RE | 예시 일치 |
|---|---|---|---|
\d |
숫자(0-9)와 일치 | \d\d\d |
'345' |
? |
이전 문자 0개 또는 1개와 일치 | x\d? |
'x5' |
+ |
이전 문자 1개 이상과 일치 | \d+ |
'10' |
* |
임의 문자 0회 이상과 일치 | \d* |
'3081' |
[] |
대괄호 안의 문자 중 하나와 일치 | [a-z] |
'f' |
SELECT
camis, name, inspection_date, score, nta
FROM
restaurant_inspection
WHERE nta SIMILAR TO 'QN%' AND nta NOT SIMILAR TO 'QN__';
SELECT
camis, name, inspection_date, score, nta
FROM
restaurant_inspection
WHERE
nta NOT SIMILAR TO '[A-Z][A-Z]\d\d';
camis | name | inspection_date | score | nta
---------+--------------------+-----------------+-------+------
41659848 | LA BRISA DEL CIBAO | 01/30/2018 | 20 | Q26
41104041 | THE SPARROW TAVERN | 09/17/2019 | 13 | QN723
PostgreSQL 데이터베이스에서 데이터 정제하기