`
moogle
  • 浏览: 107953 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

MySQL 5.0 字符集

阅读更多

自4.1以后,MySQL增强了对字符集的支持。

名词解释:
—————————————————–
字符集(character set)是一套符号和编码。
而校对(collation)是在该字符集下,用于比较字符的一个规则。
—————————————————–

对于数据库,有四种级别的编码和整理设定:
1. server
2. database
3. table
4. column

  SQL标准只定义了server和database级别的字符集,MySQL在此基础上,增加了对table和column字符集的支持。下面是相应的语法:

1. server
————–
–character-set-server
–collation-server

编译时指定服务器编码
shell> ./configure –with-charset=latin1

shell> ./configure –with-charset=latin1 \
–with-collation=latin1_german1_ci

2. database
————–
CREATE DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]

ALTER DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]

eg: CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;

3. table
————–
CREATE TABLE tbl_name (column_list)
[[DEFAULT] CHARACTER SET charset_name] [COLLATE collation_name]]

ALTER TABLE tbl_name
[[DEFAULT] CHARACTER SET charset_name] [COLLATE collation_name]

eg: CREATE TABLE t1 ( … ) CHARACTER SET latin1 COLLATE latin1_danish_ci;

* The table character set and collation are MySQL extensions; there are no such things in standard SQL.

4. column (only available for CHAR, VARCHAR and TEXT)
————–
col_name {CHAR | VARCHAR | TEXT} (col_length)
[CHARACTER SET charset_name] [COLLATE collation_name]

eg:

CREATE TABLE Table1
(
column1 VARCHAR(5) CHARACTER SET latin1 COLLATE latin1_german1_ci
);

1. 客户端以什么字符集来发送SQL命令?
character_set_client

2. 当服务器接收到SQL命令时,它会将其转换成什么字符集?
character_set_connection and collation_connection
服务器将客户端发送的SQL命令从character_set_client转换到character_set_connection
在进行字符串比较时,collation_connection将起作用。
但是在进行column中字符串比较时,collation_connection将不起作用,因为column有自己的collation。

3. 服务器将以什么字符集发送 给果/错误信息 给客户端?
character_set_results

---------------------------------
有两个语句可以改变connection character set:
1. SET NAMES ‘charset_name’;
2. SET CHARACTER SET charset_name;

SET NAMES告诉服务器客户端将使用什么样的字符集来发送SQL命令,也同时指定服务器返回给客户端所使用的字符集。

SET NAMES ‘x’ 等效于:
SET character_set_client = x;
SET character_set_results = x;
SET character_set_connection = x;
(注:SET character_set_connection = x; 语句同时也自动指定了字符集x的默认collation为 collation_connection的值,但也可以用 SET NAMES ‘charset_name’ COLLATE ‘collation_name’来提定你想使用的collation。)

SET CHARACTER SET和SET NAMES作用相似,但它将连接的字符集和collation设置为默认数据库的字符集和collation。

SET CHARACTER SET x 等效于:
SET character_set_client = x;
SET character_set_results = x;
SET collation_connection = @@collation_database;
(注:SET collation_connection同时也会自动设置character_set_connection。)

如果不希望MySQL在返回结果时进行转换,可以使用SET character_set_results = NULL;语句

分享到:
评论

相关推荐

    修改MySQL默认字符集编码

    本文将要为您介绍的是修改MySQL默认字符集编码,具体操作过程:  好记心不如烂笔头,很多东西当时没记下来,过了忘了,下次用到时又得浪费好多时间才能解决。又遇到修改MySQL默认字符集编码的问题,折腾了半天解决...

    Mysql5.0安装包

    mysql 数据库的安装包,直接安装就行了。安装时默认设置,完成后再Mysql设置对话框里注意设置字符集为UTF-8

    mysql server5.0(免安装版)

    设置MySQL中文字符集(MySQL正常显示中文) 1).配置服务器端,修改my.ini文件,使用中文字符集存储记录,同时用中文排序比较方式。 [mysqld] # set character set default-character-set=gbk # set character ...

    Tomcat 6.0& MySQL Server 5.0&dreamweaverCS3

    1、在\MySQL\MySQL Server 5.0目录下修改my.ini配置文件,将原先默认的字符集latin1改为utf8。打开my.ini文件,查找latin1,替换为utf8。如下: [mysql] default-character-set=gb2312 …… #Path to the database ...

    MySQL 5.1参考手册

    10.10. MySQL支持的字符集和校对 10.10.1. Unicode字符集 10.10.2. 西欧字符集 10.10.3. 中欧字符集 10.10.4. 南欧与中东字符集 10.10.5. 波罗的海字符集 10.10.6. 西里尔字符集 10.10.7. 亚洲字符集 11. 列类型 ...

    MySql 5.1 参考手册.chm

    10.10. MySQL支持的字符集和校对 10.10.1. Unicode字符集 10.10.2. 西欧字符集 10.10.3. 中欧字符集 10.10.4. 南欧与中东字符集 10.10.5. 波罗的海字符集 10.10.6. 西里尔字符集 10.10.7. 亚洲字符集 11. 列类型 ...

    如何解决安装MySQL5.0后出现1607异常

    后来想到MySQL安装的时候没有设置字符集!在添加/删除程序里卸载MySQL 后,发现服务里还有一个MySQL的服务没弄掉!用卸载服务的工具卸载后。 重新安装MySQL以后,MySQL服务启动不了,出现:1607错误!看了网上很多...

    MySQL 5.1中文手冊

    10.10. MySQL支持的字符集和校对 10.10.1. Unicode字符集 10.10.2. 西欧字符集 10.10.3. 中欧字符集 10.10.4. 南欧与中东字符集 10.10.5. 波罗的海字符集 10.10.6. 西里尔字符集 10.10.7. 亚洲字符集 11. 列类型 ...

    MySQL 5.1参考手册 (中文版)

    10.10. MySQL支持的字符集和校对 10.10.1. Unicode字符集 10.10.2. 西欧字符集 10.10.3. 中欧字符集 10.10.4. 南欧与中东字符集 10.10.5. 波罗的海字符集 10.10.6. 西里尔字符集 10.10.7. 亚洲字符集 11. 列类型 ...

    MySQL 5.1参考手册中文版

    10.10. MySQL支持的字符集和校对 10.10.1. Unicode字符集 10.10.2. 西欧字符集 10.10.3. 中欧字符集 10.10.4. 南欧与中东字符集 10.10.5. 波罗的海字符集 10.10.6. 西里尔字符集 10.10.7. 亚洲字符集 11. 列...

    MySQL 5.1官方简体中文参考手册

    10.10. MySQL支持的字符集和校对 10.10.1. Unicode字符集 10.10.2. 西欧字符集 10.10.3. 中欧字符集 10.10.4. 南欧与中东字符集 10.10.5. 波罗的海字符集 10.10.6. 西里尔字符集 10.10.7. 亚洲字符集 11. 列类型 ...

    MYSQL中文手册

    10.10. MySQL支持的字符集和校对 10.10.1. Unicode字符集 10.10.2. 西欧字符集 10.10.3. 中欧字符集 10.10.4. 南欧与中东字符集 10.10.5. 波罗的海字符集 10.10.6. 西里尔字符集 10.10.7. 亚洲字符集 11. 列...

    mysql5.1中文手册

    MySQL支持的字符集和校对 10.10.1. Unicode字符集 10.10.2. 西欧字符集 10.10.3. 中欧字符集 10.10.4. 南欧与中东字符集 10.10.5. 波罗的海字符集 10.10.6. 西里尔字符集 10.10.7. 亚洲字符集...

    Anyview3.2.27 .rar

    使用Delphi7, MyODBC 3.5连接MySQL 5.0, 数据库字符集设置为GBK, 居然出现乱

    mysql官方中文参考手册

    10.10. MySQL支持的字符集和校对 10.10.1. Unicode字符集 10.10.2. 西欧字符集 10.10.3. 中欧字符集 10.10.4. 南欧与中东字符集 10.10.5. 波罗的海字符集 10.10.6. 西里尔字符集 10.10.7. 亚洲字符集 11. 列类型 ...

    Java开发一款灵活且易扩展的网站内容管理系统.zip

    MySQL5.5或更高版本(如需使用MySQL5.0,可将mysql驱动版本替换为5.1.24);Oracle10g或更高版本;SQLServer2005或更高版本。 Maven3.2或更高版本。 系统后台兼容的浏览器:IE9+、Edge、Firefox、Chrome。 前台页面...

    MySQL5.1参考手册官方简体中文版

    10.10. MySQL支持的字符集和校对 10.10.1. Unicode字符集 10.10.2. 西欧字符集 10.10.3. 中欧字符集 10.10.4. 南欧与中东字符集 10.10.5. 波罗的海字符集 10.10.6. 西里尔字符集 10.10.7. 亚洲字符集 11. 列类型 ...

    MySQL 4.1/5.0/5.1/5.5/5.6各版本的主要区别整理

    各版本的一些命令差异: ...1、4.1 增加了子查询的支持,字符集增加UTF-8,GROUP BY语句增加了ROLLUP,mysql.user表采用了更好的加密算法。  2、5.0 增加了Stored procedures、Views、Cursors、T

Global site tag (gtag.js) - Google Analytics