当前位置:  开发笔记 > 数据库 > 正文

SQLite3的动态类型

如何解决《SQLite3的动态类型》经验,为你挑选了1个好方法。

与其他SQL版本相比,SQLite3使用动态类型而不是静态类型.在SQLite的网站上写着:

大多数SQL数据库引擎(除了SQLite之外的每个SQL数据库引擎,据我们所知)都使用静态,严格的类型.使用静态类型时,值的数据类型由其容器(存储值的特定列)确定.

SQLite使用更通用的动态类型系统.在SQLite中,值的数据类型与值本身相关联,而不是与其容器相关联.

在我看来,这正是你想要的,因为它允许你存储整数列中的字符串.

页面继续:

... SQLite中的动态类型允许它执行传统的刚性类型数据库中无法实现的操作.

我有两个问题:

    用例问题:SQLite3的动态类型有哪些例子?

    历史/设计问题:使用动态类型实现SQLite的动机是什么?

Mike Cialowi.. 9

这在SQLite中称为类型亲缘关系.

根据SQLite网站的说法,他们这样做是为了"最大化SQLite和其他数据库引擎之间的兼容性".(见上面的链接)

SQLite支持列上的"类型亲和性"概念.列的类型亲缘关系是存储在该列中的数据的推荐类型.这里的重要思想是建议使用类型,而不是必需的.任何列仍然可以存储任何类型的数据.根据选择,某些列更倾向于使用一个存储类而不是另一个存储类.列的首选存储类称为"亲和性".

我的理解是SQLite正是它的名字 - 一个非常轻量级的简约数据库引擎.与强类型相关的开销可能超出了项目的范围,最好留给使用SQLite的应用程序.

但同样,根据他们的网站,他们已经这样做,以最大限度地兼容其他数据库引擎.



1> Mike Cialowi..:

这在SQLite中称为类型亲缘关系.

根据SQLite网站的说法,他们这样做是为了"最大化SQLite和其他数据库引擎之间的兼容性".(见上面的链接)

SQLite支持列上的"类型亲和性"概念.列的类型亲缘关系是存储在该列中的数据的推荐类型.这里的重要思想是建议使用类型,而不是必需的.任何列仍然可以存储任何类型的数据.根据选择,某些列更倾向于使用一个存储类而不是另一个存储类.列的首选存储类称为"亲和性".

我的理解是SQLite正是它的名字 - 一个非常轻量级的简约数据库引擎.与强类型相关的开销可能超出了项目的范围,最好留给使用SQLite的应用程序.

但同样,根据他们的网站,他们已经这样做,以最大限度地兼容其他数据库引擎.


关于"与强类型相关的开销":假设你实际上意味着"静态类型":我认为使用静态类型将允许_more_高效实现而不是动态类型.例如,存储可以更紧凑,并且在查询时可以避免许多类型检查.
推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有