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

本文介绍了如何查看和修改MySQL数据库、表以及字段的字符集编码,强调了查看及修改的命令,如`showvariableslikecharacter_set_database`,并推荐在创建时指定utf8mb4编码以支持更多字符。
摘要由CSDN通过智能技术生成

查看-修改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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值