因?yàn)橐恍┮绘I安裝包的環(huán)境, my.ini
默認(rèn)配置的字符集是 latin1
或者其他, 如果此時(shí)一旦不注意, 使用sql語(yǔ)句去創(chuàng)建數(shù)據(jù)庫(kù), 表 默認(rèn)都是 latin1
, 因?yàn)橛行┳址遣荒艽鎯?chǔ)中文的,如果需要存儲(chǔ)中文, 需要使用GBK,utf8...等字符集...如果一個(gè)個(gè)去修改就太難...
查看字符集
數(shù)據(jù)庫(kù)
SHOW CREATE DATABASE `database_name`
database_name: 數(shù)據(jù)庫(kù)名
數(shù)據(jù)表
SHOW CREATE TABLE `table_name`;
table_name: 數(shù)據(jù)表名
字段
SHOW FULL COLUMNS FROM `table_name`;
table_name: 數(shù)據(jù)表名
修改字符集
數(shù)據(jù)庫(kù)
ALTER DATABASE `test_db` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
-
test
是數(shù)據(jù)庫(kù)名 -
utf8_general_ci
是排序規(guī)則, 可選項(xiàng)
數(shù)據(jù)表
ALTER TABLE `test_db`.`user` CHARACTER SET = utf8mb4, COLLATE = utf8mb4_bin;
字段
ALTER TABLE `test_db`.`username` MODIFY COLUMN `password` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
查看一個(gè)數(shù)據(jù)庫(kù)中所有的表格
select table_name from information_schema.`TABLES` where TABLE_SCHEMA = 'database_name';
- database_name: 是要查詢的數(shù)據(jù)庫(kù)名稱
- 這條sql語(yǔ)句中的table_name是關(guān)鍵字, 不是表名
將一個(gè)表所有字段修改為指定字符集
alter table `table_name` convert to character set utf8 COLLATE utf8_bin;
將table_name
這個(gè)表的所有字段字符集修改為 utf8
排序規(guī)則為utf8_bin