两种空的表示形式
- null可表示空,null是关键字,一般表示什么也没有,下面称呼它为null。
- ''可表示空,''是一对单引号表示一个空字符串, 下面称呼它为“空值”。
操作
- 向表的某列写入“空”
- 以“空”为条件查询
在使用FDP时操作表时,对“空”的处理
- 避免使用“空”
- 无法避免时如何作
避免使用“空”
在设计表结构时,应避免使用“空”。 举例,审批表有一个status状态字段。
差的设计 :"空"表示待审核,1表示审批中,2表示审批通过,3表示审批不通过。
"空"在mysql数据库中有两种,请看 MySql数据库的null和空值
"空"在oracle数据库中有一种,请看 Oracle数据库的null和空值
假如你使用的是mysql数据,它是区分null与空值(空字符串)的,"空"表示待审核,写入时:"空"有可能是null或空值(空字符串),查询时:也要加以区分才行。
好的设计 :0表示待审核,1表示审批中,2表示审批通过,3表示审批不通过。
在设计表时应避免使用“空”,就避开了这个烦恼。
无法避免时如何做
当你使用旧项目中已有的表,表结构早以设计好,你不能改变时。
若使用mysql库时,想清空某列时,建议写入null ,不建议写入空值(空字符串),并保持一致性。目前FDP可使用updateById语句、insert语句来写入null。是全字段写入也要小心处理。或自己手动写sql来实现。
查询时使用,select * from test_02 where name ='' or name is null; # 要使用or才能查出正确结果,真麻烦阿!
若使用Oralce库时,使用 NOT NULL 、IS NOT NULL。