인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

오늘도열심히님의 프로필 이미지
오늘도열심히

작성한 질문수

[2024 리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]

[7:35] 데이터타입 관련 질문

작성

·

162

0

[7:35] 부터 설명하셨던 내용 잘 이해했습니다.
근데 하나 궁금한 점이 있어서 질문드려요.
items table말고,
ranking table에서 item_ranking를 TINYINT로 선언을 했는데,
그 아래 sql 변수에 str(item_info['ranking'])을 넣어줄때 ' '따옴표를 감싸줘서, sql.replace('\n', '') 결과에서 해당값이 '1'로 나온 것을 확인할 수 있었습니다.
즉, table 에서는 TINYINT로 선언을 했는데, 들어간 값은 문자열이라고 생각했습니다. 근데, [9:10]에서 어떻게 성공적으로 데이터가 들어간 것인지 궁금합니다. 혹시 제가 생각한 과정에서 틀린 부분이 있을까요?
항상 좋은 강의 감사드립니다.

답변 1

1

안녕하세요.

아마도, 제가 질문을 혹시 잘 못 이해할 수도 있는데요. 제가 이해하기로는 예를 들어, '1' 와 같이 데이터를 넣으면, 분명 문자열일텐데, 해당 데이터 컬럼 타입이 TINYINT 처럼 숫자일 경우, 데이터 타입이 다르기 때문에, 에러가 나야 하는 것 아닌가를 물어보신 것 같아요. 잘못 이해했으면, 새로운 질문으로 주시고요.

보통은 데이터 타입을 센서티브하게 체크하는 경우가 있는데요. 이 경우에는 센서티브하게 체크하지는 않습니다. 심지어 따옴표안에 넣었다 하더라도 '1' 와 같이 그 안의 실제 데이터가 숫자이기만 하면, 정상 입력이 됩니다.

감사합니다.

잔재미코딩, Dave Lee 드림 

네 제가 궁금했던 부분이 맞습니다.

일반적으로는 데이터 타입을 반드시 지켜야 한다고 생각했는데, 이렇게 센서티브하게 체크하지 않는 경우도 있군요. 잘 알겠습니다. 감사합니다!

오늘도열심히님의 프로필 이미지
오늘도열심히

작성한 질문수

질문하기