MySQL中设置存储的数据查询的时候区分大小写敏感
时间: 2024-02-24 14:53:58 浏览: 84
默认情况下,MySQL 是不区分大小写的。如果你想要设置存储的数据查询的时候区分大小写敏感,可以在创建表的时候指定相应的字符集和校对规则。例如,以下是一个创建表时指定字符集和校对规则的例子:
```
CREATE TABLE mytable (
id INT,
name VARCHAR(50)
) CHARSET=utf8mb4 COLLATE utf8mb4_bin;
```
在上面的例子中,我们指定了字符集为 utf8mb4,并且指定了校对规则为 utf8mb4_bin。校对规则中的 `_bin` 表示二进制比较,这种比较是区分大小写的。
如果你已经创建了表,但是没有指定字符集和校对规则,可以使用 ALTER TABLE 语句来修改表的字符集和校对规则。例如,以下是一个修改表字符集和校对规则的例子:
```
ALTER TABLE mytable CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
```
在上面的例子中,我们使用 ALTER TABLE 语句将表的字符集修改为 utf8mb4,并且将校对规则修改为 utf8mb4_bin。注意,修改表的字符集和校对规则可能会导致数据的丢失或者损坏,请谨慎操作。
相关问题
mysql把整个库设置成查询时对存储的数据大小写敏感
在 MySQL 中,存储的数据是默认大小写敏感的,也就是说,如果你插入数据是大写,那么查询时也必须使用大写才能查到该数据。如果你想把整个库设置成查询时对存储的数据大小写不敏感,可以通过修改 MySQL 的配置文件来实现。
具体来说,可以在配置文件中加入以下内容:
```
[mysqld]
lower_case_table_names=1
```
其中,lower_case_table_names 参数的值可以为 0、1 或 2,分别表示:
- 0:不区分大小写,但是保存时区分大小写。
- 1:全部转换为小写,不区分大小写。
- 2:保持原样,区分大小写。
需要注意的是,修改 MySQL 的配置文件需要重启 MySQL 服务才能生效。此外,对于已经存在的数据,修改该参数后可能会导致查询失败,因为原来的数据可能已经被转换成了小写。因此,在修改该参数之前,需要备份数据,以防不测。
mysql怎么设置不区分大小写
在MySQL中,如果你希望数据库表名、列名或索引名等不区分大小写,可以在创建表的时候指定`COLLATE`选项或者修改已经存在的表的字符集。
1. **创建新表时**:
```sql
CREATE TABLE table_name (
column_name VARCHAR(255) COLLATE utf8_general_ci NOT NULL,
...其他列...
);
```
这里`utf8_general_ci`就是一个不区分大小写的字符集,你可以替换为你需要的其他不区分大小写的字符集,如`latin1_swedish_ci`。
2. **修改已有表的字符集**:
```sql
ALTER TABLE table_name ENGINE=InnoDB CHARACTER SET utf8 COLLATE=utf8_general_ci;
```
这会改变表的存储引擎和字符集,使其对列名的操作不区分大小写。
注意,虽然MySQL本身不区分表名和列名,但在SQL查询中,如果字段名是大写的,而你用了小写查询可能会导致找不到对应的列。所以,在编写程序代码时也应尽量保持一致性。
阅读全文