mysql decimal 比较大小

您所在的位置:网站首页 mysql中decimal比较大小 mysql decimal 比较大小

mysql decimal 比较大小

2023-10-05 23:19| 来源: 网络整理| 查看: 265

阿里手册是阿里工程师多年一线经验的结晶,遵循其中的约定与规范,能很大程度的减少某些未知的隐患。

其规约强度由强到弱分为强制、推荐、参考三大类。

本文详细解读了阿里手册的MySQL部分,如果是一些很明确的、不需要过多解释的约定,本文不会解读。

本文分为四部分: 建表规约 索引规约 SQL语句 ORM映射

1 建表规约 【强制】表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint (1 表示是,0 表示否)。 说明:任何字段如果为非负数,必须是 unsigned。 注意:POJO 类中的任何布尔类型的变量,都不要加 is 前缀,所以,需要在设置 从 is_xxx 到 Xxx 的映射关系。数据库表示是与否的值,使用 tinyint 类型,坚持 is_xxx 的 命名方式是为了明确其取值含义与取值范围。 正例:表达逻辑删除的字段名 is_deleted,1 表示删除,0 表示未删除。 解读:从优化角度来讲,应该按字段的用途来定义合适的类型。表达是与否,用长度为1个字节的tinyint足以。 【强制】表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只 出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。 说明:MySQL 在 Windows 下不区分大小写,但在 Linux 下默认是区分大小写。因此,数据库名、 表名、字段名,都不允许出现任何大写字母,避免节外生枝。 正例:aliyun_admin,rdc_config,level3_name 反例:AliyunAdmin,rdcConfig,level_3_name * 解读:Win环境下开发,代码中用的表名是小写,本地数据库用的是大写,那么在win环境下没有问题,但发布到linux环境会有问题。Linux下MySQL安装完后默认:区分表名的大小写,不区分列名的大小写

MySQL在Linux下数据库名、表名、列名、别名大小写规则:

(1)数据库名与表名是严格区分大小写

(2)表的别名是严格区分大小写

(3)列名与列的别名在所有的情况下均是忽略大小写的

(4)变量名也是严格区分大小写的

【强制】表名不使用复数名词。 * 说明:表名应该仅仅表示表里面的实体内容,不应该表示实体数量,对应于 DO 类名也是单数 形式,符合表达习惯。 【强制】禁用保留字,如 desc、range、match、delayed 等,请参考 MySQL 官方保留字。 【强制】主键索引名为 pk_字段名;唯一索引名为 uk_字段名;普通索引名则为 idx_字段名。 * 说明:pk_ 即 primary key;uk_ 即 unique key;idx_ 即 index 的简称。 【强制】小数类型为 decimal,禁止使用 float 和 double。 说明:float 和 double 在存储的时候,存在精度损失的问题,很可能在值的比较时,得到不 正确的结果。如果存储的数据范围超过 decimal 的范围,建议将数据拆成整数和小数分开存储。 解读:float和double都是浮点型,而decimal是定点型。MySQL 浮点型和定点型可以用类型名称后加(M,D)来表示,M表示该值的总共长度,D表示小数点后面的长度。

FLOAT和DOUBLE在不指定精度时,默认会按照实际的精度来显示,而DECIMAL在不指定精度时,默认整数为10,小数为0。所以建议在定义表时,定义(M,D)。

float和double在设置超过定义长度的数值时,会自动四舍五入,decimal会截断,并给出一条警告。

精度损失问题:float和double类型的列,在做sum计算时,会丢失精度,而decimal会精确计算。

【强制】如果存储的字符串长度几乎相等,使用 char 定长字符串类型。 * 解读:从优化角度来说,如果一个表的所有字段都是定长的,那么每一条数据也就是定长的,数据库就可以直接计算出下一条数据的偏移量,查询速度会更快。 【强制】varchar 是可变长字符串,不预先分配存储空间,长度不要超过 5000,如果存储长 度大于此值,定义字段类型为 text,独立出来一张表,用主键来对应,避免影响其它字段索 引效率。 * 解读:MySQL5.0以上版本,varchar最大可以存储65535字节数据(内容开头用1-2个字节存储长度信息,超过255时用两个字节,所以最大65535)。

我们通常编码设置为U8,每



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3