MYSQL在默认的情况下查询是不区分大小写的,例如:
mysql> create table t1(
-> name varchar(10));
Query OK, 0 rows affected (0.09 sec)
mysql> insert into t1 values('you'),('You'),('YOU');
Query OK, 3 rows affected (0.05 sec)
Records: 3 Duplicates: 0 Warnings: 0
对这个表,缺省情况下,下面两个查询的结果是一样的:
mysql> select * from t1 where name = 'you';
+------+
| name |
+------+
| you |
| You |
| YOU |
+------+
3 rows in set (0.00 sec)
mysql> select * from t1 where name = 'YOU';
+------+
| name |
+------+
| you |
| You |
| YOU |
+------+
3 rows in set (0.00 sec)
如果想让MYSQL知道你输入的字母是大写还是小写的,修改表:
mysql> alter table t1 change name name varchar(10) binary;
Query OK, 3 rows affected (0.20 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> select * from t1 where name = 'you';
+------+
| name |
+------+
| you |
+------+
1 row in set (0.00 sec)
mysql> select * from t1 where name = 'YOU';
+------+
| name |
+------+
| YOU |
+------+
1 row in set (0.00 sec)
如果你只是想在SQL语句中实现的话:
mysql> select * from t1 where name = binary 'YOU';
+------+
| name |
+------+
| YOU |
+------+
1 row in set (0.02 sec)
mysql> select * from t1 where name = binary 'you';
+------+
| name |
+------+
| you |
+------+
1 row in set (0.00 sec)
如果不想这么麻烦而想服务一开启就让大小写一致的话:
可以修改my.ini或者my.cnf
[mysqld]
lower_case_table_names=1
(0:区分;1:不区分)
然后重启MYSQL服务。
mysql> show variables like '%case_table%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_table_names | 1 |
+------------------------+-------+
1 row in set (0.00 sec)
注:WINDOWS系统不用修改,系统默认就是1
LINUX 系统默认是0。因为LINUX下的脚本都是区分大小写的。
转自:http://www.linuxdiyf.com/viewarticle.php?id=80012
分享到:
相关推荐
在MySQL中,对于Column Collate其约定的命名方法如下: *_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的 *_cs: case sensitive collation,区分大小写 *_ci: case insensitive collation,...
3. **SQL语句中的大小写**:在编写SQL语句时,虽然数据库系统可能不区分大小写,但推荐始终使用大写关键字(如`SELECT`, `FROM`, `WHERE`等),而将表名和列名设置为小写或统一的命名约定,以提高代码的可读性。...
7.1.5.1 名字的大小写敏感性 7.2 用户变量 7.3 列类型 7.3.1 列类型的存储要求 7.3.5 数字类型 7.3.6 日期和时间类型 7.3.6.1 问题和日期类型 7.3.6.2 DATETIME,DATE和TIMESTAMP...
为了避免因大小写敏感性引发的问题,推荐使用一致的命名约定,比如始终使用小写字母创建数据库和表。这样可以简化管理,并减少潜在的错误来源。同时,使用 `lower_case_table_names` 可以提供跨平台的一致性,但可能...
7.1.4 NULL值 7.1.5 数据库,表,索引,列和别名的命名 7.1.5.1 名字的大小写敏感性 7.2 用户变量 7.3 列类型 7.3.1 列类型的存储要求 7.3.5 数字类型 7.3.6 日期和时间类型...
# 7.1.5.1 名字的大小写敏感性 o 7.2 用户变量 o 7.3 列类型 + 7.3.1 列类型的存储要求 + 7.3.5 数字类型 + 7.3.6 日期和时间类型 # 7.3.6.1 问题和日期类型 # 7.3.6.2 DATETIME,DATE和TIMESTAMP类型 # 7.3...
- 名称大小写敏感性取决于服务器的操作系统,但在UNIX系统中通常不区分大小写。 - 在Windows系统中,命名规则相对宽松,例如可包含空格,但为了跨平台兼容性,不建议使用。 - 为了避免潜在的命名冲突,建议以项目名...
不同字符集有不同的校对规则,命名约定:以其相关的字符集名开始,通常包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二元)结束 校对规则一般分为两类: binary collation,二元法,直接...
MySQL的存储过程名称不区分大小写,但为了避免潜在的问题和提升代码的可读性,建议保持一致的命名约定。 综上所述,本实例教程详细介绍了在MySQL5.0以后的版本中创建存储过程的步骤,包括命令提示符的使用、数据库...
- **约定优于配置**:在设计数据库表结构时,遵循一定的命名规范和约定,可以减少代码编写的工作量,提高开发效率。 - **性能优化**:虽然外键有助于保证数据完整性,但在实际应用中,为了进一步提高查询性能,通常...
因此,开发人员应统一命名规则,如始终使用下划线分隔单词并全小写(`table_name`),或使用某种大小写约定,以便在不同系统间保持一致性。 5. **网络域名和电子邮件**: 网络域名(如`example.com`)和电子邮件...
- SQL语句通常不区分大小写,但为了可读性,建议遵循标准命名约定。 - 变量和关键字之间需要空格分隔。 - 注释可以使用`--`(单行注释)或`/*...*/`(多行注释)。 4. **MySQL授权和用户管理**: - `CREATE ...
#### 一、表名与列名区分大小写 - **Sqlserver**: 不区分大小写,并且在使用时需保持与原始声明一致。 - **Oracle**: 设计时通常采用全大写的方式,而在查询结果中也会以大写形式展示。 - **MySql**: 在设计阶段会...
- 数据库名、表名和列名等非关键字应使用小写字母,除非特定环境区分大小写。 - 字符串值需用英文单引号(')包围,例如`'abc'`。 - 数字值直接书写,不需要任何特殊符号,如`123`。 2. **数据库命名规范**: -...