MySQL表名、列名区分大小写详解

合集下载

mysql数字字母汉字排序规则

mysql数字字母汉字排序规则

MySQL的排序规则是基于字符集和校对规则的。

对于数字、字母和汉字,MySQL使用不同的校对规则。

1. 数字: 数字是按照数值大小进行排序的,这是默认的排序方式。

2. 字母: 字母的排序通常依赖于校对规则。

例如,使用`utf8_general_ci`校对规则,字母是按照字母表顺序进行排序的。

`ci`表示大小写不敏感。

3. 汉字: 对于汉字,排序规则更加复杂。

汉字有多个不同的字符集,如`utf8`、`utf8mb4`等。

排序规则如`utf8_general_ci`或`utf8_bin`会影响汉字的排序方式。

* `utf8_general_ci`: 按照一般的汉字习惯进行排序,不区分声调、笔画、部首等。

* `utf8_bin`: 按照二进制值进行排序,这通常意味着按照字符的字节顺序进行排序。

如果你想对数字、字母和汉字进行排序,你需要明确指定校对规则。

例如,如果你想按照汉字的笔画顺序进行排序,你可能需要使用第三方插件或自定义的校对规则。

总的来说,MySQL的排序规则取决于字符集和校对规则的设置。

如果你需要特定的排序行为,你可能需要调整这些设置或者使用自定义的排序函数。

mysql5.7 关闭驼峰命名规则

mysql5.7 关闭驼峰命名规则

mysql5.7 关闭驼峰命名规则
在MySQL 5.7中,可以通过以下步骤关闭驼峰命名规则:
1. 打开MySQL配置文件(通常是f或my.ini)。

2. 在[mysqld]部分下添加以下行:
```sql
[mysqld]
lower_case_table_names=2
```
3. 保存并关闭配置文件。

4. 重启MySQL服务器以使更改生效。

请注意,在MySQL 5.7中,`lower_case_table_names`参数有三个可能的值:
* 0:表示区分大小写,即驼峰命名规则生效。

* 1:表示不区分大小写,即表名和列名的大小写由操作系统决定。

* 2:表示不区分大小写,表名和列名的大小写由MySQL服务器的设置决定。

通过将`lower_case_table_names`设置为2,您可以关闭驼峰命名规则并允许表名和列名的大小写由MySQL服务器的设置决定。

1。

MySQL的SQL语句大小写不敏感问题解决方案

MySQL的SQL语句大小写不敏感问题解决方案
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的;
MySQL在Windows下都不区分大小写。
MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,这个字符集对大小写不敏感,因此在比较过程中中文编码字符大小写转换造成了这种现象。
更加迷惑的是下面的2条语句
Java代码
1.insert into t values('~');
2.
3.insert into t values('y');
也会发生插入错误。
在查询的时候也会出现这样的问题
Java代码
1./*查询的结果一眼*/
2.select * from t where a like'a%'
MySQL的大小写问题不是一个很大的问题,但是如果不了解的话,却会使用户产生迷惑;如下面
Sql代码
1.insertintotvalues('A');
2.
3.insertintotvalues('a');
当第二条执行的时候,如果是主键或者有唯一性约束的话,会发生
Sql代码
1.Duplicate entryforXXX
);
使用alter修改:
ALTER TABLE `tablename` MODIFY COLUMN `cloname`VARCHAR(45) BINARY;
mysqltable editor中直接勾选BINARY项。
2.解决办法
A.表名区分大小写

mysql 关联表命名规则

mysql 关联表命名规则

在MySQL 中,关联表的命名规则没有严格的规定,但是有一些常用的命名约定可以遵循。

这些约定旨在提高代码的可读性和可维护性。

以下是一些建议的关联表命名规则:
1. 使用具有描述性的表名:关联表名应该能够清晰地表示其所代表的关系。

例如,如果两个表是通过外键关联的,可以考虑使用这两个表名的组合或者加上关联类型来命名关联表。

2. 使用下划线分隔单词:为了提高可读性,可以使用下划线`_` 来分隔单词。

这样可以更清楚地区分单词,并使表名更易于阅读。

例如,可以使用`order_items` 作为订单明细表的关联表名。

3. 避免使用缩写和简写:尽量避免使用缩写和简写,因为它们可能会导致混淆和歧义。

使用完整的单词可以增加代码的可读性和可理解性。

4. 保持一致性:在整个数据库中保持关联表命名的一致性非常重要。

使用相似的命名约定可以使数据库结构更加一致,减少混乱和错误。

5. 参考行业标准和最佳实践:可以参考行业标准和最佳实践来命名关联表。

不同的行业和开发团队可能有不同的命名约定,根据实际情况选择适合自己项目的命名规则。

总的来说,关联表的命名规则应该能够清晰地表示其所代表的关系,保持一致性,并遵循良好的命名约定以提高代码的可读性和可维护性。

1。

【IT专家】mysql 表名大小写敏感处理 lower

【IT专家】mysql 表名大小写敏感处理 lower

本文由我司收集整编,推荐下载,如有疑问,请与我司联系mysql 表名大小写敏感处理lower2018/03/27 12 到mysql数据库下查询表时,差点没被表名的大小写搞死。

到官网查看文档,可以通过参数控制 # vi /etc/myf[mysqld]lower_case_table_names=1 官网的描述如下 lower_case_table_names can take the values shown in the following table. This variable does not affect case sensitivity of trigger identifiers. On Unix, the default value of lower_case_table_names is 0. On Windows, the default value is 1. On OS X, the default value is 2.Value Meaning0 Table and database names are stored on disk using the lettercase specified in the CREATE TABLE or CREATE DATABASE statement. Name comparisons are case sensitive. You should not set this variable to 0 if you are running MySQL on a system that has case-insensitive file names (such as Windows or OS X). If you force this variable to 0 with --lower-case-table-names=0 on a case-insensitive file system and access MyISAM tablenames using different lettercases, index corruption may result. 1 Table names are stored in lowercase on disk and name comparisons are not case-sensitive. MySQL converts all table names to lowercase on storage and lookup. This behavior also applies to database names and table aliases. 2 Table and database names are stored on disk using the lettercase specified in the CREATE TABLE or CREATE DATABASE statement, but MySQL converts them to lowercase on lookup. Name comparisons are not case sensitive. This works only on file systems that are not case-sensitive! InnoDB table names are stored in lowercase, as for lower_case_table_names=1.tips:感谢大家的阅读,本文由我司收集整编。

mysql中desc的用法

mysql中desc的用法

mysql中desc的用法MySQL中的DESC用法详解MySQL是一种功能强大且广泛使用的关系型数据库管理系统。

作为一个开发者或数据库管理员,了解和掌握MySQL的各种命令和用法是非常重要的。

其中一个常用的命令是DESC,在本文中,我们将一步一步地回答关于DESC用法的问题。

DESC命令是MySQL中的一个关键字,用于获取数据库表或视图的结构信息。

它可以帮助我们了解表的列名、数据类型、长度等属性。

通过DESC 命令,我们可以快速了解表的结构,并根据需要编写SQL查询语句。

那么,让我们来详细了解DESC命令的用法。

一、DESC命令的语法DESC命令的基本语法如下:DESC [table_name];其中,table_name是我们要获取结构信息的表或视图的名称。

二、DESC命令的作用DESC命令用于获取指定表或视图的结构信息。

通过DESC命令,我们可以查看表的列名、数据类型、长度、默认值等属性。

它提供了一个简洁的方式来了解表的结构,以便我们能够更好地理解和操作表中的数据。

三、使用DESC命令查询表结构首先,我们需要连接到MySQL数据库,以便执行DESC命令。

在登录数据库后,我们可以选择要查询的数据库,并使用以下命令来获取表的结构信息:DESC [table_name];其中,table_name是我们要查询的表名。

例如,我们要查询名为"employees"的表的结构信息,可以执行以下命令:DESC employees;执行上述命令后,我们将获得一个包含列名、数据类型、长度、键类型等信息的结果集。

这些信息将帮助我们更好地了解表的结构。

如果我们只想查询表的列名和数据类型,可以使用以下命令:DESC employees \G;这个命令将以更易读的方式显示结果,每个字段都使用一行。

在这个命令中,我们使用"\G"转义字符,它将结果集以垂直方式显示,而不是水平方式。

mysql 创建表语法

mysql 创建表语法

mysql 创建表语法MySQL是一种常用的关系型数据库管理系统,用于存储和管理大量的数据。

在MySQL中,创建表是一项基本操作,它定义了表的结构和字段属性。

本文将介绍MySQL创建表的语法及相关注意事项。

一、创建表的语法在MySQL中,创建表的语法如下所示:CREATE TABLE 表名 (列名1 数据类型1,列名2 数据类型2,...列名n 数据类型n);其中,CREATE TABLE是创建表的关键字,表名是用户自定义的表名,列名是表中每个字段的名称,数据类型是指定每个字段的数据类型,n表示字段的个数。

二、数据类型的选择MySQL支持多种数据类型,根据实际需求选择合适的数据类型非常重要。

常用的数据类型包括:1. 数字类型:包括整数类型(INT、TINYINT、SMALLINT、BIGINT等)和浮点类型(FLOAT、DOUBLE等)。

2. 字符串类型:包括定长字符串(CHAR)和变长字符串(VARCHAR)。

3. 日期时间类型:包括日期类型(DATE)、时间类型(TIME)和日期时间类型(DATETIME)。

4. 布尔类型:用于表示真或假,可以使用TINYINT(1)或BOOL类型。

5. 文本类型:包括较短文本(TINYTEXT)、普通文本(TEXT)和较长文本(LONGTEXT)。

根据实际需求选择合适的数据类型,可以有效地提高数据库的性能和存储效率。

三、字段属性的设置除了数据类型外,还可以设置字段的其他属性,如是否允许为空(NULL)或唯一(UNIQUE),是否自增(AUTO_INCREMENT),是否设置默认值等。

1. 允许为空:可以通过添加关键字NULL或NOT NULL来设置字段是否允许为空。

如需设置字段允许为空,可以使用以下语法:列名数据类型 NULL;2. 唯一性约束:可以通过添加关键字UNIQUE来设置字段的唯一性约束。

如需设置字段为唯一,可以使用以下语法:列名数据类型 UNIQUE;3. 自增属性:可以通过添加关键字AUTO_INCREMENT来设置字段为自增属性。

sql表命名规则

sql表命名规则

sql表命名规则SQL表命名规则是数据库设计中的重要部分,它有助于保持数据的清晰、一致和易于理解。

一个好的表名应该简洁、有意义,并且遵循一定的命名规范。

以下是一个关于SQL 表命名规则的介绍,涵盖了常见的命名约定、最佳实践以及一些示例。

一、命名约定1. 使用小写字母:大多数数据库系统对大小写敏感,因此建议使用小写字母来命名表。

这样可以避免在不同系统之间出现大小写不一致的问题。

2. 使用下划线分隔单词:为了提高可读性,建议使用下划线(_)来分隔多个单词。

例如,`users_profile`。

3. 避免使用特殊字符:避免在表名中使用特殊字符,如空格、标点符号等。

特殊字符可能会引起查询错误或混淆。

4. 避免使用保留字:避免使用数据库系统的保留字作为表名。

保留字是数据库系统预定义的、具有特殊意义的词汇,如`SELECT`、`FROM`等。

5. 使用前缀或后缀:为了区分不同的表或表类型,可以使用前缀或后缀来命名表。

例如,`tbl_users`(前缀)或`users_tbl`(后缀)。

二、最佳实践1. 保持简洁:表名应该简洁明了,避免使用过长的名称。

过于复杂的名称会使查询和维护变得困难。

2. 使用有意义的名称:表名应该描述表中存储的数据内容或相关属性。

避免使用无意义或抽象的名称。

3. 避免使用数字或符号:避免在表名中使用数字或符号,除非有特殊需求。

数字和符号可能会使查询变得复杂,并且难以阅读和理解。

4. 使用单数或复数形式:根据数据库系统的语法规则和编程语言的约定,选择使用单数或复数形式来命名表。

确保在整个数据库设计中保持一致。

5. 避免使用下划线开头的名称:在某些数据库系统中,以下划线开头的名称可能会被视为私有字段或隐藏字段。

因此,避免在表名中使用下划线开头。

三、示例以下是一些示例,展示了符合SQL表命名规则的表名:1. 用户信息表:`users_info`2. 产品分类表:`products_categories`3. 订单明细表:`orders_details`4. 员工薪资表:`employees_salaries`5. 客户反馈表:`customer_feedback`这些示例遵循了上述的命名约定和最佳实践,使得表名简洁明了、有意义且易于理解。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
会包含一个TEST表,表名保留原来的大小写,
你如果输入showtables like ‘t%’;是查不到这个新建的表的;
之后你在创建另外一个表,
CREATE TABLEtest

Id intnot null primary key,
Name varchar not null
);
系统会提示你,表test已经存在,不允许创建。
其中0:区分大小写,1:不区分大小写
3、如果想在查询时区分字段值的大小写,则:字段值需要设置BINARY属性,(
A VARCHAR(10) BINARY
);
B、使用alter修改:
ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;
lower_case_table_names参数详解:
lower_case_table_names = 0
其中0:区分大小写,1:不区分大小写
MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
在刚开始使用mysql的时候,刚开始是想要区分列名大小写的问题,在网上看到很多办法,于是就
1、linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写;
2、2、用root帐号登录后,在/etc/f中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写;
例如;
在修改为表名区分大小写之后,也就是lower_case_table_names = 0(不管是在哪个系统下)在mysql命令行界面下输入
CREATE TABLE TEST

Id intnot null primary key,
Name varchar not null
);
之后你执行showtables;
C、mysql table editor中直接勾选BINARY项。
乱码解决,更详细的看下字符集设置这篇
在[mysqld]下增加下句
default-character-set=utf8
但是经过本人的实践之后如果按此方法修改后表名的区分大小写指的是你创建一个表之后,它保留你创建时候的表名的原貌,但是在系统后台存储的时候此表是不区分大小写的,也就是说在创建一个表名仅大小写不一样的表是不可以的。
4、变量名也是严格区分大小写的;
MySQL在Windows下都不区分大小写。
在my.ini中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写;
lower_case_table_names参数详解:
lower_case_table_names = 0
相关文档
最新文档