MySQL4.1以前版本服务器只能使用单一字符集,从MySQL4.1版本开始,不仅服务器能够使用多种字符集,而且在服务器、数据库、数据表、数据列以及字符串常数多个级别上设置不同的字符集。

1.4.1. MySQL4.1以前版本

MySQL4.1以前版本的字符集由服务器默认指定,默认值是编译系统时指定的字符集,该字符集也可通过在启动服务器时指定--default-character-set来修改。这种修改会对数据表的索引造成影响,因为索引的顺序是和字符集有关的,修改字符集会使这个已排序的顺序产生错误。要解决该问题,我们要用修改后的字符集的排序顺序重建表的索引。重建索引有以下几种方法:

用mysqldump导出数据,再清除表里的内容,最后用导出文件重新导入。数据表的索引将在导入数时重建。该方法适用于所有数据表类型。

删除索引,然后重建。用alter table命令或drop index和create index命令来完成。该方法也适用于所有数据表类型。但该方法需要我们了解重建索引的精确定义。

MyISAM数据表的索引可以用myisamchk程序的--recover和--quick选项加上一个用来设定新字符集的--set-character-set选项进行重建。还可以用mysqlcheck程序的--repair和--quick选项或者一个带QUICK选项的REPLACE TABLE语句来重建索引,这种方式较方便。

1.4.2. MySQL4.1以后版本

MySQL4.1以后的版本对字符集的支持好了很多,具有以下新增功能:

支持服务器同时使用多种字符集。

允许在服务器,数据库,数据表,数据列等多级别上设置不同的字符集。

服务器的默认字符集在编译时选定,但可在启动服务器时用--default-character-set选项来更改。

用ALTER DATABASE db_name DEFAULT CHARACTER SET charset来设置数据库字符集。 如果只有default参数,则使用服务器的字符集。

用CREATE TABLE table_name(...) CHARACTER SET = charset设置数据表字符集。如果charset为default,则使用数据表所在数据库的字符集作为数据表的字符集。

在数据列中,可用CHARACTER SET charset属性来设置数据列的字符集。charset不能是default,如果没有该属性,则默认使用数据表的字符集。允许设置字符集的数据列有char,varchar(不带binary属性)及TEXT类型。

用_charset str转换字符串常数的字符集。如:_utf8 'mysql',_latinl 'oracle'。该方法只适用于括在引号内的字符串,其它十六进制常数 、字符串表达式等可用CONVERT()函数进行转换,如:SELECT CONVERT( str USING charset)。

通过MySQL提供的函数可进行字符集转换和查询。

新增的COLLATE操作符使我们可按某一种字符集的排序顺序来处理另一种字符集的数据。如:SELECT a from t ORDER BY a COLLATE utf-8;

用SHOW CHARACTER SET命令可显示服务器支持的字符集列表。

当服务器转换到另一种字符集时,会自动对索引进行重新排序。

通过UTF-8和UCS2字符集提供了Unicode支持。

MySQL现在还不支持:1,在同一个字符串里混用不同字符集的字符;2,在同一个数据列里混用不同的字符集。

1.4.3. 各级字符集的查询方法

服务器级

SHOW CHARACTER SET;可查出可供使用的所有字符集。

SHOW VARIABLES LIKE 'character_set';可查出服务器的默认字符集。

可查出数据库级的字符集。

SHOW CREATE DATABASE db_name;

两条命令可查出数据表的字符集。

SHOW CREATE TABLE table_name;

SHOW TABLE STATUS LIKE 'table_name'

以下几命令可查出数据列的字符集:

DESCRIBE table_name;

SHOW COLUMNS FROM table_name;

SHOW CREATE TABLE table_name;

用CHARSET()函数可确定特定字符串,字符串表达式或数据列值相关联的字符串的字符集。如:SELECT CHARSET(str)。

1.4.4. Unicode支持

MySQL提供两种字符集来支持Unicode。一个是UTF-8,一种可变长的编码格式,需用1至4个字节来表示一个字符;另一个是UCS2,该字符集中的每个字符需要用两个字节来表示。

mysql数据库字符集作用_MYSQL数据库字符集支持相关推荐

  1. mysql leave的作用_MySQL数据库中DELIMITER的作用

    以下的文章主要是向大家描述的是MySQL数据库中delimiter的作用是什么?我们一般都认为这个命令和存储过程关系不大,到底是不是这样的呢?以下的文章将会给你相关的知识,望你会有所收获. 下面是一个 ...

  2. mysql delimiter的作用_MySQL数据库中delimiter的作用概述

    以下的文章主要是向大家描述的是MySQL数据库中delimiter的作用是什么?我们一般都认为这个命令和存储过程关系不大,到底是不是这样的呢?以下的文章将会给你相关的知识,望你会有所收获. 其实就是告 ...

  3. mysql unicode转汉字_Mysql数据库表引擎与字符集

    Mysql数据库表引擎与字符集 1.服务器处理客户端请求 其实不论客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送一段文本(MySQL语句),服务器进程处理 ...

  4. mysql数据库的字符集设置_mysql数据库的字符集设置

    原文链接:http://blog.csdn.net/sin90lzc/article/details/7648439 作者:开浪裤 Notice:文章基于ubuntu系统而写 1.关于MySQL字符集 ...

  5. mysql数据库索引的作用_mysql数据库索引和引擎

    1. 数据库索引 1.1 索引作用 当我们在数据库表中查询数据时,若没有索引,会逐个遍历表格中的所有记录,表格中数据记录量大时很耗时.建立索引就像创建目录一样,直接通过索引找到数据存储位置,加快查找. ...

  6. 初识mysql数据字段属性_MySQL数据库~~~~初识、基础数据类型

    一 数据库初识 1.1 什么是数据库 数据库(DataBase,简称DB),简而言之可视为电子化的文件柜----存储电子文件的处所,用户可以对文件中的数据运行新增,截取,更新,删除等操作. 所谓数据库 ...

  7. MySQL数据库的总结_MySQL数据库应用总结(三)—MySQL数据库的基本操作

    SQL语法预览: 查看所有数据库:[show databases; ] 创建数据库:[create database 数据库名;] 查看所创建的数据库:[show create database 数据 ...

  8. 给mysql数据库设计编码_MYSQL数据库编码原理

    很多站长可能与织梦CMS小编一样,觉得MYSQL数据库即熟悉又神秘.熟悉是因为我们每天都会用到MYSQL进行安装织梦程序,陌生是因为mysql经常与linux联系,是基于linux系统的下的应用,而我 ...

  9. mysql数据库版本回退_mysql数据库

    数据库的简介 数据库 数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合.数据库中的数据按一定的数学模型组织.描述和存储,具有较小的冗余,较高的数据独立性和易扩展性, ...

最新文章

  1. emoji 乱码_这个自制emoji的网站,让你成为永远不输的斗图王者
  2. ubuntu 修改卷标
  3. html单击按钮时弹出输入框,点击按钮弹出模态框的一系列操作代码实例
  4. Windows下将nginx安装为服务运行
  5. juyter显示决策树图形_决策树分析细分市场
  6. sql语句分组mysql_以数据库字段分组显示数据的sql语句(详细介绍)
  7. 阿里云首席架构师解读开源和云端结合的三大优势
  8. jenkins 下载插件 一直失败_实用测试技能分享:jmeter+Jenkins性能测试自动化搭建...
  9. 北京大学生物信息学学习(3动态规划进行2序列比对的原理 )
  10. value数字 vue_Vue数字输入框组件使用方法详解
  11. Cannot open D:\Program Files\Anaconda\Scripts\pip3-script.py
  12. Halcon深度学习超参数
  13. 宅男福利:Python爬取某站所有漫画(赶紧收藏)
  14. [渝粤教育] 西南科技大学 行政法学与行政诉讼法学 在线考试复习资料
  15. wannacry作者捉到了吗_Wannacry事件解读
  16. 通过搜狐微博API,发带图片的微博
  17. CentOS6安装rpm时报错“Cannot find a valid baseurl for repo: centos-sclo-rh“的解决办法
  18. matlab在量子力学中的应用,一个关于量子力学中的matlab的问题
  19. BIM 360 二次开发入门
  20. 大数据概述:大数据生态系统

热门文章

  1. Python爬虫入门教程 21-100 网易云课堂课程数据抓取
  2. centos7下安装maven
  3. easyui英文提示变中文
  4. 小技巧-取消新版outlook中应用商店加载项
  5. 通过url,获取html内容,并解析
  6. 搜索引擎选择: Elasticsearch与Solr
  7. 文字在div中垂直居中
  8. 管理员修改文件的权限
  9. 程序员的职业素养(读书笔记)-- 第一章
  10. 谈谈中小创业型网站防DDOS及CC,我的草根站长经历。