安徽省网站备案快吗,中企动力科技股份有限公司深圳分公司,只会html wordpress,云建站自动建站系统源码文章目录 1、SHOW TABLE STATUS WHERE Name batch_version;2、latin1_swedish_ci使用场景注意事项修改字符集和排序规则修改表的字符集和排序规则修改列的字符集和排序规则修改数据库的默认字符集和排序规则 3、ALTER TABLE batch_version CONVERT TO CHARACTER SET utf8mb4 C… 文章目录 1、SHOW TABLE STATUS WHERE Name batch_version;2、latin1_swedish_ci使用场景注意事项修改字符集和排序规则修改表的字符集和排序规则修改列的字符集和排序规则修改数据库的默认字符集和排序规则 3、ALTER TABLE batch_version CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;4、SHOW TABLE STATUS WHERE Name batch_version;5、两次查询结果的对比和区别第一次查询结果修改前第二次查询结果修改后主要区别为什么会有这种变化需要注意的事项 1、SHOW TABLE STATUS WHERE Name ‘batch_version’;
mysql SHOW TABLE STATUS WHERE Name batch_version;
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| batch_version | MyISAM | 10 | Dynamic | 6 | 32 | 196 | 281474976710655 | 2048 | 0 | 7 | 2024-11-27 18:02:32 | 2025-01-10 15:39:03 | NULL | latin1_swedish_ci | NULL | | |
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 row in set (0.00 sec)2、latin1_swedish_ci
latin1_swedish_ci 是 MySQL 中的一种字符集和排序规则组合。具体含义如下 字符集Character Set: latin1 latin1 是 ISO 8859-1 的别名支持西欧语言如英语、法语、德语、西班牙语等。它使用单字节编码每个字符占用 1 个字节。 排序规则Collation: swedish_ci swedish_ci 表示基于瑞典语的排序规则ci 表示大小写不敏感case-insensitive。这种排序规则会将大小写字母视为相同例如 A 和 a 是等价的。
使用场景
如果你的数据主要是西欧语言如英语、法语等并且不需要支持多字节字符如中文、日文等latin1_swedish_ci 是一个常见的选择。它是 MySQL 的默认字符集和排序规则在旧版本中。
注意事项 不支持多字节字符 latin1 不支持存储中文、日文、韩文等多字节字符。如果需要存储这些字符建议使用 utf8mb4 字符集。 排序规则的影响 排序规则会影响字符串的比较和排序。例如swedish_ci 会将 A 和 a 视为相同而 bin二进制排序规则则会区分大小写。 迁移到 UTF-8 如果你的应用需要支持多语言建议将字符集迁移到 utf8mb4并使用 utf8mb4_unicode_ci 或 utf8mb4_general_ci 排序规则。
修改字符集和排序规则
如果需要将表或列的字符集和排序规则修改为 latin1_swedish_ci可以使用以下 SQL 语句
修改表的字符集和排序规则
ALTER TABLE 表名
CONVERT TO CHARACTER SET latin1 COLLATE latin1_swedish_ci;修改列的字符集和排序规则
ALTER TABLE 表名
MODIFY 列名 列类型 CHARACTER SET latin1 COLLATE latin1_swedish_ci;修改数据库的默认字符集和排序规则
ALTER DATABASE 数据库名
CHARACTER SET latin1 COLLATE latin1_swedish_ci;如果你有更多问题欢迎随时提问
3、ALTER TABLE batch_version CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
4、SHOW TABLE STATUS WHERE Name ‘batch_version’;
mysql SHOW TABLE STATUS WHERE Name batch_version;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| batch_version | MyISAM | 10 | Dynamic | 6 | 32 | 196 | 281474976710655 | 2048 | 0 | 7 | 2025-01-17 14:17:25 | 2025-01-10 15:39:03 | NULL | utf8mb4_general_ci | NULL | | |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 row in set (0.01 sec)5、两次查询结果的对比和区别
从你提供的两次 SHOW TABLE STATUS 查询结果可以看出batch_version 表的字符集和排序规则发生了变化。以下是两次查询结果的对比和区别 第一次查询结果修改前
Collation: latin1_swedish_ci字符集: latin1排序规则: latin1_swedish_ci说明 表使用的是 latin1 字符集支持单字节编码适用于西欧语言。排序规则是 swedish_ci表示大小写不敏感case-insensitive基于瑞典语的排序规则。 第二次查询结果修改后
Collation: utf8mb4_general_ci字符集: utf8mb4排序规则: utf8mb4_general_ci说明 表使用的是 utf8mb4 字符集支持多字节编码适用于全球所有语言包括中文、日文、韩文等。排序规则是 general_ci表示大小写不敏感case-insensitive基于 Unicode 的通用排序规则。 主要区别 字符集不同 latin1 仅支持单字节编码适用于西欧语言。utf8mb4 支持多字节编码适用于全球所有语言。 排序规则不同 latin1_swedish_ci 是基于瑞典语的排序规则仅适用于 latin1 字符集。utf8mb4_general_ci 是基于 Unicode 的通用排序规则适用于 utf8mb4 字符集。 兼容性 latin1 无法存储多字节字符如中文、日文等而 utf8mb4 可以。如果你的数据中包含非西欧字符如中文使用 latin1 会导致乱码或数据丢失而 utf8mb4 可以完美支持。 存储空间 latin1 每个字符占用 1 个字节。utf8mb4 每个字符可能占用 1 到 4 个字节取决于字符。 排序和比较行为 latin1_swedish_ci 和 utf8mb4_general_ci 都是大小写不敏感的但它们的排序规则基于不同的语言和字符集因此在某些情况下排序结果可能不同。 为什么会有这种变化
可能是你或其他人执行了修改表字符集和排序规则的操作例如ALTER TABLE batch_version
CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;这种修改通常是为了支持多语言字符如中文或统一字符集。 需要注意的事项 数据兼容性 如果表中原本存储了 latin1 编码的数据修改为 utf8mb4 后可能需要确保数据正确转换避免乱码。 索引和排序 修改字符集和排序规则可能会影响索引和排序行为建议在修改后测试相关功能。 应用程序兼容性 确保应用程序能够正确处理 utf8mb4 字符集。