ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:143.80KB ,
资源ID:19121251      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19121251.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MySQL字符集详解Word格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

MySQL字符集详解Word格式.docx

1、+-+-+| Variable_name | Value | character_set_client | utf8 | character_set_connection | utf8 | character_set_database | latin1 | character_set_filesystem | utf8 | character_set_results | utf8 | character_set_server | utf8 | character_set_system | utf8 | character_sets_dir | /usr/local/mysql/share/ch

2、arsets/ |8 rows in set (0.00 sec)名词解释: character_set_client:客户端请求数据的字符集 character_set_connection:客户机/服务器连接的字符集 character_set_database:默认数据库的字符集,无论默认数据库如何改变,都是这个字符集;如果没有默认数据库,那就使用 character_set_server指定的字符集,这个变量建议由系统自己管理,不要人为定义。 character_set_filesystem:把os上文件名转化成此字符集,即把 character_set_client转换charact

3、er_set_filesystem, 默认binary是不做任何转换的 character_set_results:结果集,返回给客户端的字符集 character_set_server:数据库服务器的默认字符集 character_set_system:系统字符集,这个值总是utf8,不需要设置。这个字符集用于数据库对象(如表和列)的名字,也用于存储在目录表中的函数的名字。4、查看当前数据库的校对规则collation%+-+-+| collation_connection | utf8_general_ci | collation_database | latin1_swedish_ci

4、| collation_server | utf8_general_ci |3 rows in set (0.01 sec)collation_connection 当前连接的字符集。collation_database 当前日期的默认校对。每次用USE语句来“跳转”到另一个数据库的时候,这个变量的值就会改变。如果没有当前数据库,这个变量的值就是collation_server变量的值。collation_server 服务器的默认校对。排序方式的命名规则为:字符集名字_语言_后缀,其中各个典型后缀的含义如下:1)_ci:不区分大小写的排序方式2)_cs:区分大小写的排序方式3)_bin:二进

5、制排序方式,大小比较将根据字符编码,不涉及人类语言,因此_bin的排序方式不包含人类语言三、MySQL字符集的设置1、概述MySQL字符集设置分为两类:1)创建对象的默认值。2)控制server和client端交互通信的配置。1、创建对象的默认值字符集合校对规则有4个级别的默认设置:1)服务器级别;2)数据库级别;3)表级别、列级别;4)连接级别。更低级别的设置会集成高级别的设置。这里有一个通用的规则:先为服务器或者数据库选择一个合理的字符集,然后根据不同的实际情况,让某个列选择自己的字符集。2、控制server和client端交互通信的配置大部分MySQL客户端都不具备同时支持多种字符集的能

6、力,每次都只能使用一种字符集。客户和服务器之间的字符集转换工作是由如下几个MySQL系统变量控制的。1)character_set_server:mysql server默认字符集。2)character_set_database:数据库默认字符集。3)character_set_client:MySQL server假定客户端发送的查询使用的字符集。4)character_set_connection:MySQL Server接收客户端发布的查询请求后,将其转换为character_set_connection变量指定的字符集。5)character_set_results:mysql se

7、rver把结果集和错误信息转换为character_set_results指定的字符集,并发送给客户端。6)character_set_system:系统元数据(字段名等)字符集还有以collation_开头的同上面对应的变量,用来描述字符序。注意事项: f中的default_character_set设置只影响mysql命令连接服务器时的连接字符集,不会对使用libmysqlclient库的应用程序产生任何作用! 对字段进行的SQL函数操作通常都是以内部操作字符集进行的,不受连接字符集设置的影响。 SQL语句中的裸字符串会受到连接字符集或introducer设置的影响,对于比较之类的操作可能

8、产生完全不同的结果,需要小心!3、默认情况下字符集选择规则(1)编译MySQL 时,指定了一个默认的字符集,这个字符集是 latin1;(2)安装MySQL 时,可以在配置文件 (f) 中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;(3)启动mysqld 时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的配置,此时character_set_server被设定为这个默认的字符集;(4)当创建一个新的数据库时,除非明确指定,这个数据库的字符集被缺省设定为character_set_server;(5)当选定了一个数据库时,character_se

9、t_database被设定为这个数据库默认的字符集;(6)在这个数据库里创建一张表时,表默认的字符集被设定为character_set_database,也就是这个数据库默认的字符集;(7)当在表内设置一栏时,除非明确指定,否则此栏缺省的字符集就是表默认的字符集;2、分述2.1、为列分配字符集属于同一个表的不同列可以有不同的字符集,如果没有为一个列显示的定义字符集就使用默认字符集。创建一个表的时候,若显示的为列指定字符集,则字符集作为数据类型选项包含在其中,要放在数据类型后面及空指定和主键前面。例如:create table column_charset(c1 char(10) charact

10、er set utf8 not null,c2 char(10) char set utf8,c3 varchar(10) charset utf8,c4 varchar(10) engine=innodb;注意:character set可以简写为char set和charset使用show create table table_name;命令查看column_charset建表语句: show create table column_charsetG;* 1. row *Table: column_charsetCreate Table: CREATE TABLE column_chars

11、et (c1 char(10) CHARACTER SET utf8 NOT NULL,c2 char(10) CHARACTER SET utf8 DEFAULT NULL,c3 varchar(10) CHARACTER SET utf8 DEFAULT NULL,c4 varchar(10) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=latin11 row in set (0.01 sec)ERROR:No query specified插入数据,感受一下效果: insert into column_charset(c1,c2,c3,c4)

12、value(图灵,chavin);Query OK, 1 row affected (0.01 sec) select * from column_charset;+-+-+-+-+| c1 | c2 | c3 | c4 | 图灵 | 图灵 | 图灵 | chavin |1 row in set (0.00 sec)2.2、为表分配字符集create table table_charset(c1 varchar(10),c2 varchar(10)engine=innodb default charset=utf8;为表指定字符集可以使用以下几种方式:default charset=utf8;

13、charset=utf8;default character set=utf8;character set=utf8;default char set=utf8;char set=utf8;检查建表语句: show create table table_charset; table_charset CREATE TABLE table_charset (c1 varchar(10) DEFAULT NULL,c2 varchar(10) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8测试: insert into table_charset(c

14、1,c2) values(图灵, select * from table_charset;+-+-+| c1 | c2 | 图灵 | 图灵 |2.3、为数据库指定字符集创建的每个数据库都有一个默认字符集,如果没有指定,就用latin1。create database dbking charset=utf8;创建数据库分配字符集可以采用以下几种子句:charset utf8;default charset utf8;char set utf8;default char set utf8;character set utf8;default character set utf8;使用show cr

15、eate database db_name;命令查看数据库创建语句: show create database dbking;+-+-+| Database | Create Database | dbking | CREATE DATABASE dbking /*!40100 DEFAULT CHARACTER SET utf8 */ |2.4、为列分配校对规则每个列都应该有一个校对,如果没有显示指定,MySQL就使用属于该字符集的默认校对。如果指定了一个字符集和一个校对,字符集应该放在前面。create table column_collate(c1 varchar(10) charset

16、 utf8 collate utf8_romanian_ci not null,c2 varchar(10) charset utf8 collateutf8_spanish_ci)engine=innodb;查看表的校验规则信息: select table_name,column_name,collation_namefrom information_schema.columnswhere table_name=column_collate+-+-+-+| table_name | column_name | collation_name | column_collate | c1 | ut

17、f8_romanian_ci | column_collate | c2 | utf8_spanish_ci |2 rows in set (0.04 sec)字符集和校对在处理字符表达式的过程中扮演着重要角色。我们不能比较两个属于不同校对的不同字符值。 insert into column_collate(c1,c2) values(AQuery OK, 1 row affected (0.22 sec) select * from column_collate;+-+-+| A | A | select * from column_collate where c1=c2;ERROR 126

18、7 (HY000): Illegal mix of collations (utf8_romanian_ci,IMPLICIT) and (utf8_spanish_ci,IMPLICIT) for operation =2.5、为表指定校对规则create table table_collate(c2 varchar(10)engine=innodb default charset utf8 collate utf8_romanian_ci;检查表的校对规则: select table_name,column_name,collation_name from information_sche

19、ma.columns where table_name=table_collate+-+-+-+| table_collate | c1 | utf8_romanian_ci | table_collate | c2 | utf8_romanian_ci |2 rows in set (0.00 sec)2.6、为数据库指定校对规则create database dbking102 default charset utf8 collate utf8_romanian_ci;查看数据库定义语句: show create database dbking102G;Database: dbking10

20、2Create Database: CREATE DATABASE dbking102 /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_romanian_ci */2.7、字符直接量字符集如果没有显示指定,那么字符直接量的字符集就是数据库的默认字符集。如果要显示分配另一个字符集,需要把字符集的名字放在直接量前面,并且要在字符集前面加上下划线。 select _utf8语言 Language 言語 +-+| 语言 Language 言語 |+-+ 2.8、修改和设置MySQL服务器级别字符集MySQL服务器支持众多不同的字符集,这类字符集可在编译

21、时和运行时指定。 1) 编译时指定编译时可指定默认字符集和默认校对规则,要想同时更改默认字符集和校对规则,要同时使用-with-charset和-with-collation选项。校对规则必须是字符集的合法校对规则。./configure - with-charset=CHARSET -with-collation=COLLATION通过configure选项-with-extra-charsets=LIST,可以定义在服务器中再定义增加字符集。LIST 指下面任何一项: a.空格间隔的一系列字符集名 plex -,以包括不能动态装载的所有字符集 c.all ,以将所有字符集包括进二进制./configure - with-charset=CHARSET -with-collation=COLLATION -with-extra-charsets=all 2) 在参数文件f中指定mysqldcharacter_set_server=utf8 -影响参数:character_set_server 和 character_set_database -注意:修改后要重启数据库才能生效。clientdefault-character-set=utf8

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1