MySQL是否区分大小写?

MySQL 的大小写敏感度实际上取决于具体情况。

上周我的朋友询问了数据库连接问题。
Windows 和 Linux 有很大不同。

数据库名称: Windows 没有区别,Linux 有区别。
在 Linux 上,可以通过“lower_case_table_names”参数进行更改。

表名: 查看文件系统。
Linux 文件系统不同,Windows 则不同。
Lower_case_table_names=1 参数不能强制区分。

栏目名称: 默认情况下不做任何区分。
例如,UserId 与 userid 相同。

关键词: 默认情况下不做任何区分。
SELECT 与选择相同。

关于字符串比较的注意事项: 标准区分。
WHERE name='Alice'这里不区分名字,但'Alice'是。

系统变量不区分。
示例:SET@@自动提交=1
字符集影响字符串比较。
整理可以更改。

建议统一命名风格。
使用 lower_case_table_names 来统一跨平台。
字符串比较返回 COLLATE。

这取决于你。

mysql/postgresql 大小写

哎呀,我对区分大小写有点困惑。
首先我们来说说MySQL,这个东西比较复杂。
想一想,在MySQL中有一个名为small_case_table_names的设置。
可以在MySQL启动时设置,也可以在配置文件中设置。
如果该变量的值为0,则表名和数据库名区分大小写。
你是什​​么意思?例如,如果创建一个名为CREATETABLETest的表,如果一个人写CREATETABLEtest,则两者不是同一个表。
相反,如果设置small_case_table_names=1 ,则无论大写,表名都会自动以小写形式存储,因此CREATETABLETest和CREATETABLEtest实际上是同一个表。

我们来谈谈值2 ,这个比较神秘。
表名有大小写,但是我查了一下,嘿嘿,没关系。
这很容易让人困惑,特别是如果数据库被意外迁移并且表名问题没有得到处理,这就成为一个问题。

MySQL 默认情况下对列名不区分大小写,除非使用双引号,在这种情况下它们是区分大小写的。

迁移到 PostgreSQL,情况又不同了。
该对象默认不区分大小写,除非使用双引号并且表名也包含大写字母,否则两个对象各走各的路。
例如,您创建两个单独的表 CREATEABLE“Test”和 CREATEABLE“test”。

总体而言,两个数据库之间区分大小写的差异并不小。
使用数据库的人员应该仔细考虑这些细节,这样他们在遇到问题时就不会感到困惑。

MYSQL如何设置大小写敏感

说白了,手术就是假的。

mysql命令行是正确的方法。

你的脚步乱了。

配置文件即使修改也不会自动加载。

这是第一个。

mysql区分表名区分大小写吗

哦,是的,那些小写的表名...我在2 02 2 年做过一次,在这个Linux服务器上,确切的城市并不重要...那次我以root身份登录,找到了/etc/my.cnf文件,[mysqld]部分...我记得添加了Lower_case_table_names = 1 ...然后我重新启动了服务...好吧,后来我发现表名实际上是不区分大小写的。

这个参数有三个值:0,1 ,2 ...0表示歧视,1 表​​示不歧视...2 是Windows特定的...在Linux下,默认值好像是0,表示歧视。
后来查了一下,发现Linux中数据库名和表名是区分的,但是列名和别名好像没有区分……别人说过的,不过我忘了在哪里找到的了。

Windows 不区分数据库名、表名和列名...所以如果你想在 Windows 上这样做,只需将此参数设置为 0 或 1 ...嗯...还有一个 BINARY 属性,可以检查字段值的大小写敏感...是的,您可以在创建表时添加它或使用 ALTER 语句更改它...例如:
CREATE TABLE T (A VARCHAR(1 0) BINARY); 或 ALTER TABLE T MODIFY A VARCHAR(1 0) BINARY;
这样字段A的值是大小写敏感的...好吧,理解一下...