- 특정 데이터베이스의 DEFAULT CHARACTER SET 확인 방법
- SHOW CREATE DATABASE db_name;
- 이렇게 하면, 해당 데이터베이스를 생성하는데 사용할 수 있는 DDL 문장을 보여주는데, 거기에 기본 문자셋에 대한 정보도 포함되어 있음.
- 특정 테이블의 DEFAULT CHARACTER SET 확인 방법
- SHOW CREATE TABLE table_name;
- 이렇게 하면, 데이터베이스와 동일하게 해당 테이블을 생성하는데 사용할 수 있는 DDL 문장을 보여주는데, 거기에 기본 문자셋에 대한 정보도 포함되어 있음.
- 특정 데이터베이스의 DEFAULT CHARACTER SET 수정하는 방법
- ALTER DATABASE db_name [DEFAULT] CHARACTER SET = charset_name;
- 참고로, 이 방법은 현재 이 데이터베이스에 속해있는 테이블들의 문자셋을 변경하는 것은 아님. 다만, 향후에 CREATE TABLE 문장으로 테이블(들)을 새로이 추가하려고 할 때 (해당 테이블들에 명시적으로 문자셋이 지정되지 않은 경우) 해당 테이블들이 기본적으로 가지게 될 DEFAULT 문자셋을 지정하는 것에 불과함.
- 특정 데이터베이스의 DEFAULT COLLATION 수정하는 방법
- ALTER DATABASE db_name [DEFAULT] COLLATE = collation_name;
- 참고로, 이 방법은 현재 이 데이터베이스에 속해있는 테이블들의 collation을 변경하는 것은 아님. 다만, 향후에 CREATE TABLE 문장으로 테이블(들)을 새로이 추가하려고 할 때 (해당 테이블들에 명시적으로 collation이 지정되지 않은 경우) 해당 테이블들이 기본적으로 가지게 될 DEFAULT collation을 지정하는 것에 불과함.
- 특정 테이블의 DEFAULT CHARACTER SET 수정하는 방법
- ALTER TABLE table_name [DEFAULT] CHARACTER SET = charset_name;
- 참고로, 이 방법은 현재 테이블에 들어가있는 칼럼들의 문자셋이나 collation을 변경하지는 않는다. 다만, 향후에 ALTER TABLE 문장으로 칼럼(들)을 새로이 추가하려고 할 때 (해당 칼럼들에 명시적으로 문자셋이나 collation이 지정되지 않은 경우) 해당 칼럼들이 기본적으로 가지게 될 DEFAULT 문자셋을 지정하는 것에 불과함.
- collation도 함께 수정하려고 할 때는 다음과 같이 한다.
- ALTER TABLE table_name [DEFAULT] CHARACTER SET = charset_name COLLATE = collation_name;
- 만약, 이미 테이블에 포함되어있는 칼럼들에 지정되어있는 문자셋이나 collation을 수정하고 싶은 경우에는 다음과 같이 'CONVERT TO'를 사용해야 한다.
- ALTER TABLE table_name CONVERT TO CHARACTER SET = charset_name [COLLATE =collation_name];
- 이렇게 하면 현재 테이블에 포함되어있던 각 컬럼들에 지정되어있던 문자셋이 모두 동일하게 새로운 문자셋과 collation으로 변경되게 됨.
- 그런데, 이렇게 'CONVERT TO'를 사용하면 새로운 문자셋이 기존의 문자셋보다 Max_len 이 큰 경우 각 컬럼들에 지정되어있던 데이터 타입의 크기 역시 함께 변경이 된다. (예를 들어, TEXT 타입이었다면 MEDIUMTEXT 타입으로 변경되기도 함) 또한 각 컬럼들에 저장되어있는 실제 '값'도 역시 새로운 문자셋으로 변경이 일어난다(매뉴얼에서는 이렇게 이야기하고 있는데, 직접 확인 필요)
- 만약, 이렇게 데이터 타입의 크기나 '값'의 변화를 원하지 않는 경우에는 'CONVERT TO'를 사용하면 안되고 각 컬럼마다 'MODIFY' 명령어를 통해 각각 수정해주어야 함.
- ALTER TABLE table_name MODIFY column_name VARCHAR(10) CHARACTER SET charset_name [COLLATE collation_name];
- 좀 더 자세한 사항은 직접 매뉴얼을 참고할 것.
- [참고] 현재 시스템에서 지원하는 문자셋들의 목록을 보고 싶을 때
- SHOW CHARACTER SET;
- 이렇게 하면 지원하는 문자셋 목록을 모두 다 보여줌. 문자셋 이외에도 해당 문자셋이 선택되었을때 (별도로 명시적으로 collation을 지정하지 않았을때 사용되는) Default collation도 보여주고, 해당 문자셋이 최대 몇 바이트를 차지하는지에 대한 Maxlen 정보도 함께 보여줌.(고정폭 인코딩을 사용하는 문자셋이 아니라 가변폭 인코딩을 사용하는 문자셋도 있으므로 그야말로 Maxlen임)
- 만약, 전체 목록이 아니라 필터를 사용해서 일부 목록만 보고 싶을 때는 다음과 같이 하면 된다.
- SHOW CHARACTER SET LIKE '%euc%';
- [참고] 현재 시스템에서 지원하는 collation 목록을 보고 싶을 때
- SHOW COLLATION;
- 이렇게 하면 지원하는 collation 목록을 모두 다 보여줌. 해당 collation이 속해있는 문자셋 정보, 해당 collation이 Default collation인지 여부 등의 정보도 함께 보여줌.
- 만약, 전체 목록이 아니라 필터를 사용해서 일부 목록만 보고 싶을 때는 다음과 같이 하면 된다.
- SHOW COLLATION LIKE '%euc%';
- 또한, 각 문자셋별로 Default collation만을 걸러서 보고 싶을 때는 다음과 같이 한다.
- SHOW COLLATION WHERE 'Default' = 'Yes';
다시한번 강조하지만, 여기에서 정리한 것들은 이미 값이 들어가있는 테이블이나 칼럼 등에 영향을 주는 것이 아니라는 점... 헷갈리지 마시길!!! <출처: http://blog.naver.com/kumimo?Redirect=Log&logNo=80090608750 > |