mysql数据库表不区分大小写,mysql 不区分大小写

发布时间:2022-11-17

本文目录一览:

1、mysql表名怎么配置不区分大小写?
2、mysql数据库不区分大小写吗
3、mysql区分表名区分大小写吗
4、请问mysql数据类型是否区分大小写?
5、mysql数据查询分不分大小写

mysql表名怎么配置不区分大小写?

用root帐号登录后,在/etc/my.cnf中的[mysqld]后添加:

lower_case_table_names=1

重启MYSQL服务,这时已设置成功:不区分表名的大小写。

lower_case_table_names参数详解:

  • lower_case_table_names = 0:区分大小写
  • lower_case_table_names = 1:不区分大小写 MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
  1. 数据库名与表名是严格区分大小写的;
  2. 表的别名是严格区分大小写的;
  3. 列名与列的别名在所有的情况下均是忽略大小写的;
  4. 变量名也是严格区分大小写的; MySQL在Windows下都不区分大小写。 如果想在查询时区分字段值的大小写,则字段值需要设置BINARY属性,设置的方法有多种: A、创建时设置:
CREATE TABLE T(
A VARCHAR(10) BINARY
);

B、使用alter修改

mysql数据库不区分大小写吗

可以设置的。 在MySQL中,数据库和表对应于那些目录下的目录和文件。因此,操作系统的敏感性决定数据库和表命名的大小写敏感。这意味着数据库和表名在Windows中是大小写不敏感的,而在大多数类型的Unix系统中是大小写敏感的。 奇怪的是列名与列的别名在所有的情况下均是忽略大小写的,而表的别名又是区分大小写的。 要避免这个问题,你最好在定义数据库命名规则的时候就全部采用小写字母加下划线的组合,而不使用任何的大写字母。 或者也可以强制以:

-O lower_case_table_names=1

参数启动mysqld(如果使用--defaults-file=...\my.cnf参数来读取指定的配置文件启动mysqld的话,你需要在配置文件的[mysqld]区段下增加一行:

lower_case_table_names=1

这样MySQL将在创建与查找时将所有的表名自动转换为小写字符(这个选项缺省地在Windows中为1,在Unix中为0。从MySQL 4.0.2开始,这个选项同样适用于数据库名)。 当你更改这个选项时,你必须在启动mysqld前首先将老的表名转换为小写字母。

mysql区分表名区分大小写吗

在mysql数据库中是不区分大小写的。 例如:

1
c
12
2
c
13

我们查询一下:

select * from xx where x = 'c';

结果会告诉我们数据库会查出两条,所以查询也不区分大小写。

请问mysql数据类型是否区分大小写?

mysql数据库中的字段不区分大小写,但数据库名与操作系统有关系:

  • Windows下不区分大小写;
  • *nix下区分大小写。 内容当然是区分的啦,像用户rootRoot就不同嘛。

mysql数据查询分不分大小写

解决方案一:

通过查询资料发现需要设置collate(校对):

  • *_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的;
  • *_cs: case sensitive collation,区分大小写;
  • *_ci: case insensitive collation,不区分大小写。

解决方法:

  1. 可以将查询条件用binary()括起来。例如:
    select * from TableA where binary columnA = 'aaa';
    
  2. 可以修改该字段的collationbinary。例如:
    ALTER TABLE TABLENAME MODIFY COLUMN COLUMNNAME VARCHAR(50) BINARY CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL;
    

解决方案二:

mysql查询默认是不区分大小写的,例如:

select * from some_table where str='abc';
select * from some_table where str='ABC';

得到的结果是一样的,如果我们需要进行区分的话可以按照如下方法来做:

第一种方法:

要让mysql查询区分大小写,可以:

select * from some_table where binary str='abc'
select * from some_table where binary str='ABC'

第二种方法:

在建表时时候加以标识:

create table some_table(
str char(20) binary
)