CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci有什么用
时间: 2023-08-22 15:10:09 浏览: 233
在 MySQL 中,字符集用于指定如何存储和处理字符串数据。而排序规则(collation)用于指定如何比较和排序字符串数据。
utf8mb4 是一种 MySQL 支持的字符集,它支持存储和处理 Unicode 字符集的所有字符,包括 emoji 表情等。
utf8mb4_unicode_ci 是一种排序规则,它基于 Unicode 字符集,通过对字符串进行比较和排序来确定它们的顺序。这种排序规则支持多种语言和字符集,并且支持 Unicode 扩展字符,因此在处理多语言和包含表情等特殊字符的字符串时非常有用。
因此,在更改 MySQL 数据库的编码为 utf8mb4 时,需要同时指定字符集和排序规则,以确保数据库能够正确地存储和处理字符串数据。
相关问题
DROP TABLE IF EXISTS `record`; CREATE TABLE `record` ( `id` bigint(0) NOT NULL AUTO_INCREMENT, `keyword` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NULL DEFAULT NULL, `baike` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NULL, `bilibili` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NULL, `create_date` datetime(0) NULL DEFAULT NULL, `audio` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_520_ci ROW_FORMAT = Dynamic;
这段代码是创建一个名为 `record` 的 MySQL 数据库表,其中包含了 `id`、`keyword`、`baike`、`bilibili`、`create_date` 和 `audio` 这几个字段。其中,`id` 是自增长的主键,`keyword` 是关键词,`baike` 是百度百科的内容,`bilibili` 是Bilibili的相关内容,`create_date` 是创建时间,`audio` 是音频内容。这个表使用的是 InnoDB 引擎,字符集为 utf8mb4,排序规则为 utf8mb4_unicode_520_ci。
说出下列表的索引长度CREATE TABLE `admin` ( `id` int NOT NULL AUTO_INCREMENT, `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '用户名', `phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '联系方式', `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '邮箱', `createtime` datetime NULL DEFAULT NUll, `updatetime` datetime NULL DEFAULT NULL, `password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, `status` tinyint NULL DEFAULT 1 COMMENT '状态', PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `username_key` (`username`) USING BTREE ) ENGINE = InnoDB ROW_FORMAT= dynamic AUTO_INCREMENT = 40 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
该表的索引长度取决于具体的索引类型和字段类型,因为不同的类型占用的存储空间是不同的。但是可以通过以下方式来估算:
1. 主键索引:该表的主键是一个自增的 int 类型字段,占用 4 个字节,因此主键索引的长度为 4 字节。
2. 唯一索引:该表的唯一索引是 username 字段,是一个 varchar(255) 类型字段,占用的空间为其最大长度 255 个字节,因此唯一索引的长度为 255 字节。
3. 普通索引:该表没有其他的普通索引,因此不需要计算。
阅读全文