从 SQL Server 2019 (15.x) 起,使用启用了 UTF-8 的排序规则时,这些数据类型会存储 Unicode 字符数据的整个范围,并使用 UTF-8 字符编码。...从 SQL Server 2012 (11.x) 起,使用启用了补充字符 (SC) 的排序规则时,这些数据类型会存储 Unicode 字符数据的整个范围,并使用 UTF-16 字符编码。...排除python程序编码问题,那接下来就是要排查从程序插入到数据库这一段的问题了。 3.SQL Server排序规则 首先插入这一阶段我想到的还是编码问题,所以去查询了数据库编码。...排序规则微软解释:排序规则 SQL Server 中的排序规则可为您的数据提供排序规则、区分大小写属性和区分重音属性。...无论你是要安装 SQL Server 的新实例、还原数据库备份,还是将服务器连接到客户端数据库,都必须了解正在处理的数据的区域设置要求、排序顺序以及是否区分大小写和重音。
SQL Server不区分大小写的问题 默认情况下,SQL Server不区分大小写,如果数据表TEST的TNAME列中有数据“abcd”和“Abcd”, 如果使用查询语句:select * from...可以通过设置排序规使其区分大小写,可以分别在创建数据库、修改数据库、创建表的字符型列(char\varchar\nchar \nvarchar等)时指定排序规则来实现。...如 create database test COLLATE Chinese_PRC_CS_AS --这样创建的数据库中区分大小写 alter database test COLLATE Chinese_PRC_CS_AS... --修改后的数据库中区分大小写 Create table test(tid int primary key,tname varchar(20) COLLATE Chinese_PRC_CS_AS...) --这样创建的tname列在使用SELECT 语句时就可以区分大小写了。
而对于英语,就没有“拼音”和“姓氏笔画”,但是可以分为区分大小写、不区分大小写等等,而其他语言下面也有自己特定的排序规则。...在SQL Server中,任何一种字符集的数据库,都能存储任何一种语言的字符。...SQL Server中的字符集和排序规则 排序规则只不过是指定了存储的数据的排序(比较)规则而已,换句话说就是,排序规则中已经包含了字符集的信息。...所以要想区分大小写,有没有特殊需求,就直接使用utf8_bin(实际上***_general_cs在MySQL中本身就不支持,在SQL Server中支持)。...以上字符集的特点以及使用情况在SQL Server中表现为类似。
注:我用的是Sql Server 2005。...END CLOSE local_table_cursor DEALLOCATE local_table_cursor GO 二、参数介绍 Chinese_PRC_指针对大陆简体字UNICODE的排序规则...排序规则的后半部份(即后缀)含义: _BIN 二进制排序_CI(CS) 是否区分大小写:CI不区分,CS区分 _AI(AS) 是否区分重音:AI不区分,AS区分 _KI(KS) 是否区分假名类型:... 的路径: C:/Program Files/Microsoft SQL Server/80/Tools/Binn/rebuildm.exe 若要修改排序规则,按照上面的参数设置即可...若只修改一个表,用ALTER TABLE语句 若修改一个库的默认排序规则,用ALTER DATABASE语句 若修改整个服务器的默认排序规则,用Rebuildm.exe重建master库
原文地址:http://sunzy.blog.51cto.com/1567669/820672 最近在测试XD5.6,单独部署了数据库服务器(SQL Server 2005 sp4)。...首先排查问题: 1、先查看DDC和数据库之前能否ping通; 2、DDC服务器和数据库服务器防火墙是否关闭; 3、查看数据库服务器有没有开TCP/IP协议;(SQL 配置管理器设置) 4、查看数据库排序...(新建数据库---选项---排序规则) 其实XenApp连接数据库比较简单,只要在新建数据库,记住数据库服务器名称和新建的数据库名字。如何Windows验证测试一般都可以通过。...重要: 如果您计划使用手动创建的外部数据库(而非使用 Desktop Studio 创建的数据库),请确保数据库管理员在创建数据库时使用以下排序规则设置:Latin1_General_CI_AS_KS(...手动新建的数据库,你可以在“选项”里修改“排序规则”为“Chinese_RPC_CI_AI_KS”。 上面红色叉提示“数据库合并序列必须不区分大小写,但区分重音和假名类型”。这个就是排序的问题。
排序规则是一组用于比较字符集中的字符的规则。 每个 MySQL 字符集可以支持一个或者多个排序规则,用于定义每个字符的比较规则,包括是否区分大小写,是否区分重音等。...这是排序规则的唯一标识符,您可以在创建或更改表时使用它来指定表的排序规则。 Charset:字符集的名称。排序规则是与特定字符集关联的,该列显示了该排序规则适用的字符集。 Id:排序规则的内部编号。...utf8mb4_0900_ai_ci,表示不区分重音和大小写。...与 character_set_server 对应,表示 MySQL 服务器的全局默认排序规则,可以在服务器配置文件中 [mysqld] 部分的 collation-server 选项或者启动服务时通过命令行参数...排序规则由字符集的名称、可选的本地语言代码和 Unicode 版本以及其他属性组成,例如 utf8mb4_zh_0900_as_cs 表示 9.0.0 版本 utf8mb4 字符集的中文排序规则,区分重音
COLLATE排序规则可能的影响排序规则 (COLLATE) 定义了字符串比较和排序的规则,包括:大小写敏感性:区分大小写的规则(如 _bin 排序规则)和不区分大小写的规则(如 _ci)。...字符比较规则:某些排序规则会将字符视为等价,比如带重音的字符(é 和 e)在一些规则中可能被视为相同。...常见排序规则对 LIKE 的影响:以下是几种典型排序规则及其对 LIKE 的影响:大小写不敏感(默认,如 utf8mb4_general_ci 或 utf8mb4_unicode_ci): LIKE...如果排序规则忽略重音(如 utf8mb4_general_ci),则 LIKE 'cafe%' 可能匹配 café 和 cafe。...在 utf8mb4_bin 中,重音符号会被严格区分,因此 café 和 cafe 是不同的。6. 总结不可见字符如零宽空白符可能引发查询和匹配异常,问题解决需从排查、修复和预防三方面入手。
具体来说,它决定了以下几个方面: 字符的大小写敏感性:有些排序规则区分字符的大小写,而其他规则不区分。这影响了文本的大小写比较结果。...特殊字符的处理:排序规则可能会影响特殊字符(如重音符号、附加符号)的处理方式。一些规则将这些字符视为等同,而其他规则将其视为不同。 排序顺序:不同排序规则可能会导致字符的不同排序顺序。...所以它们被认为是一样的,不会有特定的排序顺序。 示例2:特殊字符处理规则 考虑两个带有重音符号的字符串:"café"和"cafe"。...使用utf8generalci排序规则时,这两个字符串被认为是相同的,因为它不考虑重音符号。所以它们被排序在一起。 使用utf8_bin排序规则时,这两个字符串被视为不同,因为它区分重音符号。...如果需要,选择大小写敏感的排序规则(如utf8_bin)。 **特殊字符需 求**:如果你的数据包含特殊字符(如重音符号),请确保选择了适当处理这些字符的排序规则。
这个排序规则指的是在查询数据(`select * from xxx`)的时候的排序规则。...- `ci`表示不区分大小写 - `cs`表示区分大小写 - `ai`表示不区分轻重音 - `as`表示区分轻重音 # 三、MySQL数据结构 官网直达: [https://dev.mysql.com...; - TEXT用于存储大的字符串类型; # 四、数据库操作 常见的SQL语句我们可以分成四类: - DDL(Data Definition Language):数据定义语言; - 可以通过DDL...; ## 3.1 DDL ```sql # 1....创建一个新的数据库 CREATE DATABASE douyu; -- 创建的时候判断是否存在,避免报错 -- CREATE DATABASE IF NOT EXISTS douyu; -- 创建的时候判断并指定字符集和排序规则
utf8mb4_bin 和 utf8mb4_general_ci 是两种常用的排序规则,它们的主要区别在于是否区分大小写以及是否考虑字符的语言特性。下面通过详细案例来帮助你理解这两者的差异。...1. utf8mb4_bin 排序规则utf8mb4_bin 是一种二进制排序规则,表示比较字符时是基于字符的二进制值进行逐位比较的,完全区分大小写,并且不会做任何的语言或文化特性转换。...2. utf8mb4_general_ci 排序规则utf8mb4_general_ci 是一种不区分大小写的排序规则,表示比较字符时会将大小写视为相同,并且会做一些简单的语言处理以适应不同的字符(如重音符号的忽略...特点:不区分大小写:字符 'a' 和 'A' 会被认为是相同的字符。忽略重音符号:例如,'é' 和 'e' 会被视为相同的字符。..._general_ci 排序规则下,查询会匹配到小写的 "apple",大写的 "Apple" 和 "APPLE",因为它不区分大小写。
/my.cnf中这样写: character-set-server=utf8 collation-server=utf8_unicode_ci 4.2....数据库级别 character_set_database : 当前数据库的字符集 我们在创建和修改数据库的时候可以指定字符集和比较规则,具体的语法如下:```sql CREATE DATABASE 数据库名...SET 字符集名称] [[DEFAULT] COLLATE 比较规则名称] 其中的DEFAULT 可以省略,并不影响语句的语义,比如: ```sql mysql> create database demodb1...后缀表示该比较规则是否区分语言中的重音,大小写,具体如下:| 后缀 | 英文释义 | 描述| |--|--|--| | _ai | accent insensitive | 不区分重音 | | _as...| accent sensitive | 区分重音 | | _ci |case insensitve | 不区分大小写| | _cs |case sensitive | 区分大小写| | _bin |
每个 char 和 varchar 数据值都具有排序规则。排序规则定义属性,如用于表示每个字符的位模式、比较规则以及是否区分大小写或重音。每个数据库有默认排序规则。...当定义列或指定常量时,除非使用 COLLATE 子句指派特定的排序规则,否则将为它们指派数据库的默认排序规则。...当组合或比较两个具有不同排序规则的 char 或 varchar 值时,根据排序规则的优先规则来确定操作所使用的排序规则。 字符常量必须包括在单引号 (') 或双引号 (") 中。...每个 Microsoft SQL Server 排序规则都有一个代码页,该代码页定义表示 char、varchar 和 text 值中每个字符的位模式。可为个别的列和字符常量分配不同的代码页。...所有 Unicode 数据使用由 Unicode 标准定义的字符集。用于 Unicode 列的 Unicode 排序规则以下列属性为基础:区分大小写、区分重音、区分假名、区分全半角和二进制。
原文地址:http://database.51cto.com/art/201010/231018.htm SQL Server创建表是最常见也是最常用的操作之一,下面就为您介绍SQL Server...创建表的语句写法,供您参考,希望可以让您对SQL Server创建表方面有更深的认识。...[db_table9](仓库号, 面积) values(‘400’, 1600); 仓库编号会自动增加 8:创建含有排序字段的数据表 [sql] view plain copy create...,其中CI(case insensitive)表示不区分大小写,AI(accent insensitive)表示不区分重音,即创建的是一个不区分大小写 和不区分重音的排序。...如果要区分大小和和区分排序,修改代码为:French_CS_AS 9:动态判断数据库表是否存在 [sql] view plain copy use db_sqlserver; go
其实每个字符集下对应着若干个比较规则(也可以翻译为排序规则或校对规则,英文是COLLATE),同一字符集下,使用不同的比较规则会影响字符字段的比较和排序。...名称后缀意味着该比较规则是否区分语言中的重音、大小写啥的,具体可以用的值如下: 后缀 英文释义 描述 _ai accent insensitive 不区分重音 _as accent sensitive...区分重音 _ci case insensitive 不区分大小写 _cs case sensitive 区分大小写 _bin binary 以二进制方式比较 比如utf8_general_ci这个比较规则是以...服务器级别的比较规则由collation_server参数控制,如果创建数据库、表、列时没有显式的指定比较规则,则会继承上一级的比较规则。...如果某个表或列字段要求区分大小写,可以单独指定该表或字段使用utf8_bin比较规则。 最后以思维导图的方式总结下本文的主要内容: ?
COLLATE sqlcollation - 可选-指定以下SQL排序规则类型之一:%Exact、%Minus、%Plus、%SPACE、%SQLSTRING、%SQLUPPER、%TRUNCATE或%...默认值为名称空间默认排序规则(除非更改,否则为%SQLUPPER)。%SQLSTRING、%SQLUPPER和%TRUNCATE可以使用可选的最大长度截断参数(括在圆括号中的整数)指定。...表名和模式名遵循SQL标识符命名约定,受使用非字母数字字符、唯一性和最大长度的附加约束。以%字符开头的名称保留供系统使用。默认情况下,模式名和表名是简单标识符,不区分大小写。...然后, IRIS生成唯一的包名,施加唯一性和最大长度限制。 可以对架构和表使用相同的名称。同一架构中的表和视图不能使用相同的名称。 架构名称不区分大小写;相应的类包名称区分大小写。...对于大多数区域设置,可以使用重音字母作为表名,并且重音符号包含在生成的类名中。
尾随空格的%STARTSWITH行为取决于数据类型和排序规则类型。 %STARTSWITH忽略定义为SQLUPPER的字符串子串的尾随空格。...通常这是一个有或没有重音标记的字符,例如在Czech2区域设置中,其中CHAR(65)和CHAR(193)都排序为“a”。 %STARTSWITH将这些字符识别为等效字符。...默认情况下,Contains操作符比较是区分大小写的,即使字段被定义为不区分大小写。 使用SQL Search进行上下文感知的等价比较。...SQL Search的一个用途是确定一个值是否包含指定的单词或短语。 SQL搜索不区分大小写。...此字符串比较使用Name排序规则类型来确定比较是否区分大小写。 注意:当在运行时提供谓词值时(使用?
2、性能 utf8mb4_general_ci 在比较和排序的时候更快 utf8mb4_unicode_ci 在特殊情况下,Unicode 排序规则为了能够处理特殊字符的情况,实现了略微复杂的排序算法。...ci 表示不区分大小写。也就是说,排序时 p 和 P 之间没有区别。...utf8mb4 已成为默认字符集,在 MySQL 8.0.1 及更高版本中将 utf8mb4_0900_ai_ci 作为默认排序规则。以前,utf8mb4_general_ci 是默认排序规则。...由于 utf8mb4_0900_ai_ci 排序规则现在是默认排序规则,因此默认情况下新表格可以存储基本多语言平面之外的字符。现在可以默认存储表情符号。...如果需要重音灵敏度和区分大小写,则可以使用 utf8mb4_0900_as_cs 代替。
管理排序规则 排序规则是SQL模式对象,它将SQL名称映射到操作系统中安装的库提供的语言环境。 排序规则定义中有一个提供程序, 它指定哪个库提供语言环境数据。...由ICU提供的排序规则是在SQL环境中创建的,名称采用BCP 47语言标记格式, 并附有一个“专用”扩展名-x-icu, 以将它们与libc语言环境区分开来。...创建新的排序规则对象 如果标准和预定义的排序规则不够用,用户可以使用SQL命令 CREATE COLLATION创建自己的排序规则对象。...第二个示例使用传统的 ICU特定区域设置语法。第一种风格是首选, 但它不受旧版ICU支持。 请注意,您可以在SQL环境中任意指定排序规则对象的名称。...请注意,虽然此系统允许创建“忽略大小写”或“忽略重音符” 或类似(使用ks键)的排序规则, 但PostgreSQL目前不允许这样的排序规则以真正的不区分大小写或不区分重音的方式进行操作。
任何计算机存储数据,都需要字符集,因为计算机存储的数据其实都是二进制编码,将一个个字符,映射到对应的二进制编码的这个映射就是字符编码(字符集)。这些字符如何排序呢?决定字符排序的规则就是排序规则。...最后末尾的ci代表case insensitive,大小写不敏感,所有可能的后缀如下所示: ai: accent insensitive 不区分重音 as: accent sensitive 区分重音...只修改比较规则,则字符集将变为修改后的比较规则对应的字符集。 实例级别 通过两个系统变量来指定实例级别的字符集与排序规则。...,并不会更新老表的字符集还有排序规则。...表级别 可以在创建时指定字符集合排序规则,不指定的话,用数据库的字符集还有排序规则,也可以修改字符集和排序规则。
领取专属 10元无门槛券
手把手带您无忧上云