默认值的不同列属性

时间:2011-08-30 15:49:27

标签: mysql database

任何人都可以举例说明何时使用

  • allow null
  • default 0
  • default ''empty string

在哪些情况下应该使用这些不同的配置?

2 个答案:

答案 0 :(得分:2)

通常,避免使用NULL。 NULL往往需要额外的编码工作。 NULL与空字符串的处理因RDBMS而异。集合中的NULL排序因RDBMS而异。

那就是说,您可能希望: 当相关行是可选的时,在外键列上使用NULL。

如果希望从聚合操作中消除值,请使用NULL。例如,如果您有“年龄”列,但不要求所有记录都包含此信息,您仍然可以从以下位置获取有用的信息:SELECT AVG(age)FROM mytable

当您需要三元逻辑时使用NULL。

答案 1 :(得分:1)

1. NULL值表示字段中记录的值不存在(其他软件称其为缺失值)。

2.空值是“字段格式化”的值,其中没有重要数据。

3.NULL没有分配任何内存,具有NUll值的字符串只是指向内存中无处的指针。但是,虽然存储在内存中的值是“”,但是空IS被分配到内存位置。

4.Null没有边界,它可以用于数据库中的字符串,整数,日期等字段。空字符串只是关于字符串;它是像'asdfasdf'那样的字符串,但它没有长度。如果字段没有值,请使用null,而不是空字符串。

5.Null是数据库在逻辑上确定缺少值的可能性。您可以查询:FIELD_NAME为NULL