본문 바로가기

DataBase/My-Sql

MySQL 대소문자구분

 

가. SQL 구문

char, varchar 은 대소문자 구분이 되지 않기에 명확하게 구분하기 원할 경우는 binary, varbinary 형식을 사용해야 합니다.

varbinary

 기존 char, varchar 의 경우는 binary 함수를 이용하여 대소문자를 구분할 수 있습니다.

mysql> select word from word where word = 'id';
+------+
| word |
+------+
| id   |
| ID   |
| ID   |
+------+
3 rows in set (0.00 sec)
mysql> select word from word where word = binary('id');
+------+
| word |
+------+
| id   |
+------+
1 row in set (0.01 sec)

 나. 테이블의 대소문자 구분

 MySQL의 경우는 기본적으로 Linux는 대소문자를 구분하고 Windows는 대소문자를 구분하지 않습니다. 아래의 시스템변수 'lower_case_table_names' 값이 Linux는 0, Windows는 1로 설정이 되어 있습니다.  테이블의 대소문자 구분에 문제가 있을 경우는 해당 변수를 설정파일에서 변경해 주시면 됩니다.

mysql> show variables like 'lower_case_table_names';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_table_names | 0     |
+------------------------+-------+

 Linux의 MyISAM 방식을 사용하던 중 대소문자 구분 없이 사용하려면 기존의 대소문자로 구분되어 저장 되어 있는 테이블을 새롭게 생성해 주어야 합니다.

 다. 참고