小数类型为 decimal,禁止使用 float 和 double。
说明:
在存储的时候,float 和 double 都存在精度损失的问题,很可能在比较值的时候,得到不正确的 结果。如果存储的数据范围超过 decimal 的范围,建议将数据拆成整数和小数并分开存储。
不要使用 count(列名)或 count(常量)来替代 count(*)
说明:
count(*)是 SQL92 定义的标 准统计行数的语法,跟数据库无关,跟 NULL 和非 NULL 无关。 count(*)会统计值为 NULL 的行,而 count(列名)不会统计此列为 NULL 值的行。
使用 ISNULL()来判断是否为 NULL 值。
说明:
NULL
与任何值的直接比较都为
NULL
。
1)
NULL<>NULL
的返回结果是
NULL
,而不是
false
。
2)
NULL=NULL
的返回结果是
NULL
,而不是
true
。
3)
NULL<>1
的返回结果是
NULL
,而不是
true
。
代码中写分页查询逻辑时,若 count 为 0 应直接返回
说明:
避免执行后面的分页语句。
业务上具有唯一特性的字段,即使是组合字段,也必须建成唯一索引。
说明:
不要以为唯一索引影响了 insert 速度,这个速度损耗可以忽略,但提高查找速度是明显的;另外, 即使在应用层做了非常完善的校验控制,只要没有唯一索引,根据墨菲定律,必然有脏数据产生。