欢迎光临散文网 会员登陆 & 注册

查看-修改mysql数据库-表-字段的编码

2023-03-29 23:09 作者:小猫爱哭鬼  | 我要投稿

查看-修改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 ('😊');

总结

字段的编码默认使用表的编码 >>> 表的编码默认使用库的编码,所以在不明确数据库的编码的时候建表应该显式的指明表的编码



查看-修改mysql数据库-表-字段的编码的评论 (共 条)

分享到微博请遵守国家法律