Identifier Case-sensitivity
객체의 대/소문자 구분 여부는 시스템의 운영체제에 의해 부분적으로 결정됩니다.
(1) Unix 기반 시스템은 대/소문자를 구분합니다
(2) Windows는 대/소문자를 구분하지 않습니다
(3) Mac OS X는 일반적으로 대/소문자를 구분하지 않지만, UFS 볼륨을 사용하는 경우 구분이 가능합니다
또한,
(1) 데이터베이스, 테이블, 테이블 별칭(table alias), trigger 이름은 시스템의 대/소문자 구분에 영향을 받습니다
(2) 인덱스, 컬럼, 컬럼 별칭(column alias), stored routine 과 event 이름은 시스템과 상관없이 대/소문자를 구분하지 않습니다
(3) 로그 파일 그룹명은 대/소문자를 구분합니다
서버 시스템 변수인 lower_case_table_names 값이 중요한 역할을 합니다. 이 변수값이 데이터베이스, 테이블, 테이블 별칭(table alias)의 대/소문자 구분 여부를 결정합니다.
(1) 0인 경우(Unix 기반 시스템 기본값), 대/소문자를 구분하도록 설정됩니다
(2) 1인 경우(Windows 시스템 기본값), 이름이 소문자로 저장되고 대/소문자를 구분하지 않습니다.
(3) 2인 경우(Mac OS X 시스템 기본값), 이름은 선언된 대로 저장되고 소문자로 비교됩니다.
따라서 Unix 기반 시스템이 Windows처럼 대/소문자를 무시하며 동작하게 할 수는 있지만, 그 반대는 Windows 파일시스템이 지원하지 않기 때문에 불가능합니다.
대소 문자를 구분하지 않는 시스템에서도, 같은 명령문 내에서는 대소 문자를 일관되게 사용해야합니다. 다음 구문은 테이블 이름을 다르게 참조하므로 실패합니다.
SELECT * FROM a_table WHERE A_table.id>10;
식별자 명명 규칙의 전체 목록은 Identifier Names을 참조하세요.