加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql中如何设定字符集

发布时间:2022-02-10 20:03:18 所属栏目:MySql教程 来源:互联网
导读:这篇文章将为大家详细讲解有关Mysql中如何设置字符集,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 #################################### DROP TABLE test_var; CREATE TABLE test_var(NAME VARCHA
       这篇文章将为大家详细讲解有关Mysql中如何设置字符集,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
  
####################################
DROP TABLE test_var;
CREATE TABLE test_var(NAME VARCHAR(5)) CHARACTER SET utf8;
INSERT INTO test_var(NAME) VALUES('一路上有你'); --successful
INSERT INTO test_var(NAME) VALUES('一路上有你们'); --Data too LONG FOR COLUMN 'name' AT ROW 1
INSERT INTO test_var(NAME) VALUES(',,,,,');-- successful
INSERT INTO test_var(NAME) VALUES(',,,,,,'); --6个符号失败
SELECT * FROM test_var;
######################################
当然所有的前提是字符集设置正确了,才能正确insert。
在创建表的时候,因为没有指定字符集utf8,而采用了数据库默认的字符集latin1,我客户端的字符集是utf8,
在进行client->connection->server的字符集转换,即utf8->latin1->latin1转换,在第一个转换时便有了乱码,那么在insert的时候报了乱码错误。
#######################################
由于后台前端都是采用了utf8字符集,所以建议数据库也采用utf8字符集。
为此我们需要修改数据库默认的字符集。
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
修改MySQL字符集
1、修改服务器级别字符集
 
 
a.临时修改
mysql>SET GLOBAL character_set_server=utf8;
 
 
b.永久修改
打开/etc/mysql/my.cnf,在[mysqld]后添加character-set-server=utf8
 Mysql中如何设定字符集
 
2、修改数据库级
a. 临时更改
mysql>SET GLOBAL character_set_database=utf8;
 
 
b. 永久更改
改了服务器级就可以了
 
 
3、修改表级
mysql>ALTER TABLE table_name DEFAULT CHARSET utf8; 更改了后永久生效
 
 
4、修改列级修改示例
mysql>ALTER TABLE `products` CHANGE `products_model` VARCHAR( 20 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; 更改了后永久生效
 
 
5、更改连接字符集
a. 临时更改:mysql> SET GLOBAL character_set_client;
 
 
b. 永久更改:打开/etc/mysql/my.cnf,在[client]后添加default-character-set=utf8
 
 
Notice:3.1和3.5需要重启mysql:   service mysql restart
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
字符集的概念
基本概念
 
 
@字符(Character)是指人类语言中最小的表义符号。例如’A'、’B'等;
@给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encoding)。例如,我们给字符’A'赋予数值0,给字符’B'赋予数值1,则0就是字符’A'的编码;
@给定一系列字符并赋予对应的编码后,所有这些字符和编码对组成的集合就是字符集(Character Set)。例如,给定字符列表为{’A',’B'}时,{’A'=>0, ‘B’=>1}就是一个字符集;
@字符序(Collation)是指在同一字符集内字符之间的比较规则;
@确定字符序后,才能在一个字符集上定义什么是等价的字符,以及字符之间的大小关系;
@每个字符序唯一对应一种字符集,但一个字符集可以对应多种字符序,其中有一个是默认字符序(Default Collation);
@MySQL中的字符序名称遵从命名惯例:以字符序对应的字符集名称开头;以_ci(表示大小写不敏感)、_cs(表示大小写敏感)或_bin(表示按编码值比较)结尾。例如:在字符序“utf8_general_ci”下,字符“a”和“A”是等价的;
 
 
关于Mysql中如何设置字符集就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读