一文 get Mysql库/表/字段的编码/字符集/校验规则

几个重要的术语和概念:

  • 编码:某个字符集成员的内部表示
  • 字符集: 字母符号的集合
  • 排序规则:规定字符如何比较的指令(也叫校验规则)
  • 不指定时,默认库会继承实例/表会继承库/字段会继承表的字符集和校验规则

命令积累(查看):

查看当前实例使用的字符集和校验规则(创建库不指定时使用此默认值):

SHOW VARIABLES LIKE 'character%';

SHOW VARIABLES LIKE 'collation%';

查看当前实例支持的字符集和校验规则:

show charset;
show collation;

查看数据库编码(包括字符集和校验规则):

SHOW CREATE DATABASE db_name;

查看表编码(包括字符集和校验规则):

SHOW CREATE TABLE tbl_name;

方式二:只查看表的校验规则(5.7以上不支持)
show table status from db_name like  tbl_name;

查看表中所有字段的编码(包括校验规则Collation):

SHOW FULL COLUMNS FROM tbl_name;

命令积累(修改):

修改数据库字符集:

ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE …];

[ ]代表可写可不写

如:ALTER DATABASE db_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

修改库的字符集不会对已存在表产生影响,只会对新创建未指定字符集的表赋予默认字符集

修改表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)的字符集改为新的字符集:

ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE …] 

如:alter table tbl_name convert to character set utf8mb4 collate utf8mb4_general_ci;
如果省略collate的指定
alter table tbl_name convert to character set utf8mb4;
不写collate utf8mb4_general_ci代表collate utf8mb4;  
COLLATE是改校验规则(也叫排序规则)    CHARACTER SET是改字符集
注意:
上述操作是在字符集中转换列值。如果某个字符列存储的值使用的是其它的一些不兼容的字符集,那么该操作将不会得到期望的结果。在这种情况下,用户必须再对单独的字段(字符列)操作

只修改表的默认字符集而不改变已存在字符列(CHAR,VARCHAR,TEXT)的字符集:

ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE …]; 

如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

只修改表和所有字符列的校验规则(不改字符集,校验规则得改成当前字符集有的) :

ALTER TABLE tbl_name COLLATE=…;

如: alter tbl_name collate=utf8mb4_general_ci ;

修改单个字段(字符列)的字符集:

ALTER TABLE tbl_name CHANGE c_name1 c_name2 CHARACTER SET character_name [COLLATE …]; 

如:ALTER TABLE tbl_name CHANGE title1 title2 CHARACTER SET utf8 COLLATE utf8_general_ci;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
无监督对比学习是一种用于训练深度神经网络的自监督学习方法,它在没有标签的大规模未标记数据上进行训练。该方法通过使模型学习将相似样本聚集在一起,将不相似样本分开来,从而学习到有用的特征示。 以下是几种常见的无监督对比学习方法: 1. MoCo(Momentum Contrast):MoCo是一种基于对比学习的方法,它使用了动量更新策略来增强对比学习的性能。它通过构建一个动态的字典来扩展正样本的数量,并使用动量更新策略来提高特征的一致性。 2. SimCLR(Simple Contrastive Learning):SimCLR是一种简单而有效的对比学习方法,它通过最大化正样本间的相似性并最小化负样本间的相似性来进行训练。SimCLR使用了数据增强和大批量训练等技术来提高性能。 3. SwAV(Swapping Assignments between Views):SwAV是一种基于视图交换的对比学习方法,它通过交换不同视图下的样本分配来增强对比学习过程。SwAV还使用了聚类损失来进一步优化特征示。 4. BYOL(Bootstrap Your Own Latent):BYOL是一种基于自举的对比学习方法,它通过预测一个网络的自我编码器输出来进行训练。BYOL使用了移动平均权重和在线网络更新等技术来提高性能。 5. SimSiam(Simplified Siamese):SimSiam是一种简化的孪生网络对比学习方法,它通过最大化网络预测的一致性来进行训练。相比于传统的对比学习方法,SimSiam省略了负样本的构造过程,简化了训练过程。 这些无监督对比学习方法在图像和自然语言处理等领域都取得了很好的效果,并且被广泛应用于预训练模型的训练中。每种方法都有其独特的特点和优势,可以根据具体任务和数据集选择适合的方法进行使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值