查看-修改mysql數(shù)據(jù)庫(kù)-表-字段的編碼
查看mysql數(shù)據(jù)庫(kù)的默認(rèn)編碼
?# 查看數(shù)據(jù)庫(kù)的編碼
?show variables like 'character_set_database'
查看表的編碼
?# 使用show table status語(yǔ)句查看某個(gè)庫(kù)下面全部表的字符集編碼
?show table status from 庫(kù)名;
?# 但只想獲取指定表的信息,就可利用like進(jìn)行限制:
?show table status from 庫(kù)名 like "表名";
?show table status from `ry-vue`;
?show table status from `ry-vue` like "gen_table";
查看字段的編碼
?# 使用show columns語(yǔ)句配合full關(guān)鍵字查看當(dāng)前數(shù)據(jù)庫(kù)中指定表中所有列的字符集編碼
?show full columns from 表名;
?# 但只想獲取指定列的信息,就可利用like進(jìn)行限制:
?show full columns from 表名 like "字段名";
例如:
?show full columns from `gen_table`;
?show full columns from `gen_table` like "table_name"; ?
修改數(shù)據(jù)庫(kù)的編碼
?alter database 數(shù)據(jù)庫(kù)名 character set utf8mb4;
修改表的編碼
?# 修改表的編碼
?alter table 表名 ?character set utf8mb4;
?alter table gen_table ?character set utf8mb4;
修改字段的編碼
?# 修改字段的編碼
?# lalter table 表名 change 字段名 字段名 類型 character set utf8mb4;
?alter table gen_table change table_name table_name varchar(900) character set utf8mb4;
注意
如果只是當(dāng)前數(shù)據(jù)庫(kù)某個(gè)表的字段編碼是
utf8
直接修改表的編碼為utf8mb4
后 存入表情符號(hào)還是會(huì)報(bào)錯(cuò)因?yàn)楫?dāng)前字段編碼還未修改,需要修改當(dāng)前字段編碼
因?yàn)樯鲜鲈??推薦在建表的時(shí)候指定表的編碼 這樣表的字段就會(huì)默認(rèn)使用該編碼
?DROP TABLE IF EXISTS `life_service`;
?CREATE TABLE `life_service` (
?`id` bigint ?NOT NULL ,
?`create_by` varchar(255) not null ,
?`create_time` ? datetime ? ? not null,
?`update_by` ?varchar(255) ?null,
?`update_time` ? ? ?datetime ? ? null,
?`del_flag` ? ? ? ? ? varchar(1) default '0' not null comment '0-未刪除 ?1已刪除',
? ?`type_name` varchar(255) ?NULL comment '類型名稱' ,
? ?`icon` varchar(255) ?NULL comment '圖標(biāo)' ,
? ?PRIMARY KEY (`id`)
?) engine = innodb
? ?default charset = utf8mb4
? ?default collate = utf8mb4_general_ci
? ?comment = '測(cè)試表';可以使用下面的語(yǔ)句查詢建表的語(yǔ)句
?show create table 表名;
?show create table gen_table;
測(cè)試語(yǔ)句
插入表情
?INSERT INTO gen_table (table_name)VALUES ('??');
總結(jié)
字段的編碼默認(rèn)使用表的編碼 >>> 表的編碼默認(rèn)使用庫(kù)的編碼,所以在不明確數(shù)據(jù)庫(kù)的編碼的時(shí)候建表應(yīng)該顯式的指明表的編碼