一直对MySQL中的Collation不是很了解.
今天翻了把google, 官方文档的翻译是这样的:
连接是:http://dev.mysql.com/doc/refman/5.1/zh/charset.html#charset-general
引用
10.1. 常规字符集和校对
字符集是一套符号和编码。校对规则是在字符集内用于比较字符的一套规则。让我们使用一个假想字符集的例子来区别清楚。
假设我们有一个字母表使用了四个字母:‘A’、‘B’、‘a’、‘b’。我们为每个字母赋予一个数值:‘A’=0,‘B’= 1,‘a’= 2,‘b’= 3。字母‘A’是一个符号,数字0是‘A’的编码,这四个字母和它们的编码组合在一起是一个字符集。
假设我们希望比较两个字符串的值:‘A’和‘B’。比较的最简单的方法是查找编码:‘A’为0,‘B’为1。因为0 小于1,我们可以说‘A’小于‘B’。我们做的仅仅是在我们的字符集上应用了一个 校对规则。校对规则是一套规则(在这种情况下仅仅是一套规则):“对编码进行比较。”我们称这种全部可能的规则中的最简单的 校对规则为一个binary(二元)校对规则。
但是,如果我们希望小写字母和大写字母是等价的,应该怎样?那么,我们将至少有两个规则:(1)把小写字母‘a’和‘b’视为与‘A’和‘B’等价;(2)然后比较编码。我们称这是一个大小写不敏感的 校对规则。比二元校对规则复杂一些。
在实际生活中,大多数字符集有许多字符:不仅仅是‘A’和‘B’,而是整个字母表,有时候有许多种字母表,或者一个东方的使用上千个字符的书写系统,还有许多特殊符号和标点符号。并且在实际生活中,大多数 校对规则有许多个规则:不仅仅是大小写不敏感,还包括重音符不敏感(“重音符” 是附属于一个字母的符号,象德语的‘Ö’符号)和多字节映射(例如,作为规则‘Ö’=‘OE’就是两个德语 校对规则的一种)。
MySQL5.1能够做这些事情:
· 使用多种字符集来存储字符串
· 使用多种校对规则来比较字符串
· 在同一台服务器、同一个数据库或甚至在同一个表中使用不同字符集或校对规则来混合字符串
· 允许定义任何级别的字符集和校对规则
在这些方面,MySQL5.1不仅比MySQL4.1以前的版本灵活得多,而且比其它大多数数据库管理系统超前许多。但是,为了有效地使用这些功能,你需要了解哪些字符集和 校对规则是可用的,怎样改变默认值,以及它们怎样影响字符操作符和字符串函数的行为。
其中如果collation以ci结尾, 表示大小写不敏感, cs表示大小写敏感, bin表示采用二元校对规则.
分享到:
相关推荐
> -DDEFAULT_COLLATION=gbk_chinese_ci \ > -DENABLED_LOCAL_INFILE=ON \ > -DWITH_INNOBASE_STORAGE_ENGINE=1 \ > -DWITH_FEDERATED_STORAGE_ENGINE=1 \ > -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ > -DMYSQL_UNIX_...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,特别是在Web应用程序中。在Linux系统上安装MySQL的源码包,如mysql-5.0.45.tar.gz,是一个相对复杂但至关重要的过程,因为这涉及到系统的配置和安全设置。以下是...
./configure --prefix=/usr/local/mysql --with-extra-charsets=all --with-charset=utf8 --with-collation=utf8_general_ci --datadir=/var/lib/mysql ``` 编译并安装MySQL: ```bash make && sudo make install ...
"MySQL RPM 安装文档" 本文档将介绍如何在 CentOS 7 中安装 MySQL 服务器,并对其进行基本...collation-server=utf8_general_ci init-connect='SET NAMES utf8' 保存更改后的 my.cnf 文件,然后重启 MySQL 服务器。
通过上述步骤,我们已经在 CentOS 6.4 系统中成功安装并配置了 MySQL 5.5.32 数据库。此过程不仅包括了基本的安装步骤,还涉及到了多实例部署和高级配置选项,为用户提供了一个完整且详细的指南。
A:可以在 my.cnf 文件中设置 character-set-server 和 collation-server 参数。 Q:如何设置 MySQL 的连接数? A:可以在 my.cnf 文件中设置 max_connections 参数。 Q:如何设置 MySQL 的默认存储引擎? A:可以...
6. **字符集和排序规则**:通过`character-set-server`和`collation-server`设置全局字符集和排序规则,例如`utf8`和`utf8_general_ci`。 7. **日志文件**:`general_log`和`general_log_file`开启查询日志,记录...
在 MySQL Workbench 中,物理数据模型是指针对某个具体的 RDBMS(关系型数据库管理系统)产品而设计的数据模型。在这个案例中,我们将创建一个订单系统的物理数据模型,并通过正向工程(Forward Engineering)将其...
cmake ../mysql-8.0.33 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DWITH_SSL=yes -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci ``` 7. **编译和安装**: 现在可以编译和安装MySQL了: `...
在 CentOS 6.5 系统中安装 MySQL 5.5.32,首先需要确保系统环境中具备必要的开发工具和库文件。这些依赖项包括 `ncurses-devel`、`libaio`、`bison`、`gcc-c++` 和 `openssl-devel`。 **步骤 1:安装必要的开发工具...
在本文中,我们将深入探讨如何在CentOS 6.6上编译安装MySQL 5.6,并配置主从复制,以实现数据的安全备份和负载均衡。 **一、MySQL编译安装** 1. **环境准备**:确保你的CentOS系统已经更新到最新,且安装了必要的...
3. 配置 MySQL 服务:将 MySQL 服务脚本添加到系统服务中,并设置 MySQL 服务的启动用户和组。 cp support-files/mysql.server /etc/init.d/mysqld chown –R mysql:mysql /data/mysql/data chmod 770 /data/mysql/...
MySQL 5.7版本作为MySQL系列中的一个较新版本,带来了许多新的特性和改进,特别是对性能优化方面做出了显著提升。本文将详细介绍如何在Linux环境下进行MySQL 5.7的初始化配置。 #### 二、环境准备 在进行MySQL 5.7...
$ docker run -d --name mysqlname mysql/mysql-server:8.0.18 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci ``` 这些命令将启动一个新的容器 mysqlname,并将 MySQL 服务器实例运行在...
DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_EXTRA_CHARSETS=all -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_SSL=yes -DWITH_ZLIB=system -DWITH_READLINE=system -...
为了便于操作,可以在 `/etc/profile` 中添加 MySQL 的 bin 目录到 PATH 环境变量中,并且定义一些常用的别名: ```bash export PATH=$PATH:/usr/local/mysql/bin alias mysql_start="mysqld_safe &" alias mysql_...
MYSQL 系统表 information_schema 中的关键信息是 MYSQL 站点进行渗透时快速定位重要信息的重要依据。下面是对 information_schema 中的各种表的详细解释: All_Tables 表 All_Tables 表提供了 MYSQL 数据库中所有...
collation-server=utf8_general_ci ``` 这样设置后,所有新建的数据库默认都将使用`utf8`字符集和`utf8_general_ci`排序规则。 以上就是MySQL 5.6在Linux环境下安装及主从配置的详细步骤。通过上述步骤,您可以完成...
在 MySQL Workbench 中,可以创建物理数据模型。物理数据模型是针对一个特定 RDBMS 产品的数据模型。在本文中,我们将创建一个订单系统的物理数据模型,该模型将具有一些 MySQL 的独特规范。 创建订单方案 首先,...
MySQL-JDBC反序列化漏洞是一种安全风险,出现在MySQL的Java驱动程序中,允许攻击者通过特定的JDBC连接参数触发反序列化过程,可能导致远程代码执行。这种漏洞主要利用了MySQL Connector/J,它是MySQL数据库与Java...