网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

mysql大小写敏感问题

MySQL关于大小写敏感的话题有以下三个:
1,表名字和库名字 linux/unix 区分大小写
也就是 你可以创建一个叫test和TEST的两个表,
但是windows默认是不区分大小写的,
LINUX:
编辑/etc/my.cnf文件,在[mysqld]节下 添加 lower_case_table_names=1 参数,这样就大小写不区分了,也就不能在一个库下创建test和TEST的两个表,并设置相应的值 (备注:为0时大小写敏感,就是区分大小写,为1时大小写不敏感,也就是不区分大小写,默认为0)
2,表的字段名字,
linux 下 默认是不区分大小写的,也就是 一个表中有一个叫id的字段,就不能创建ID的字段。
3,表的内容,默认查询是不区分字段值的大小写,
如果想在查询时区分字段值的大小写,则:字段值需要设置BINARY属性,设置的方法有多种:
A、创建时设置:
CREATE TABLE T(
A VARCHAR(10) BINARY
);
B、使用alter修改:
ALTER TABLE tablename MODIFY COLUMN cloname VARCHAR(10) BINARY;
具体实验过程:
mysql> create table ll ( name varchar(100);
mysql> insert into ll values('hh');
Query OK, 1 row affected (0.00 sec)
mysql> insert into ll values('hH');
Query OK, 1 row affected (0.00 sec)
mysql> select * from ll where name='hh';
+------+
| name |
+------+
| hh |
| hH |
+------+
2 rows in set (0.00 sec)
这时候你添加主键就会报错
mysql> alter table ll add primary key (name);
ERROR 1062 (23000): Duplicate entry 'hh' for key 'PRIMARY'
修改表的name列的值为大小写不敏感。
mysql> alter table ll MODIFY name varchar(100) BINARY;
Query OK, 2 rows affected (0.02 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from ll where name='hh';
+------+
| name |
+------+
| hh |
+------+
1 row in set (0.00 sec)
然后添加主键就没问题了。
mysql> alter table ll add primary key (name);
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0

小结:
MySQL在Linux下数据库名、表名、列名、别名大小写默认规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的;
MySQL在Windows下都不区分大小写。


新闻名称:mysql大小写敏感问题
文章转载:http://bjjierui.cn/article/jsddop.html

其他资讯