创建表时:ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=‘城市维度表‘;

-- Table structure for dim_city
-- ----------------------------
DROP TABLE IF EXISTS `dim_city`;
CREATE TABLE `dim_city` (
  `CityID` bigint(20) NOT NULL DEFAULT '0' COMMENT '城市id',
  `CityName` varchar(50) NOT NULL DEFAULT '' COMMENT '城市名称',
  `ProvinceID` bigint(20) NOT NULL DEFAULT '0' COMMENT '省份ID',
  `CityType` int(10) NOT NULL DEFAULT '0' COMMENT '类型(1:省 2:市 3:县/区 4:镇/乡)',
  `SyncTime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '同步时间',
  PRIMARY KEY (`CityID`),
  KEY `idx_provinceId` (`ProvinceID`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='城市维度表';

一. 解释

1、ENGINE=InnoDB

InnoDB:数据库默认的存储引擎,处理大容量数据。

删除表时:InnoDB不会重新建立表,而是一行一行的删除 会在内存中缓冲数据和索引,但是不支持fulltext的索引

2、DEFAULT CHARSET=utf8mb4

数据库默认编码为utf8mb4

这个虽然在my.ini设置过了,但设置的是mysql的的语言编码。而这里创建的时候不设置,就会出现乱码问题,二者的作用域是不一样的,在创建表单的时候,这个charset会作用到这个表上,它代表mysql简历数据库数据表时设定字符集为utf-8mb4。

二、utf8 与 utf8mb4 异同

        MySQL在5.5.3版本之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。其实,utf8mb4是utf8的超集并完全兼容utf8,能够用四个字节存储更多的字符,理论上原来使用utf8,然后将字符集修改为utf8mb4,也会不会对已有的utf8编码读取产生任何问题。但是一般为了节省空间,使用utf8就够了。

       MySQL里实现的utf8最长使用3个字节,但是现在生活中手机常用的表情字符 emoji还有一些不常用的汉字,如 别墅的“墅” ,这些需要四个字节才能编码出来,所以就需要utf8mb4。


文章参考了很多资料,做一个这方面的简单记录,方便后续自己查看,大家可自行查阅。
参考资料:

https://blog.csdn.net/yan791124465/article/details/70738939

https://blog.csdn.net/qq_17555933/article/details/101445526

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DROP TABLE IF EXISTS `tf_area`; CREATE TABLE IF NOT EXISTS `tf_area` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID', `pid` int(11) DEFAULT NULL COMMENT '父id', `shortname` varchar(100) DEFAULT NULL COMMENT '简称', `name` varchar(100) DEFAULT NULL COMMENT '名称', `merger_name` varchar(255) DEFAULT NULL COMMENT '全称', `level` tinyint(4) DEFAULT NULL COMMENT '层级 0 1 2 省市区县', `pinyin` varchar(100) DEFAULT NULL COMMENT '拼音', `code` varchar(100) DEFAULT NULL COMMENT '长途区号', `zip_code` varchar(100) DEFAULT NULL COMMENT '邮编', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='省市县区域表'; -- -- RELATIONSHIPS FOR TABLE `tf_area`: -- -- -- 转存表中的数据 `tf_area` -- INSERT INTO `tf_area` (`id`, `pid`, `shortname`, `name`, `merger_name`, `level`, `pinyin`, `code`, `zip_code`) VALUES (1, 0, '北京', '北京', '中国,北京', 1, 'beijing', '', ''), (2, 1, '北京', '北京市', '中国,北京,北京市', 2, 'beijing', '010', '100000'), (3, 2, '东城', '东城区', '中国,北京,北京市,东城区', 3, 'dongcheng', '010', '100010'), (4, 2, '西城', '西城区', '中国,北京,北京市,西城区', 3, 'xicheng', '010', '100032'), (5, 2, '朝阳', '朝阳区', '中国,北京,北京市,朝阳区', 3, 'chaoyang', '010', '100020'), (6, 2, '丰台', '丰台区', '中国,北京,北京市,丰台区', 3, 'fengtai', '010', '100071'), (7, 2, '石景山', '石景山区', '中国,北京,北京市,石景山区', 3, 'shijingshan', '010', '100043'), (8, 2, '海淀', '海淀区', '中国,北京,北京市,海淀区', 3, 'haidian', '010', '100089'), (9, 2, '门头沟', '门头沟区', '中国,北京,北京市,门头沟区', 3, 'mentougou', '010', '102300'), (10, 2, '房山', '房山区', '中国,北京,北京市,房山区', 3, 'fangshan', '010', '102488'), (11, 2, '通州', '通州区', '中国,北京,北京市,通州区', 3, 'tongzhou', '010', '101149'), (12, 2, '顺义', '顺义区', '中国,北京,北京市,顺义区', 3, 'shunyi', '010', '101300'),
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值