🔹 COLLATION() 함수 사용

set @stock_code := '996161';
SELECT COLLATION(@stock_code);

결과 예시:

 

🔹 CHARSET() 함수 사용

set @stock_code := '996161';
SELECT CHARSET(@stock_code);

 결과 예시:

 

 

🔹 변수의 Collaton 과 컬럼의 Collation이 다를 경우의 처리 방법

  • 일반적인 변수 선언
set @stock_code := '1177851';
SELECT COLLATION(@stock_code);

     

  • Collation을 지정하여 선언
set @stock_code := '1177851' collate utf8mb4_0900_ai_ci;
SELECT COLLATION(@stock_code);

 

  • Convert를 사용하여 변환
set @stock_code := convert('1177851' using utf8mb4);
SELECT COLLATION(@stock_code);

 

1️⃣ SHOW VARIABLES 사용

SHOW VARIABLES LIKE 'character\_set\_%';

결과 예시:

 

2️⃣ 특정 데이터베이스의 문자셋 조회

SELECT SCHEMA_NAME, DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
FROM information_schema.SCHEMATA
WHERE SCHEMA_NAME = 'database_name';

 결과 예시:

 

 

 

3️⃣ 특정 테이블의 문자셋 조회 - 1

show create table tbl_stock_list_us;

 결과 예시:

CREATE TABLE `tbl_stock_list_us` (
  `event_date` date NOT NULL COMMENT '기준일',
  `symbol_code` varchar(10) NOT NULL COMMENT '종목 코드',
  `last_open_raw` double NOT NULL COMMENT '시가 Raw',
  `last_max_raw` double NOT NULL COMMENT '고가 Raw',
  `last_min_raw` double NOT NULL COMMENT '저가 Raw',
  `last_close_raw` double NOT NULL COMMENT '종가 Raw',
  `change_precent_raw` double NOT NULL COMMENT '변동률(퍼센트) Raw',
  `volume_raw` double NOT NULL COMMENT '거래량',
  `upd_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`event_date`,`symbol_code`),
  UNIQUE KEY `idx_01` (`symbol_code`,`event_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

 

3️⃣ 특정 테이블의 문자셋 조회 - 2

SELECT TABLE_NAME, TABLE_COLLATION
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'db_stock' AND TABLE_NAME = 'tbl_stock_list_us';

 결과 예시:

 

4️⃣ 특정 열(Column)의 문자셋 조회

SELECT COLUMN_NAME, CHARACTER_SET_NAME, COLLATION_NAME
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'db_stock' AND TABLE_NAME = 'tbl_stock_list_us';

 

 결과 예시:

+ Recent posts