mysql i区分大小写
时间: 2023-10-13 07:03:05 浏览: 87
在默认情况下,MySQL是不区分大小写的,这意味着它对于表名、列名、函数名等标识符是不区分大小写的。例如,`SELECT * FROM employees` 和 `select * from Employees` 在执行时被认为是相同的。
不过,你也可以通过设置MySQL的字符集和校对规则来使其区分大小写。在创建数据库时,可以选择一种区分大小写的校对规则,这样就可以强制MySQL对标识符进行大小写敏感的比较。
举个例子,在创建数据库时指定区分大小写的校对规则:
```
CREATE DATABASE mydatabase
CHARACTER SET utf8
COLLATE utf8_bin;
```
在上述例子中,使用了`utf8_bin`校对规则,它是一种区分大小写的校对规则。
需要注意的是,修改已存在的数据库的字符集和校对规则可能会有一些风险和影响,请谨慎操作。
希望这个回答能够帮助到你!如果还有其他问题,请随时提问。
相关问题
mysql 查询区分大小写
在 MySQL 中,可以通过设置 collation 来区分大小写或不区分大小写进行查询。如果要进行区分大小写的查询,可以使用 BINARY 关键字或设置 collation 为区分大小写的字符集,例如 utf8_bin。
例如,查询 name 字段为 "John" 的记录,区分大小写可以使用以下语句:
```
SELECT * FROM table_name WHERE BINARY name = 'John';
```
或者设置 collation 为 utf8_bin,然后进行查询:
```
SELECT * FROM table_name WHERE name COLLATE utf8_bin = 'John';
```
如果要进行不区分大小写的查询,可以使用 LOWER() 或 UPPER() 函数将查询条件转换为小写或大写,然后进行查询,例如:
```
SELECT * FROM table_name WHERE LOWER(name) = 'john';
```
或者设置 collation 为不区分大小写的字符集,例如 utf8_general_ci,然后进行查询:
```
SELECT * FROM table_name WHERE name COLLATE utf8_general_ci = 'john';
```
设置 MySQL不区分大小写
在 MySQL 中,可以通过设置字符集和校对规则来实现不区分大小写的功能。具体步骤如下:
1. 打开 MySQL 配置文件 my.cnf 或 my.ini,添加以下内容:
```
[mysqld]
lower_case_table_names=1
```
2. 重启 MySQL 服务。
3. 进入 MySQL,执行以下命令:
```
mysql> SET GLOBAL lower_case_table_names=1;
```
4. 修改数据库的字符集和校对规则。可以使用以下命令:
```
mysql> ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
```
其中,database_name 为要修改的数据库名称,utf8mb4 为字符集,utf8mb4_general_ci 为校对规则。
注意:修改字符集和校对规则后,已经存在的数据表和数据需要重新导入才能生效。因此,在进行修改前应备份好数据。
阅读全文