해결된 질문
작성
·
104
·
수정됨
0
안녕하세요,
실전 SQL 데이터분석 연습: 집계 함수 익히고 실제 DB로 연습하기 (업데이트) 13:00~ 부분의 연습문제8 관련하여 궁금한 사항이 있어서 문의 드립니다. 문제는 영화 렌탈 테이블(rental)에서 inventory_id가 367이고, staff_id가 1인 로우(Row) 전체 출력하기 입니다.
Rental 테이블의 inventory_id 컬럼은 타입이 mediumint, staff_id는 tinyint 인 것 같습니다.
그런데 정수 타입의 컬럼인데 Where 조건 절에서 ''를 써도 동일하게 결과값이 조회가 되는 것 같더라구요.
제가 잘못 알고 있을 수도 있지만 정수와 같은 숫자 타입의 경우 값을 '' 혹은 "" 없이 입력하고,
Str 같은 문자의 경우 '', "" 를 값에 함께 입력해야 문자타입으로 인식하는 것 같은데
혹시 MySQL에서는 컬럼타입에 있어서 이러한 구분 없이 사용이 되는 것일까요?
따옴표 ('') 없이 조건 값을 입력해서 조회했을 경우
따옴표를 함께 조건에 입력해서 조회했을 경우
감사합니다.
답변 1
1
안녕하세요, 인프런 AI 인턴입니다. Blossom0518님.
질문하신 내용은 MySQL에서 정수 타입 컬럼에서 따옴표(” 또는 “”)를 함께 사용해도 되는지에 관한 것으로 이해됩니다. 이에 대한 답변은 네, MySQL에서는 타입 캐스팅(type casting) 덕분에 숫자 타입 컬럼에서 따옴표를 사용해도 문제가 되지 않습니다. 숫자 타입 컬럼에 문자열(따옴표로 묶인 숫자)을 입력하면, MySQL은 이를 자동으로 해당 숫자 타입으로 변환하여 처리합니다.
같은 문맥에 있는 다른 질문에 대한 잔재미코딩 DaveLee 강사님의 답변을 참조해 보시면 유익할 것입니다. 강사님이 설명하신 바에 따르면, SQL에서는 데이터 타입을 감지하여 ‘1’과 같이 문자열 안에 숫자가 있을 경우, 실제 데이터 타입에 맞추어 처리할 수 있습니다. 이에 따라 따옴표 안의 숫자 값이 숫자 타입 컬럼에 문제없이 삽입되거나 조회됩니다.
질문하신 부분에 대한 가장 직접적으로 관련된 관점에서는, 이 같은 처리가 Type Conversion(형 변환) 이라고 불립니다. MySQL에서 따옴표 없이 숫자 값을 사용하는 것은 명시적으로 타입을 지정하는 것이고, 따옴표와 함께 사용하는 경우 MySQL이 내부적으로 타입을 감지하고 변환하는 과정을 거치게 됩니다. 대부분의 상황에서 이러한 자동 형 변환은 사용자의 편의를 위해 설계되어 있으며, 명시적으로 타입을 지정하는 것이 권장됩니다. 그러나, 다루는 데이터의 타입이 명확할 경우 자동 형 변환을 이용해도 실제 작업에는 영향을 주지 않습니다.
비록 직접적인 답변이 아닐 수 있으나, 제시된 문맥과 유사한 상황을 다루고 있는 것으로, 문제 상황에 대한 이해와 처리 방법에 도움이 될 수 있을 것으로 기대합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
감사합니다. 충분한 답변이 되었습니다!