mysql关于大小写敏感的话题有以下三个:
也就是你可以创建一个叫测试和测试的两个表,
但是windows默认是不区分大小写的,
LINUX:
编辑文/etc/my . cnf中所做件,在(mysqld)节下添加lower_case_table_names=1参数,这样就大小写不区分了,也就不能在一个库下创建测试和测试的两个表,并设置相应的值(备注:为0时大小写敏感,就是区分大小写,为1时大小写不敏感,也就是不区分大小写,默认为0)
linux下默认是不区分大小写的,也就是一个表中有一个叫id的字段,就不能创建id的字段。
查询是不区分字段值的大小写,
如果想在查询时区分字段值的大小写,则:字段值需要设置二进制属性,设置的方法有多种:
,创建时设置:
创建表T (
一个VARCHAR(10)二进制
);
B,使用改变修改:
改变表的表修改列cloname VARCHAR(10)二进制;
mysql>创建表会(名称varchar (100);
mysql>插入你的价值观(hh);
查询好了,1行影响(0.00秒)
mysql>插入你的价值观(hH);
查询好了,1行影响(0.00秒)
mysql>从我选择* name=' hh ';
+------+
| |名称
+------+
| hh |
| hH |
+------+
2行集(0.00秒)
这时候你添加主键就会报的错
mysql>alter table会添加主键(名称);
错误1062(23000):重复条目“hh”关键“初级”
修改表的名字列的值为大小写不敏感。
mysql>alter table会修改varchar(100)二进制名称;
查询好,2行影响(0.02秒)
记录:2副本:警告:0
mysql>从我选择* name=' hh ';
+------+
| |名称
+------+
| hh |
+------+
1行集(0.00秒)
然后添加主键就没问题了。
mysql>alter table会添加主键(名称);
查询好,0行影响(0.02秒)
记录:0副本:0警告:0
小结: MySQL在Linux下数据库名,表名,列名,别名大小写是这样的: 1、数据库名与表名是严格区分大小写的; 2,表的别名是严格区分大小写的; 3、列名与列的别名在所有的情况下均是忽略大小写的; 4、变量名也是严格区分大小写的; MySQL在窗户下都不区分大小写。
小结: MySQL在Linux下数据库名,表名,列名,别名大小写是这样的: 1、数据库名与表名是严格区分大小写的; 2,表的别名是严格区分大小写的; 3、列名与列的别名在所有的情况下均是忽略大小写的; 4、变量名也是严格区分大小写的; MySQL在窗户下都不区分大小写。