![]() |
1
10
MySql使用第二种方法。它存储一个位数组(每列一个),其中包含每行的数据,以指示哪些列为空,然后将该字段的数据留空。我很确定这对所有其他数据库也是如此。 第一种方法的问题是,您确定为数据选择的任何值都不会显示为有效数据吗?对于某些值(如日期或浮点数),这是正确的。对于其他人(如整数),这是错误的。 |
![]() |
2
5
这与数据本身的存储完全分离,但与行位于同一页上(因此,行和位图一起读取)。 参考资料: |
![]() |
3
2
服务器通常使用元信息,而不是神奇的值。所以这里有一个位置,指定字段是否为空。 -亚当 |
![]() |
4
1
IBMInformixDynamicServer使用特殊值来指示空值。例如,SMALLINT(16位,有符号)的有效值范围为-32767..+32767。另一个值-32768保留为NULL。整数(4字节,有符号)和BIGINT(8字节,有符号)也是如此。对于其他类型,它使用其他特殊表示(例如,SQL FLOAT和SMALLFLOAT的所有位1,即分别为C double和FLOAT)。这意味着它不必使用额外的空间。 ibmdb2forlinux,Unix,Windows使用额外的字节来存储空指示符;好吧,它对每个可为空的字段使用一个单独的字节,但在这个细节上我可能错了。 因此,正如前面所指出的,机制因DBMS而异。 |
![]() |
5
1
指示NULL的特殊值的问题在于,该特殊值迟早会被插入。例如,它将被插入到一个表中,为不同的数据库服务器指定特殊的空指示符
;-) |
![]() |
saber · MySql查询没有结果 2 年前 |
![]() |
pigfox · Mysql空表联接失败 6 年前 |
![]() |
Jaa Zaib · 返回空值的大小写表达式 6 年前 |
![]() |
Robert Vogelezang · 为什么null未写入输出窗口? 6 年前 |
![]() |
l. schwarz · sql长度(null) 6 年前 |
![]() |
ÇAÄrı Keskin · SQL-删除(消除)没有数据的列 6 年前 |
|
Dorkymon · 使用系统在输出处获取null。出来打印F 6 年前 |