MySQL表名、列名区分大小写详解
2013-09-11 12:27
357 查看
在刚开始使用mysql的时候,刚开始是想要区分列名大小写的问题,在网上看到很多办法,于是就
1、linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写;
2、2、用root帐号登录后,在/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写;lower_case_table_names参数详解:
lower_case_table_names = 0
其中 0:区分大小写,1:不区分大小写
MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的; 4、变量名也是严格区分大小写的;
MySQL在Windows下都不区分大小写。在my.ini 中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写;lower_case_table_names参数详解:
lower_case_table_names = 0
其中 0:区分大小写,1:不区分大小写3、如果想在查询时区分字段值的大小写,则:字段值需要设置BINARY属性,设置的方法有多种:
A、创建时设置:CREATE TABLE T( A VARCHAR(10) BINARY );
B、使用alter修改:ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45)BINARY; C、mysql table editor中直接勾选BINARY项。
乱码解决,更详细的看下字符集设置这篇
在[mysqld] 下增加下句
default-character-set=utf8
但是经过本人的实践之后如果按此方法修改后表名的区分大小写指的是你创建一个表之后,它保留你创建时候的表名的原貌,但是在系统后台存储的时候此表是不区分大小写的,也就是说在创建一个表名仅大小写不一样的表是不可以的。例如;在修改为表名区分大小写之后,也就是 lower_case_table_names = 0 (不管是在哪个系统下)在mysql命令行界面下输入CREATE TABLE TEST( Id int not null primary key, Namevarchar not null);之后你执行show tables;会包含一个TEST表,表名保留原来的大小写,你如果输入show tables like ‘t%’;是查不到这个新建的表的;之后你在创建另外一个表,CREATE TABLE test( Id int not null primary key, Namevarchar not null);系统会提示你,表test已经存在,不允许创建。
1、linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写;
2、2、用root帐号登录后,在/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写;lower_case_table_names参数详解:
lower_case_table_names = 0
其中 0:区分大小写,1:不区分大小写
MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的; 4、变量名也是严格区分大小写的;
MySQL在Windows下都不区分大小写。在my.ini 中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写;lower_case_table_names参数详解:
lower_case_table_names = 0
其中 0:区分大小写,1:不区分大小写3、如果想在查询时区分字段值的大小写,则:字段值需要设置BINARY属性,设置的方法有多种:
A、创建时设置:CREATE TABLE T( A VARCHAR(10) BINARY );
B、使用alter修改:ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45)BINARY; C、mysql table editor中直接勾选BINARY项。
乱码解决,更详细的看下字符集设置这篇
在[mysqld] 下增加下句
default-character-set=utf8
但是经过本人的实践之后如果按此方法修改后表名的区分大小写指的是你创建一个表之后,它保留你创建时候的表名的原貌,但是在系统后台存储的时候此表是不区分大小写的,也就是说在创建一个表名仅大小写不一样的表是不可以的。例如;在修改为表名区分大小写之后,也就是 lower_case_table_names = 0 (不管是在哪个系统下)在mysql命令行界面下输入CREATE TABLE TEST( Id int not null primary key, Namevarchar not null);之后你执行show tables;会包含一个TEST表,表名保留原来的大小写,你如果输入show tables like ‘t%’;是查不到这个新建的表的;之后你在创建另外一个表,CREATE TABLE test( Id int not null primary key, Namevarchar not null);系统会提示你,表test已经存在,不允许创建。
相关文章推荐
- MySQL表名、列名区分大小写详解
- MySQL列名是否区分大小写
- 详解MySQL查询时区分字符串中字母大小写的方法
- MySQL中的表名、列名、别名区分大小写的问题及解决办法
- 详解MySQL查询时区分字符串中字母大小写的方法
- linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写;
- mysql查询区分大小写
- Linux下设置MySQL不区分大小写
- MySQL表名不区分大小写的设置方法
- MySQL 在Linux下设置MySQL区分大小写
- mysql单个字段区分大小写
- Mysql区分某个字段大小写解决方案
- mysql列的值默认不区分大小写
- MySQL数据库表名、列名、别名区分大小写的问题
- Mysql区分大小写(大小写敏感)的问题总结
- Linux下MySQL的大小写区分问题
- linux系统下MySQL表名区分大小写问题
- Mysql 查询 区分大小写吗?
- spring boot 1.5.4使用JPA,遇到Mysql区分大小写的问题
- LINUX下mysql的大小写是否区分设置