• 数据库笔记


    1. MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:

      1). 数据库名与表名是严格区分大小写的;

      2). 表的别名是严格区分大小写的;

      3). 列名与列的别名在所有的情况下均是忽略大小写的;

        4). MySQL在查询字符串时是大小写不敏感的。如某字段值需要区分大小写,可在定义该字段时指定BINARY属性。

    2. mysql中控制数据库名和表名的大小写敏感由参数lower_case_table_names控制,为0时表示区分大小写,为1时,表示将名字转化为小写后存储,不区分大小写。

        在/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写;

    3. MySQL存储的字段是不区分大小写的。这个有点不可思议。尤其是在用户注册的业务时候,会出现笑话。所以还是严格限制大小写敏感比较好。

        如何避免字段内容区分大小写。就是要新增字段的校验规则。字段值需要设置BINARY属性,设置的方法有多种:

        1). 创建时设置:CREATE TABLE T(A VARCHAR(10) BINARY);

        2). 使用alter修改:ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;

        3). mysql table editor中直接勾选BINARY项。

        4). 使用数据库管理工具改,注意事项:不能通过直接改table的Collection为bin(如果数据库字符编码属性为utf-8则为utf8_bin)来使所有字段都生效,必须一个字段一个字段的改 

    4. 字段值的大小写由mysql的校对规则来控制。提到校对规则,就不得不说字符集。字符集是一套符号和编码,校对规则是在字符集内用于比较字符的一套规则。

        一般而言,校对规则以其相关的字符集名开始,通常包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二元)结 束 。

        比如 utf8字符集,utf8_general_ci,表示不区分大小写,这个是utf8字符集默认的校对规则;utf8_general_cs表示区分大小 写,utf8_bin表示二进制比较,同样也区分大小写 。

        参考:http://www.cnblogs.com/wzmenjoy/p/4244545.html

                blog.csdn.net/naguang/article/details/8590643

    5. 查询mysql 哪些表正在被锁状态(两种方式)

      method 1: show OPEN TABLES where In_use > 0;

      method 2: SHOW PROCESSLIST查看数据库中表的状态,是否被锁;

          解锁锁定的表:  kill id

  • 相关阅读:
    Ubuntu下虚拟机卡顿
    C函数重载
    ACPI电源状态定义
    /dev/random生成随机数慢的问题
    GCC强制静态库链接未使用的函数、变量
    cmake交叉编译问题
    cmake语法
    CentOS安装OpenOCD
    LOJ3119. 「CTS2019 | CTSC2019」随机立方体 二项式反演
    BZOJ4710 [Jsoi2011]分特产 容斥
  • 原文地址:https://www.cnblogs.com/Jtianlin/p/4752682.html
Copyright © 2020-2023  润新知