2012-12-05 2 views
4

mysql 쿼리의 어느 부분이 대소 문자를 구분하는지에 대한 참조를 찾을 수 없습니다.mysql의 대문자 사용 문제가 있습니까

대문자 사용법에 대한 개요가 있습니까?

특히,이 사건의 어떤은 민감 :

  • 데이터베이스 이름
  • 테이블 이름
  • 열 이름

는이 OS에 묶여 있습니까? 구성 가능합니까? 또는 요인의 다른 조합?

+0

사용중인 RDBMS도이 항목에 따라 다릅니다. 그들 중 일부는 사건을 돌보지 않습니다. – Smit

+1

http://dev.mysql.com/doc/refman/5.5/en/identifier-case-sensitivity.html을 확인하십시오. – drew010

+0

@ drew010 -> 감사합니다. 나는 그것을 정말로 알지 않고 있었다. – Smit

답변

4

MySQL에서 데이터베이스는 데이터 디렉토리 내의 디렉토리에 해당합니다. 데이터베이스 내의 각 테이블은 데이터베이스 디렉토리 내의 적어도 하나의 파일에 해당합니다 (그리고 저장소 엔진에 따라 더 많을 수도 있음). 따라서 기본 운영 체제의 대/소문자 구분은 데이터베이스 및 테이블 이름의 대/소문자 구분에 영향을줍니다. 이것은 데이터베이스와 테이블 이름이 Windows에서는 대소 문자를 구분하지 않으며, 대부분의 유닉스에서는 대소 문자를 구분한다는 것을 의미합니다.

.

lower_case_table_names 시스템 변수는 서버가 식별자 대소 문자 구분을

당신은 주제 here에 대한 자세한 내용을보실 수 있습니다을 처리하는 방법에 영향을 미칩니다.

+1

MySQL이 끔찍하다는 것을 다시 한번 증명합니다. 왜 파일 시스템에 의존하여 테이블 이름의 대소 문자를 구별하고 싶습니까? 대답은 +1. – GolezTrol

+0

그래, 그게 절름발이 야. –

0

데이터 정렬에 따라 다릅니다. 예를 들어 테이블에 unicode_general_ci이있는 경우 범용 유니 코드 문자 인식 알고리즘을 지원하며 케이스 - * *입니다.

+0

그는 테이블에있는 데이터의 대소 문자를 구분하는 것이 아니라 실제로 테이블과 컬럼 이름의 대소 문자를 구분할 것인지 물어 본다. –