inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

공공데이터 CSV 파일을 이용해 테이블 만들기

14강 도로명 주소DB 구축(2)

[14강 도로명 주소db 구축(2)]관련

437

류재안

작성한 질문수 58

1

안녕하세요.

평소에 궁금했던 분야였고 업무에 활용하고 싶었는데 아무래도 sql 초급수준이다 보니 어떻게 접근을 해야 할지 몰랐는데 본 강좌가 무척 도움이 되었습니다.

이에 감사드리며 다소 기초적일 수 있는 질문 두가지를 드립니다. 아무리 생각해도 제 수준에서는 알 수가 없어서요.

ㅡㅡ;

 

  1. 도로명주소db 활용방법 중 도로명코드의 update 쿼리문 중, rownum=1 을 사용하는 이유는 뭔가요?

     

    어차피 where 조건으로 B.도로명코드=A.도로명 코드 AND B.읍면동일련번호 = A.읍면동일련번호 로 하면 한행만 나오지 않나요??

  1. 간단히 쿼리문으로 조회를 해봤는데요. 조건상 1개의 행만 나와야 할 거 같은데 두개가 나오는 이유를 모르겠습니다. ( 23.10월 주소db 전체분 을 반영하였습니다.)

 

sql mariadb heidisql

답변 2

1

SQL뱅크

안녕하세요. 문의하신 내용에 대해 답변드립니다.

1.일반적으로 ORACLE에서 ROWNUM이란 출력된 결과값들에 대한 일련번호를 뜻합니다. 다시 말해 ROWNUM=1이란, 결과로써 출력된 집합 레코드들 중 첫 번째 건을 의미합니다.

해당 경우 UPDATE 문장의 문법 특성상,

SET (A,B,C) = (SELECT A,B,C ...)중, (SELECT 절)의 결과 집합이 2건 이상일 때 반드시 오류가 발생합니다. 중복된 동일 건들이 2건 이상 발생해도 오류가 나며 서로 다른 건들이 2건 이상 발생해도 오류가 납니다. 따라서 해당 SQL은 그러한 경우를 미연에 방지하기 위해 동일한 값들이 발생하더라도 첫 번째 건 하나만 추출하여 UPDATE 한다면 정상 처리될 것이라 판단하여 작성된 것으로 여겨집니다. (물론 결과값들은 동일한 값들이 발생될 것입니다.)

(참고로, WHERE절 이하의 EXISTS 처리는 조금 다릅니다. EXISTS문의 경우는 결과 레코드 집합이 단 1건이라도 존재하는 것을 내부 처리 중 확인하게 되면 더 이상 해당 부분 조건절을 처리하지 않고 바로 TRUE를 반환하는 방식입니다. 문의하신 내용과는 상관없지만 참고 바랍니다.)

 

2.문의하신 내용에서

'도로명주소.관리번호' 의 데이터 타입이 VARCHAR 입니다. 따라서 문자열 비교 시 문법인 외따옴표(')로 묶어야 정상적인 비교 작업이 수행됩니다. 예시 주신 바와 같이 정수값 등의 포맷으로 비교하게 되면 최대 범위값 등의 제한으로 일부만 비교되어 뒷자리 값 판단이 어려운 나머지 오류데이터들이 출력될 수 있습니다.

일반적으로 코드값이 입력되는 컬럼의 데이터타입은 제아무리 숫자만 입력될 것이라 예상되더라도 100% 확신이 없는 이상 문자형(VARCHAR)으로 정의되어야 하며, 또한 비교 시에도 반드시 외따옴표(')로 묶어 비교되어야 정상처리를 보장할 수 있습니다.

 

1

류재안

네. 궁금증이 풀렸네요. 친절한 답변 감사합니다.

이런 저런 강의를 들을수록 부족한 부분이 느껴지는 것 같습니다.

배워야 할 것들이 많네요.

아무래도 sql강의도 추가로 들어야 하겠네요.

0

SQL뱅크

안녕하세요 류재안 님.

최근 강좌에 문의하신 질의와 답변들이 다른 수강생들에게도 적절한 참고자료가 될 것 같습니다.

마침 SQL강좌에 관심을 가지시는 것으로 생각되어, 부족하지만 감사의 뜻으로 MariaDB와 관련되어 만들어진 내부함수 강좌에 대한 무료 쿠폰을 발급해 드리고자 합니다.

혹시 의향이 있으시다면 아래 주소로 메일 한 통 남겨주십시오. 쿠폰 코드를 보내드리도록 하겠습니다.

메일주소 : baraboki.pub@gmail.com

쿠폰적용 강좌 : MariaDB 클라이언트 개발, 내부함수 편

강좌에 관심을 가져주셔서 감사드립니다.

드랍 테이블로 지운 ordes에 대해서 질문

0

20

1

문제 풀이 1번 질문

0

28

1

아주 작은 정오표 전달드립니다.

0

52

2

mysql워크벤치를 실행할때마다 오류가 뜹니다. 해결 방법좀 가르켜주세요.

0

44

1

함수기반 인덱스

0

29

2

날짜 인덱스관련 질문

0

26

1

복합인덱스 확인법

0

23

0

order_product 까마귀발

0

44

2

공통 코드 , 계층 구조 질문

1

37

1

77번 문제

0

27

1

76번 문제

1

34

2

64번 문제 관련

0

37

2

2,3차 정규화 질문

0

43

2

수강완료 후 문의 드립니다.

1

47

2

실전 모의고사 난이도

0

60

2

Part2 기출 문제 및 해설 자료 파일 없음 형태

0

53

2

21번 마지막 설명에 대해 질문이 있습니다.

0

49

2

노랭이67번

0

36

1

[DB설계] 탈퇴 유저의 구독 정보 유지 및 이메일 마스킹 관련 질문입니다.

0

53

1

자연키 vs 대리키 실무질문

0

28

1

38번 문제 보기 3,4번

1

47

3

14번 문제

1

45

2

[14강]도로명주소 DB구축(1) 관련

1

523

2

[13강.zip_code_DB]변경분 처리sql관련

0

261

1