Sqlite数据类型
发布时间:2020-12-12 23:53:24 所属栏目:百科 来源:网络整理
导读:前言 最近想学习使用Android自带的sqlite数据库,首先需要了解一下sqlite提供的数据类型,方便建表操作。 原文链接:http://www.cnblogs.com/stephen-liu74/archive/2012/01/18/2325258.html 存储种类和数据类型 SQLite将数据值的存储划分为以下几种存储类型
前言最近想学习使用Android自带的sqlite数据库,首先需要了解一下sqlite提供的数据类型,方便建表操作。原文链接:http://www.cnblogs.com/stephen-liu74/archive/2012/01/18/2325258.html 存储种类和数据类型SQLite将数据值的存储划分为以下几种存储类型:NULL:表示该值为NULL值。 INTEGER:无符号整型值。 REAL:浮点值。 TEXT:文本字符串,存储使用的编码方式为UTF-8、UTF-16BE、UTF-16LE。 BLOB:存储blob数据,该类型数据和输入数据完全相同。 由于SQLite采用的是动态数据类型,而其他系统的关系型数据库使用的是静态数据类型,即字段可以存储的数据类型是在表声明时即可以确定的,因此它们之间在数据存储方面还是存在着很大的差异。在SQLite中,存储分类和数据类型也有一定的差别,如INTEGER存储类别可以包含6种不同长度的Integer数据类型,然而这些INTEGER数据一旦被读入到内存后,SQLite会将其全部视为占用8个字节无符号整型。因此对于SQLite而言,即使在表声明中明确了字段类型,我们仍然可以在该字段中存储其它类型的数据。然而需要特别说明的是,尽管SQLite为我们提供了这种方便,但是一旦考虑到数据库平台的可移植性问题,我们在实际的开发中还是应该尽可能的保证数据类型的存储和声明的一致性。除非你有极为充分的理由,同时又不再考虑数据库平台的移植问题,在此种情况下确实可以使用SQLite提供的此种特征。 类型亲缘性为了最大化SQLite和其它数据库引擎之间的数据类型兼容性,SQLite提出了”类型亲缘性(Type Affinity)“的概念。我们可以这样理解”类型亲缘性“,在表字段被声明之后,SQLite都会根据该字段声明时的类型为其选择一种亲缘类型,当数据插入时,该字段的数据会优先采用亲缘类型作为该值的存储方式,除非亲缘类型不匹配或无法转换当前数据到该亲缘类型,这样SQLite才会考虑其它更适合该值的类型存储该值。SQLite目前支持以下5中数据类型: |