字符集

MySQL的字符集

字符集:string类型的属性

MySQL字符集分三层:
     系统层:mysql系统字符集
     库层:库字符集
     表层:表字符集
     列层:列属性字符集

字符集级联性:向上级联
     mysql系统字符集     默认级联     操作系统字符集
     库字符集     默认级联     mysql系统字符集
     表字符集     默认级联     库字符集
     列值字符集     默认级联     表字符集
     (注:列字符集是针对已有元组的列属性值来讲的)
字符集的修改性质:不可下推级联
     对于已existed的东东,修改其上级字符集,不可下推级联至其。需手动修改。
     示例解释:
          场景:windows下默认安装了mysql,建库demoDB,库中一表user,表中一列name
          分析:windows下默认字符集lantin1,级联特性--》mysql字符集lantin1,demoDB字符集lantin1,user表字符集lantin1,列name字符集lantin1。
          操作:修改mysql字符集为utf8。
          分析:不可下推级联性,则demoDB库的字符集还是lantin1。user、name同。
          操作:再修改demoDB字符集为utf8。
          分析:不可下推级联性,user的字符集还为lantin1。name同。

          注:若有实例元组存在,name字段中已有值,其值以为lantin1,这牵扯到实际值字串了,非简单修改字符集标志就能解决,需对值进行字符集转换。

字符集修改:
     mysql系统字符集修改:
          文件:window下配置文件my.ini,Linux下配置文件my.conf
          修改项:
               [client]
               default-character-set=utf8
               [mysql]
               default-character-set=utf8
               [mysqld]
               character-set-server=utf8     #注,windows下mysql5.5必须为character-set-server
                                                         #不可是default-character-set=utf8,否则mysql服务无法启动
     库字符集修改:
               ALTER  DATABASE demoDB CHARCTER SET utf8
     表字符集修改:
               ALTER TABLE user [DEFAULT] CHARACTER SET utf8  #修改表的默认字符集
     
     列的字符集怎么改呢?
     1、列值字符集转换(且对已有的值进行字符集转换 lantin1 --》 utf8)
               ALTER TABLE user CONVERT TO CHARACTER SET utf8  #CONVERT TO指定对各string类型的列值进行转换
     2、指定某列(至改表中一列)
               ALTER TABLE user MODIFY name VARCHAR(64) CHARACTER SET utf8
     3、若不想转换列中已有值的字符集,只想改列字符集属性呢?
               字符集只针对string类型的(CHAR,VARCHAR,TEXT)
               可以先将列类型由string类型转为对应的二进制类型(BINARY,VARBINARY,BLOD),再修改列属性
               ALTER TABLE user CHANGE name name BOLD
               ALTER TABLE user CHANGE name name TEXT CHARACTER SET utf8

修改方式:永久&临时
     mysql系统字符集临时修改:
          SET GLOBAL character_set_server=utf8;
     永久修改:
          上面配置文件修改方式


若有不对处,欢迎交流!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值