用考网 > 计算机类 > 计算机等级 > 资讯 > 《MySQL数据库中名和表名的大小写敏感性问题》正文

MySQL数据库中名和表名的大小写敏感性问题

用考网【资讯】 编辑:家辉 发布时间:2015-09-14 16:57:12

  1994年,全国计算机等级考试由教育部考试中心推出,计算机等级考试三级最初分A、B类:A类考核计算机应用基础知识和计算机硬件系统开发的初步能力;B类考核计算机应用基础知识和计算机软件系统开发的初步能力。2002年考试中心对等级考试进行调整,将三级考试分为“PC技术”、“信息管理技术”、“数据库技术”和“网络技术”等四个类别,相应地降低了考试难度。2013年考试中心对等级考试再一次进行调整,将三级考试分为“网络技术”,“数据库技术”,“软件测试技术","信息安全技术","嵌入式系统开发技术"等五个类别,从2013年下半年开始实施2013版考试大纲,并首次实现全部科目无纸化考试。“数据库技术”考核数据库系统基础知识及数据库应用系统项目开发和维护的基本技能。

  以下是学习啦小编为大家整理的计算机三级《数据库技术》考前复习重点,供大家参考和学习。

  在MySQL中,数据库和表对应于那些目录下的目录和文件。因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix 系统中是大小写敏感的。一个特例是 Mac OS X,当缺省的 HFS+ 文件系统使用时。然而 Mac OS X 还支持 UFS 卷,那些在 Mac OS X 是大小写敏感的就如他们在任一 Unix 上一样。

  注意:尽管在 Windows 中数据库与表名是忽略大小写的,你不应该在同一个查询中使用不同的大小写来引用一个给定的数据库和表。下面的查询将不能工作,因为它以 my_table 和 MY_TABLE 引用一个表:

  mysql> SELECT * FROM my_table WHERE MY_TABLE.col=1;

  列名与列的别名在所有的情况下均是忽略大小写的。

  表的别名是区分大小写的。下面的查询将不能工作,因为它用 a 和 A 引用别名:

  mysql> SELECT col_name FROM tbl_name AS a WHERE a.col_name = 1 OR A.col_name = 2;

  如果记忆数据库和表名的字母大小写有困难,建议采用一个一致一约定,例如总是以小写字母创建数据库和表。

  避免这个问题的另一个办法就是以 -O lower_case_table_names=1 参数启动 mysqld。缺省地在 Windows 中这个选项为 1 ,在 Unix 中为 0。

  如果 lower_case_table_names 为 1 ,MySQL 将在存储与查找时将所有的表名转换为小写字线。(从 MySQL 4.0.2 开始,这个选项同样适用于数据库名。) 注意,当你更改这个选项时,你必须在启动 mysqld 前首先将老的表名转换为小写字母。

  $ pwd

  /data1/etl/aiinsight/ScheduleServer/mysql/support-files

  $ ./mysql.server stop

  $ pwd

  /data1/etl/aiinsight/ScheduleServer/mysql/bin

  ./mysqld_safe --lower_case_table_names

  方法2:修改my.cnf配置文件

  在[mysqld]节下加入

  lower_case_table_names=1

Copyright @ 2006 - 2017 用考网 All Rights Reserved

用考网 版权所有 粤ICP备17065803号-4

回到顶部