728x90
반응형

2023/10/26 3

MYSQL 테이블 Collation 확인, 변경 방법 (Character Set과의 차이)

SQL문을 통해 테이블 Collation을 확인하고 원하는 대로 변경할 수 있습니다. Collation은 Character set과 다른 개념입니다. 쉽게 말해 utf8mb4와 utf8mb4_unicode_ci는 다릅니다. 전자는 캐릭터셋, 후자는 콜레이션입니다. 데이터베이스의 캐릭터셋이 같더라도 테이블 간 콜레이션이 다르면 테이블 조인 시 에러가 발생합니다. 테이블 Collation 변경 방법 1. 데이터베이스 캐릭터셋 확인 데이터베이스(DB)는 특정한 기본 캐릭터셋이 적용됩니다. 이를 확인하는 SQL은 아래와 같습니다. mysql> USE 데이터베이스명; mysql> SHOW VARIABLES LIKE 'character_set_database'; [예시] mysql> use mysql mysql> ..

IT/SQLD 2023.10.26

mysql 테이블 및 컬럼 케릭터셋 변경 하기

mysql이나 mariadb를 사용하면서 간혹 테이블이나 컬럼의 케릭터셋을 변경해야 하는 경우가 생깁니다. 물론 데이터베이스 전체의 케릭터셋을 변경 할 수도 있겠지만, 간혹 이렇게 테이블과 컬럼 단위로 변경 할 사유가 생겼을때 아래와 같이 간단하게 조치를 할 수 있습니다. ◎ SQL 테이블 단위 변경 alter table 테이블명 convert to character set utf8; utf8로 테이블 전체의 케릭터셋을 변경 한다는 의미 입니다. 컬럼 단위 변경 ALTER TABLE 테이블명 MODIFY COLUMN 컬럼 VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci; 테이블내 특정 컬럼의 케릭터셋을 변경 한다는 의미 입니다. 간혹, fulltext ..

IT/SQLD 2023.10.26

MySQL character set 확인 및 변경

언제나 한글 깨짐 문제로 인한 캐릭터 셋 확인 및 변경 작업이 많다. 일단 DB에 저장된 한글이 클라이언트에서 안 보이는 경우는 클라이언트의 인코딩 값을 변경해서 조치를 할 수 있다. 그러나 저장 당시의 인코딩 값이 서로 다른 한글이 들어가 있을 경우는 어떤 한글은 정상적으로 보이지만, 어떤 한글은 깨져서 보이는 경우가 발생하게 된다. MySQL은 기본으로 서버 캐릭터 셋이 latin1으로 설정 되어 있어서 DB 생성 시 캐릭터 셋 값을 지정해주지 않으면 latin1으로 생성이 된다. Character set ? 사용하는 언어를 표현하기 위한 문자들의 집합을 의미. 한글을 표현하기 위하여 사용하는 캐릭터 셋에는 여러가지가 존재 한다. Encoding ? Character Set을 컴퓨터가 이해할 수 있는..

IT/SQLD 2023.10.26
728x90
반응형