zoukankan      html  css  js  c++  java
  • mysql踩坑(二)-字符集与排序规则

    字符集

    mysql数据库支持多种字符集,并且在支持服务器、数据库、表、列和字符串常量等不同层次单独指定字符集。

    查看字符集

    查看服务器的默认字符集

    show variables like 'character_set_server'
    

    查看数据库的字符集,如果在创建数据库的时候没有指定字符集的话,那么就会使用服务器的默认字符集。

    show create database erp;
    

    查看表的默认字符集,这时候如果没有指定字符集,则会默认使用数据库的字符集。

    show create table user;
    

    查看列的默认字符集。

    show full columns from user;
    

    我们可以从下图可知,字段name的字符集是lantin1。

    查看列的字符集

    排序规则

    一个字符集可以有一种或者多种排序规则。字符集和字符集排序规则的前缀如果是一样的,则表示是兼容的。

    查看排序规则

    查看服务器的排序规则

    show variables like 'collation_server';
    

    查看表的排序规则,这时候如果没有排序规则,则会默认使用数据库的排序规则。

    show variables like 'collation_server';
    

    指定字符集和排序规则

    查看了字符集和排序规则之后,我们来手动指定一下字符集和排序规则。

    指定数据库字符集和排序规则

    在创建数据库的时候,指定字符集为utf8,字符集排序规则为utf8_general_ci。

    create database erp
    DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    

    指定表的字符集和表排序规则

    在创建表的时候,指定字符集为utf8,字符集排序规则为utf8_bin。utf8_bin在排序和比较字符串的时候使用的是二进制,因此区分大小写,而utf8_general_ci不区分大小写。

    create table user (
        id int not null primary key
    ) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
    

    指定字段的字符集和排序规则

    在现有标上添加name字段,排序规则为utf8_general_ci。

    alter table boy add column name varchar(36) null collate  utf8_general_ci;
    

    语句执行完之后,我们再次查看字段的字符集,这里可以看到表字段的字符集排序规则生效。

    查看表字符集

    博主微信公众号

  • 相关阅读:
    斐波拉切数列学习笔记
    BPC全面预算管理学习专题(SAP)
    AjaxPro新发现错误处理
    漂亮的页面向导和Tab插件(Jquery)
    从SAP BPC中Entity维设计的理念考虑Web程序中类似文档库之类的设计该考虑的东西
    VBA之Range,cells,offset,end 的区别(转)
    Jquery.Cookie使用方法(转)
    机场市场采购网(www.caigo365.com)亮点介绍电子书(杂志)的应用
    showModalDialog()showModelessDialog()方法使用详解(转)
    微软依赖注入Unity(转)
  • 原文地址:https://www.cnblogs.com/chenhaoblog/p/13605072.html
Copyright © 2011-2022 走看看