登录
首页 >  数据库 >  MySQL

MySql(二)——字符集和比较规则

来源:SegmentFault

时间:2023-01-19 16:27:25 306浏览 收藏

积累知识,胜过积蓄金银!毕竟在##column_title##开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《MySql(二)——字符集和比较规则》,就带大家讲解一下MySQL、Linux、PHP知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

MySql(二)——字符集和比较规则

一些重要的字符集

  1. [server]
    character_set_server=utf8
    collation_server=utf8_general_ci

    3. 数据库级别

    • 当前数据库的字符集:
      CREATE DATABASE 数据库名
          [[DEFAULT] CHARACTER SET 字符集名称]
          [[DEFAULT] COLLATE 比较规则名称];
      
      ALTER DATABASE 数据库名
          [[DEFAULT] CHARACTER SET 字符集名称]
          [[DEFAULT] COLLATE 比较规则名称];
      创建数据库不指定字符集和比较规则,则默认使用服务器级别的字符集和比较规则

      4. 表级别

      CREATE TABLE 表名 (列的信息)
          [[DEFAULT] CHARACTER SET 字符集名称]
          [COLLATE 比较规则名称]]
      
      ALTER TABLE 表名
          [[DEFAULT] CHARACTER SET 字符集名称]
          [COLLATE 比较规则名称]
      如果创建和修改表的语句中没有指明字符集和比较规则,将使用该表所在数据库的字符集和比较规则作为该表的字符集和比较规则

      5.列级别

      CREATE TABLE 表名(
          列名 字符串类型 [CHARACTER SET 字符集名称] [COLLATE 比较规则名称],
          其他列...
      );
      
      ALTER TABLE 表名 MODIFY 列名 字符串类型 [CHARACTER SET 字符集名称] [COLLATE 比较规则名称];
      对于某个列来说,如果在创建和修改的语句中没有指明字符集和比较规则,将使用该列所在表的字符集和比较规则作为该列的字符集和比较规则

      6.仅修改字符集或仅修改比较规则

      • 只修改字符集,则比较规则将变为修改后的字符集默认的比较规则
      • 只修改比较规则,则字符集将变为修改后的比较规则对应的字符集

      7.各级别字符集和比较规则小结

      • 如果创建或修改列时没有显式的指定字符集和比较规则,则该列默认用表的字符集和比较规则
      • 如果创建或修改表时没有显式的指定字符集和比较规则,则该表默认用数据库的字符集和比较规则
      • 如果创建或修改数据库时没有显式的指定字符集和比较规则,则该数据库默认用服务器的字符集和比较规则

      客户端和服务器通信中的字符集

      从发送请求到返回结果这个过程中伴随着多次字符集的转换,在这个过程中会用到3个系统变量
      系统变量 描述
      character_set_client 服务器解码请求时使用的字符集
      character_set_connection 服务器运行过程中使用的字符集
      character_set_results 服务器向客户端返回数据时使用的字符集
      • 服务器认为客户端发送过来的请求是用
        [client]
        default-character-set=utf8

        理论要掌握,实操不能落!以上关于《MySql(二)——字符集和比较规则》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表