《MySQL入门教程》第28篇字符集与排序规则

本文介绍MySQL的CharacterSet和Collat​​ion规则,它们决定了系统支持的字符数据和存储方式,以及如何对不同字符进行比较和排序。
MySQL服务器、数据库、表、字符类型字段和字符串常量都可以定义字符集和集合。
字符集指定可以保存的字符类型,例如ASCII、GB2312或Unicode。
集合规则指定字符分布和比较顺序,包括大小写和重音。
要查看所有MySQL字符集,请使用SHOWCHARACTERSET命令。
从MySQL8.0开始,默认字符集改为utf8mb4,单个字符最多可容纳4个字节,用于存储表情符号。
MySQLServer支持多种字符集设置,包括服务器、数据库、表、字段和常量字符串。
SHOW命令检查当前设置,例如,character_set_server在配置文件中引用,或者可以在启动时设置并动态运行。
数据库和表字符集影响字段和字符串如果不指定,则默认使用全局字符集和集合。
使用SHOWCREATEDATABASE或information_schema.schemata视图查看数据库设置,使用SHOWCREATEDABLE或information_schema.table视图查看表设置。
字段字符集和设置优先于表设置、数据库设置等。
MySQL中的字符串常量也有字符集和集合,以及未定义时的默认连接字符集。
字符集和设置规则影响MySQL字符函数,例如LENGTH返回字节长度,CHAR_LENGTH返回字符长度;连接参数中设置客户端字符集,保证与服务器端的字符集一致,避免转换问题。
系统变量character_set_system用于存储元数据字符集,character_set_filesystem用于文件系统字符集解析,character_sets_dir表示字符集存储目录。
SQL标准提供了NATIONALCHAR和NATIONALVARCHAR字符串类型,使用utf8字符集作为预定义的字符集。
'Literally'是国家字符集中的常量字符串它代表每个MySQL字符集都支持多种组合,指定字符比较规则、大小写和重音。
MySQL默认的排序规则是上下文和大小写不敏感的,可以更改为上下文和大小写敏感的规则。
可以设置不同级别的排序规则。
set包含字符集信息,setting通常设置字符集。
例如,使用utf8mb4_0900_ai_ci创建表意味着使用utf8mb4字符集和特定集。
对于中文排序,MySQL默认的规则是按弧度排序,你可以更改排序规则为按拼音或笔画排序。
转换为其他字符集(例如GBK)以应用特定的排序规则(例如拼音排序)。

sqlserver跨服务器联查mysql

在和同事讨论SQLServer和MySQL的互操作问题时,遇到了一些问题网上的资源主要都是碎片信息。
经过培训和整理,我将整个过程分享如下:第一步:安装MySQLODBC驱动首先,从dev.mysql.com下载mysql-connector-odbc-8.0.28-winx64.msi,需要安装VisualStudio(我选择了VisualStudioCommunity2019forWindowsx64)并安装了高级开发功能。
第二步:配置数据源在控制面板的管理工具中,打开ODBC,选择64位版本,创建用户DSN。
安装MySQLODBC8.0UnicodeDriver,因为它支持多种语言。
设置数据源名称、描述、服务器信息(如TCP/IP服务器和端口)、用户名和密码以及数据库名称。
SQLServer连接在SQLServer管理器中配置,并检查此MSDASQL接口是否与SQLOLEDB不同,第一个基于ODBC,第二个直接与SQLServer交互。
建议使用SQLServer自带的SQLOLEDB作为OLEDB提供程序。
创建SQLServer链接服务器在连接服务器设置中,进行连接测试,确保SQLServer与MySQL之间的相互查询功能可用。
测试连接成功后,即可进行跨服务器数据查询和操作。