相关疑难解决方法(0)

为什么Oracle 9i将空字符串视为NULL?

我知道它确实考虑过'' NULL,但这并没有太多告诉我为什么会这样.据我所知,SQL规范''与NULL- 不一样- 一个是有效数据,另一个是缺少相同的信息.

随意推测,但请说明是否是这种情况.如果甲骨文的任何人都能评论它,那就太棒了!

sql string oracle null

206
推荐指数
4
解决办法
7万
查看次数

何时在MySQL表中使用NULL

我很欣赏数据库表中NULL值的语义含义,不同于false和空字符串''.但是,当字段可以为空时,我经常阅读有关性能问题的内容,并建议在NULL实际上在语义上正确的情况下使用空字符串.

什么情况适合使用可空字段和NULL值?有什么权衡取舍?简单地避免完全使用NULL并简单地使用空字符串,false或0表示缺少值是明智的吗?

UPDATE

好的 - 我理解'和NULL之间的语义差异以及NULL是适当的字段值的(性能不可知)情况.但是,让我扩展一下暗示的性能问题.这是来自Schwartz,Zeitsev等人的优秀"高性能MySQL" http://www.borders.co.uk/book/high-performance-mysql-optimization-backups-replication-and-more/857673/:

MySQL更难以优化引用可空库存的查询,因为它们使索引,索引统计和值比较更加复杂.可空列使用更多存储空间,并且需要在MySQL内部进行特殊处理.当索引可空列时,每个条目需要一个额外的字节,甚至可以在MyISAM中将固定大小的inded(例如单个整数列上的索引)转换为可变大小的列.

更多信息: Google图书预览

这很可能是明确的答案 - 我只是在寻找前线的第二意见和经验.

mysql null

48
推荐指数
4
解决办法
3万
查看次数

标签 统计

null ×2

mysql ×1

oracle ×1

sql ×1

string ×1