如何让mysql查看表不区分大小写

如何让mysql查看表不区分大小写,第1张

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区分大写小吗,或者在哪里设置、数据库大小写问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9780614.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存