查看-修改mysql数据库的编码
查看mysql数据库的默认编码
# 查看数据库的编码
show variables like 'character_set_database'
查看表的编码
# 使用show table status语句查看某个库下面全部表的字符集编码
show table status from 库名;
# 但只想获取指定表的信息,就可利用like进行限制:
show table status from 库名 like "表名";
- 例如:
show table status from `ry-vue`;
show table status from `ry-vue` like "gen_table";
查看字段的编码
# 使用show columns语句配合full关键字查看当前数据库中指定表中所有列的字符集编码
show full columns from 表名;
# 但只想获取指定列的信息,就可利用like进行限制:
show full columns from 表名 like "字段名";
- 例如:
show full columns from `gen_table`;
show full columns from `gen_table` like "table_name";
修改数据库的编码
alter database 数据库名 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;
注意
-
如果只是当前数据库某个表的字段编码是
utf8
直接修改表的编码为utf8mb4
后 存入表情符号还是会报错因为当前字段编码还未修改,需要修改当前字段编码
-
因为上述原因 推荐在建表的时候指定表的编码 这样表的字段就会默认使用该编码
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 '图标' , PRIMARY KEY (`id`) ) engine = innodb default charset = utf8mb4 default collate = utf8mb4_general_ci comment = '测试表';
-
可以使用下面的语句查询建表的语句
show create table 表名; show create table gen_table;
测试语句
- 插入表情
INSERT INTO gen_table (table_name)VALUES ('😊');
总结
字段的编码默认使用表的编码 >>> 表的编码默认使用库的编码,所以在不明确数据库的编码的时候建表应该显式的指明表的编码
CREATE TABLE `gen_table` (
`table_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
`table_name` varchar(900) CHARACTER SET utf8mb4 DEFAULT NULL,
`table_comment` varchar(900) DEFAULT NULL,
`sub_table_name` varchar(900) DEFAULT NULL,
`sub_table_fk_name` varchar(900) DEFAULT NULL,
`class_name` varchar(900) DEFAULT NULL,
`tpl_category` varchar(900) DEFAULT NULL,
`package_name` varchar(900) DEFAULT NULL,
`module_name` varchar(30) DEFAULT NULL COMMENT '生成模块名',
`business_name` varchar(30) DEFAULT NULL COMMENT '生成业务名',
`function_name` varchar(50) DEFAULT NULL COMMENT '生成功能名',
`function_author` varchar(50) DEFAULT NULL COMMENT '生成功能作者',
`gen_type` char(1) DEFAULT '0' COMMENT '生成代码方式(0zip压缩包 1自定义路径)',
`gen_path` varchar(900) DEFAULT NULL,
`options` varchar(1000) DEFAULT NULL COMMENT '其它生成选项',
`create_by` varchar(900) DEFAULT NULL,
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(900) DEFAULT NULL,
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(900) DEFAULT NULL,
PRIMARY KEY (`table_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COMMENT='代码生成业务表'
视频地址: https://www.bilibili.com/video/BV1B84y1g7Zx/?vd_source=90d2765424c7998e9aa4aeafebebd81b