Mysql、Oracle区分大小写?
MySQL和Oracle数据库在默认情况下是否区分大小写取决于具体的操作系统和配置。
在MySQL中:
- 表名和列名的大小写敏感性取决于表的collation(校对规则)。
- 如果collation设置为utf8\_bin,则是区分大小写的。
- 如果collation设置为utf8\_general\_ci(case-insensitive)或utf8\_unicode\_ci(可以识别特定语言的字符大小写),则默认不区分大小写。
在Oracle中:
- 默认情况下,表名和列名是不区分大小写的,因为Oracle在内部将它们转换为大写。
- 但是,可以通过设置初始化参数
SQL_IDENTIFIER_CASE
为mixed
来改变这种行为,这样表名和列名将区分大小写。
如果需要确保MySQL中的大小写敏感性,可以在创建表或列时指定BINARY
或COLLATE
为utf8_bin
。
示例代码:
MySQL:
CREATE TABLE my_table (
id INT,
name VARCHAR(50) COLLATE utf8_bin
);
Oracle:
CREATE TABLE my_table (
id NUMBER,
name VARCHAR2(50)
);
-- 修改为大小写敏感
ALTER DATABASE SET SQL_IDENTIFIER_CASE = mixed;
评论已关闭