Windows 环境下大小写不敏感
CREATE TABLE tab (
id INT AUTO_INCREMENT,
val VARCHAR(10),
PRIMARY KEY (id)
);
mysql> select from tab;
Empty set (000 sec)
mysql> select from Tab;
Empty set (000 sec)
mysql> select from `Tab`;
Empty set (000 sec)
在MySQL中如何在硬盘上保存和使用表名和数据库名由lower_case_tables_name系统变量确定,可以在启动mysqld时设置。lower_case_tables_name可以采用下面的任一值:
值 含义
0 使用CREATE TABLE或CREATE DATABASE语句指定的大写和小写在硬盘上保存表名和数据库名。名称比较对大小写敏感。在Unix系统中的默认设置即如此。请注意如果在大小写不敏感的文件系统上用--lower-case-table-names=0强制设为0,并且使用不同的大小写访问MyISAM表名,会导致索引破坏。
1 表名在硬盘上以小写保存,名称比较对大小写敏感。MySQL将所有表名转换为小写以便存储和查找。该行为也适合数据库名和表的别名。该值为Windows和Mac OS X系统中的默认值。
2 表名和数据库名在硬盘上使用CREATE TABLE或CREATE DATABASE语句指定的大小写进行保存,但MySQL将它们转换为小写以便查找。名称比较对大小写敏感。注释:只在对大小写不敏感的文件系统上适用! InnoDB表名以小写保存,例如lower_case_tables_name=1。
在Windows和Mac OS X中,lower_case_tables_name的 默认值是1。
如果只在一个平台上使用MySQL,通常不需要更改lower_case_tables_name变量。然而,如果你想要在对大小写敏感不同的文件系统的平台之间转移表,会遇到困难。例如,在Unix中,my_tables和MY_tables是两个不同的表,但在Windows中,这两个表名相同。要想避免由于数据库或表名的大小写造成的数据转移问题,可使用两个选项:
• 在任何系统中可以使用lower_case_tables_name=1。使用该选项的不利之处是当使用SHOW TABLES或SHOW DATABASES时,看不出名字原来是用大写还是小写。
• 在Unix中使用lower_case_tables_name=0,在Windows中使用lower_case_tables_name=2。这样了可以保留数据库名和表名的大小写。不利之处是必须确保在Windows中查询总是用正确大小写引用数据库名和表名。如果将查询转移到Unix中,由于在Unix中大小写很重要,如果大小写不正确,它们不工作。
例外:如果你正使用InnoDB表,在任何平台上均应将lower_case_tables_name设置为1,以强制将名转换为小写。
请注意在Unix中将lower_case_tables_name设置为1之前,重启mysqld之前,必须先将旧的数据库名和表名转换为小写。
“”指定的表名,字段名称区分大小写,其他的区分
例子
数据库定义一个表TABLEAA 有字段 A
select a from tableaa
执行时会去查 select A from TABLEAA 可以查出数据
但是 select a from "tableaa" 就会提示没有"tableaa" 这个表
大小写是没有任何关系的,关键是取名规则,在命名是最后要体现类别、功能、用途等,比如人事的最好用hr打头、客户关系管理的crm打头,后面的根据自己的习惯设置。
主要是便于查找,好整理。
这个 ALTER DATABASE 语句用来修改数据库的属性,比如改变它的默认排序规则(即 COLLATE)。因此,你可以使用它来设置数据库中所有表都区分大小写。
要使用这个语句,你需要先确保你有足够的权限去修改数据库。然后,你可以在 SQL Server Management Studio 中执行以下步骤:
打开 SQL Server Management Studio 并连接到你想要修改的数据库服务器。
在对象资源管理器中,右键单击你想要修改的数据库,然后选择“属性”。
在“数据库属性”窗口中,选择“排序规则”选项卡。
在“排序规则”下拉列表中,选择“Chinese_PRC_CS_AS”。
单击“确定”按钮以保存更改。
这样,数据库中的所有表都将区分大小写。但是,如果你只想修改某个特定的表,那么你可以在创建表时指定它的排序规则,或者使用 ALTER TABLE 语句来修改表的排序规则。
举个例子,假设你想要修改名为“TBL_ACCOUNT”的表,使其区分大小写,你可以在创建表时指定排序规则:
这个 ALTER DATABASE 语句用来修改数据库的属性,比如改变它的默认排序规则(即 COLLATE)。因此,你可以使用它来设置数据库中所有表都区分大小写。
要使用这个语句,你需要先确保你有足够的权限去修改数据库。然后,你可以在 SQL Server Management Studio 中执行以下步骤:
打开 SQL Server Management Studio 并连接到你想要修改的数据库服务器。
在对象资源管理器中,右键单击你想要修改的数据库,然后选择“属性”。
在“数据库属性”窗口中,选择“排序规则”选项卡。
在“排序规则”下拉列表中,选择“Chinese_PRC_CS_AS”。
单击“确定”按钮以保存更改。
这样,数据库中的所有表都将区分大小写。但是,如果你只想修改某个特定的表,那么你可以在创建表时指定它的排序规则,或者使用 ALTER TABLE 语句来修改表的排序规则。
举个例子,假设你想要修改名为“TBL_ACCOUNT”的表,使其区分大小写,你可以在创建表时指定排序规则:
CREATE TABLE TBL_ACCOUNT (
id INT PRIMARY KEY,
username VARCHAR(255) COLLATE Chinese_PRC_CS_AS,
password VARCHAR(255)
);
或者,如果你已经创建了表,你可以使用 ALTER TABLE 语句来修改表的排序规则:
ALTER TABLE TBL_ACCOUNT
ALTER COLUMN username VARCHAR(255) COLLATE Chinese_PRC_CS_AS;
这样就可以让表“TBL_ACCOUNT”区分大小写了。
具体 *** 作如下:
一、linux中mysql大小写详情:
1、数据库名严格区分大小写
2、表名严格区分大小写的
3、表的别名严格区分大小写
4、变量名严格区分大小写
5、列名在所有的情况下均忽略大小写
6、列的别名在所有的情况下均忽略大小写
二、设置Mysql表名不区分大小写
1、切换到root用户
$
su
-
root
2、修改/etc/mycof配置文件,
#
sed
-i
'/\[mysqld\]/a\lower_case_table_names=1'
/etc/mycnf
lower_case_table_names参数详解:
0:区分大小写
1:不区分大小写
3、重启mysql
#
service
mysqld
restart
以上就是关于如何让mysql查看表不区分大小写全部的内容,包括:如何让mysql查看表不区分大小写、oracle form里面的sql区分大写小吗,或者在哪里设置、数据库大小写问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)