前言

简单介绍一下字符集。

数据库表被用来存储和检索数据。不同的语言和字符集需要以不同的方式存储和检索。

因此,MySQL需要适应不同的字符集(不同的字母和字符),适应不同的排序和检索数据的方法。

  1. 字符集为字母和符号的集合;

  2. 编码为某个字符集成员的内部表示;

  3. 校对为规定字符如何比较的指令。

校对为什么重要 排序英文正文很容易,对吗?或许不。考

虑词APE、apex和Apple。它们处于正确的排序顺序吗?这有

赖于你是否想区分大小写。使用区分大小写的校对顺序,这

些词有一种排序方式,使用不区分大小写的校对顺序有另外

一种排序方式。这不仅影响排序(如用ORDER BY排序数据),

还影响搜索(例如,寻找apple的WHERE子句是否能找到

APPLE)。在使用诸如法文à或德文ö这样的字符时,情况更复

杂,在使用不基于拉丁文的字符集(日文、希伯来文、俄文

等)时,情况更为复杂。

在MySQL的正常数据库活动(SELECT、INSERT等)中,不需要操心太多的东西。使用何种字符集和校对的决定在服务器、数据库和表级进行。

正文

MySQL支持众多的字符集。为查看所支持的字符集完整列表,使用以下语句:

SHOW CHARACTER SET;

这条语句显示所有可用的字符集以及每个字符集的描述和默认校对。

为了查看所支持校对的完整列表,使用以下语句:

SHOW  COLLATION;

此语句显示所有可用的校对,以及它们适用的字符集。可以看

到有的字符集具有不止一种校对。例如,latin1对不同的欧洲

语言有几种校对,而且许多校对出现两次,一次区分大小写(由_cs表示),

一次不区分大小写(由_ci表示)。

通常系统管理在安装时定义一个默认的字符集和校对。此外,也可

以在创建数据库时,指定默认的字符集和校对。为了确定所用的字符集

和校对,可以使用以下语句:

SHOW VARIABLES LIKE 'character%';
SHOW VARIABLES LIKE 'collation%';

实际上,字符集很少是服务器范围(甚至数据库范围)的设置。

不同的表,甚至不同的列都可能需要不同的字符集,而且两者都可以在创建表时指定。

此语句创建一个包含两列的表,并且指定一个字符集和一个校对顺序。

这个例子中指定了CHARACTER SET和COLLATE两者。一般,MySQL如下确定使用什么样的字符集和校对。

如果指定CHARACTER SET和COLLATE两者,则使用这些值。

如果只指定CHARACTER SET,则使用此字符集及其默认的校对(如SHOW CHARACTER SET的结果中所示)。

如果既不指定CHARACTER SET,也不指定COLLATE,则使用数据库默认。

除了能指定字符集和校对的表范围外,MySQL还允许对每个列设置它们,如下所示:

这里对整个表以及一个特定的列指定了CHARACTER SET和COLLATE。

如前所述,校对在对用ORDER BY子句检索出来的数据排序时起重要的作用。

如果你需要用与创建表时不同的校对顺序排序特定的SELECT语句,可以在SELECT语句自身中进行:

此SELECT使用COLLATE指定一个备用的校对顺序(在这个例子中,为区分大小写的校对)。这显然将会影响到结果排序的次序。

临时区分大小写 上面的SELECT语句演示了在通常不区分大小写的表上进行区分大小写搜索的一种技术。当然,反过来也是可以的。

SELECT的其他COLLATE子句 除了这里看到的在ORDER BY子 句中使用以外,COLLATE还可以用于GROUP BY、HAVING、聚集函数、别名等。

最后,值得注意的是,如果绝对需要,串可以在字符集之间进行转换。为此,使用Cast()或Convert()函数。

下一节账户安全。

mysql 必知必会整理—全球化与本地化[十六]的更多相关文章

  1. 《MySQL必知必会》整理

    目录 第1章 了解数据库 1.1 数据库基础 1.1.1 什么是数据库 1.1.2 表 1.1.3 列和数据类型 1.1.4 行 1.1.5 主键 1.2 什么是SQL 第2章 MySQL简介 2.1 ...

  2. 《MySQL必知必会》学习笔记整理

    简介 此笔记只包含<MySQL必知必会>中部分章节的整理笔记.这部分章节主要是一些在<SQL必知必会>中并未讲解的独属于 MySQL 数据库的一些特性,如正则表达式.全文本搜索 ...

  3. MySQL必知必会(第4版)整理笔记

    参考书籍: BookName:<SQL必知必会(第4版)> BookName:<Mysql必知必会(第4版)> Author: Ben Forta 说明:本书学习笔记 1.了解 ...

  4. 《MySQL 必知必会》读书总结

    这是 <MySQL 必知必会> 的读书总结.也是自己整理的常用操作的参考手册. 使用 MySQL 连接到 MySQL shell>mysql -u root -p Enter pas ...

  5. 《MySQL必知必会》[01] 基本查询

    <MySQL必知必会>(点击查看详情) 1.写在前面的话 这本书是一本MySQL的经典入门书籍,小小的一本,也受到众多网友推荐.之前自己学习的时候是啃的清华大学出版社的计算机系列教材< ...

  6. 【MySQL 基础】MySQL必知必会

    MySQL必知必会 简介 <MySQL必知必会>的学习笔记和总结. 书籍链接 了解SQL 数据库基础 什么是数据库 数据库(database):保存有组织的数据的容器(通常是一个文 件或一 ...

  7. mysql学习--mysql必知必会1

     例如以下为mysql必知必会第九章開始: 正則表達式用于匹配特殊的字符集合.mysql通过where子句对正則表達式提供初步的支持. keywordregexp用来表示后面跟的东西作为正則表達式 ...

  8. mysql必知必会系列(一)

    mysql必知必会系列是本人在读<mysql必知必会>中的笔记,方便自己以后查看. MySQL. Oracle以及Microsoft SQL Server等数据库是基于客户机-服务器的数据 ...

  9. 《mysql必知必会》读书笔记--存储过程的使用

    以前对mysql的认识与应用只是停留在增删改查的阶段,最近正好在学习mysql相关内容,看了一本书叫做<MySQL必知必会>,看了之后对MySQL的高级用法有了一定的了解.以下内容只当读书 ...

  10. mysql必知必会

    春节放假没事,找了本电子书mysql必知必会敲了下.用的工具是有道笔记的markdown文档类型. 下面是根据大纲已经敲完的章节,可复制到有道笔记的查看,更美观. # 第一章 了解SQL## 什么是S ...

随机推荐

  1. zabbix“专家坐诊”第178期问答汇总

    大家好,我是乐乐.早在三年前,我们就在社区举办了zabbix公益问答活动,并且定在每周三邀请资深的zabbix技术工程师,为社群的小伙伴进行免费的答疑.到现在已经178期了.后续我将会把每期的答疑汇总 ...

  2. python中记录打印的log模块logging的用法实例

    日志基础教程   日志是对软件执行时所发生事件的一种追踪方式.软件开发人员对他们的代码添加日志调用,借此来指示某事件的发生.一个事件通过一些包含变量数据的描述信息来描述(比如:每个事件发生时的数据都是 ...

  3. day02-SpringMVC映射请求数据

    SpringMVC映射请求数据 1.获取参数值 在开发中,如何获取到 http://xxx/url?参数名1=参数值1&参数名2=参数值2 中的参数? 之前的案例中我们知道:提交的url的参数 ...

  4. day32-JQuery05

    jQuery05 9.作业 9.1homework01 对多选框进行操作,输出选中的多选框的个数,并且把选中爱好的名称显示. <!DOCTYPE html> <html lang=& ...

  5. KTL 一个支持C++14编辑公式的K线技术工具平台 - 第九版,数据分析工具。支持通达信日线数据。增强即时插件编程体现。

    K,K线,Candle蜡烛图. T,技术分析,工具平台 L,公式Language语言使用c++14,Lite小巧简易. 项目仓库:https://github.com/bbqz007/KTL 国内仓库 ...

  6. Client请求外部接口标准处理方式

    简单记录下client外部请求代码的我认为比较标准的书写格式 public List<GdtDailyBalanceReportAO> getGdtDailyReportList2(Lon ...

  7. 【jQuery】(8)---jquery Ajax

    jquery ajax 一.AJAX 概述 1.什么是 AJAX? 特点 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使 ...

  8. JS(DOM事件高级)

    一 注册事件(绑定事件) 1.1 注册事件概述 给元素添加事件,称为注册事件或者绑定事件.注册事件有两种方式:传统方式和方法监听注册方式 1.2 addEventListener 事件监听方式 eve ...

  9. Python简单程序设计(Average篇)

    如题: 解题方式如下:

  10. WPF多数类概念性注册加自动扫描

    在java中springboot的配置应用了自动扫描 @ComponentScan(value = {"com.example", "com.fox"}) 而对 ...