본문 바로가기

MySQL

MySQL 테이블명 대소문자 구분

MySQL 환경과 설정에 따라 대소문자를 구분하기도 하고 그렇지 않기도 한다. 


데이타베이스 이름과 테이블 이름을 사용할 때 윈도우와 Mac OS X에서는  기본적으로 대소문자를 구분하지 않지만 유닉스계열(리눅스포함)에서는 기본적으로 대소문자를 구분한다. ( Default 설정인 경우 )


컬럼이름은 모든 환경에서 대소문자를 구분하지 않는다. 



▶ OS 별 MySQL 대소문자 구분 : lower_case_table_names 기본 값인 경우


 

 윈도우

Mac OS X

  리눅스 

 데이타베이스명

구분 안함

 대소문자 구분

 테이블명

 컬럼명

 구분 안함


- 리눅스 환경의 아래 예를 보면 테이블명이 UserInfo,  컬럼명은 UserID, UserName 으로 되어있다.

- 컬럼명은 조회문에서 대소문자를 구분 않고 테이블명은 대소문자를 구분하고 있다.




▶ 대소문자 구분은 MySQL의 이식성에 문제를 발생 시킨다. 


- 윈도우 환경에서 Pascal Case를 사용하여 테이블명을 지정했다면 리눅스로 이식했을 때 대소문자 구분으로 오류가 난다. 


Pascal Case : 단어의 첫자를 대문자로 하고 나머지를 소문자로 쓰는 코딩방법 예) UserInfo


▶ 가장 좋은 방법은 항상 소문자만을 사용하는 것이다. 


- 데이타베이스명과  테이블명은 항상 소문자만 사용하면 윈도우에서나 Linux 에서 에러 없이 사용 할 수 있다


▶ 그래도 난 특별하다 생각하면 lower_case_table_names 을 설정 한다. 


- 이 블로거의 다른 글을 참고 하면 된다.