手机版

SQLite学习手册-数据类型

时间:2021-08-04 来源:互联网 编辑:宝哥软件园 浏览:

类型:文件处理大小:1.5M语言:中文评分:3.1标签:立即下载1。存储类型和数据类型:SQLite将数据值的存储分为以下存储类型:NULL:表示值为NULL。INTEGER:无符号整数值。REAL:浮点值。文本:文本字符串,存储在UTF-8、UTF-16BE和UTF-16LE中。BLOB:存储BLOB数据,与输入数据完全相同。SQLite使用动态数据类型,而其他传统的关系数据库使用静态数据类型,即字段可以存储的数据类型是在表声明时确定的,因此两者之间的数据存储还是有很大的差异。在SQLite中,存储分类和数据类型之间存在一些差异。例如,Integer存储类别可以包含六种不同长度的INTEGER数据类型。然而,一旦这些INTEGER数据被读入内存,SQLite会将它们视为占据8个字节的无符号整数。因此,对于SQLite,即使在表声明中指定了字段类型,我们仍然可以在这个字段中存储其他类型的数据。但是需要注意的是,虽然SQLite为我们提供了这种便利,但是一旦考虑到数据库平台的可移植性,在实际开发中就要尽量保证数据类型存储和声明的一致性。除非你有一个非常好的理由,不考虑移植数据库平台,否则在这种情况下,你真的可以使用SQLite提供的这个特性。1.布尔数据类型:SQLite不提供特殊的布尔存储类型。相反,存储整数1表示真,0表示假。2.日期和时间数据类型:与布尔类型一样,SQLite也不提供特殊的日期和时间存储类型,而是以TEXT、REAL和INTEGER等不同格式表示这种类型。例如,text : ' yyyy-mm-DD hh :mm 3360s。SSS' real:以儒略日格式存储INTEGER:以Unix时间格式存储数据值,即从1970-01-01 00:00:00到当前时间经过的秒数。类型亲和度:为了最大化SQLite与其他数据库引擎之间数据类型的兼容性,SQLite提出了“类型亲和度”的概念。我们可以这样理解“类型亲和力”。在一个表字段被声明之后,SQLite将根据该字段被声明时的类型为其选择一个相似类型。当插入数据时,该字段中的数据将优先采用相似类型作为值的存储模式。除非关联性类型不匹配或者当前数据无法转换为关联性类型,否则SQLite将考虑更适合该值的其他类型来存储该值。SQLite的当前版本支持以下五种亲属关系类型:

同族类型描述文本数字数据在插入之前需要转换成文本格式,然后插入目标字段。NUMERIC当文本数据插入到具有NUMERIC亲缘关系的字段中时,如果转换操作不会导致数据信息丢失并且是完全可逆的,SQLite会将文本数据转换为INTEGER或REAL数据。如果转换失败,SQLite仍会将数据存储为文本。对于NULL或BLOB类型的新数据,SQLite不会做任何转换,直接将数据存储为NULL或BLOB。需要注意的是,对于浮点格式的常量文本,如‘30000.0’,如果该值可以转换为INTEGER而不丢失数值信息,SQLite会将其转换为INTEGER存储模式。对于遗传类型为INTEGER的字段,INTEGER具有与NUMERIC相同的规则,但唯一的区别是执行CAST表达式的时间。REAL的规则基本等同于NUMERIC,唯一不同的是‘30000.0’等文本数据不会转换为INTEGER存储模式。NONE不做任何转换,直接存储为数据所属的数据类型。1.确定字段关联性的规则:字段的关联性是根据声明字段时定义的类型来确定的。具体规则请参考以下列表。需要注意以下列表的顺序,即如果某个字段类型同时满足两个亲缘关系,第一个规则将首先生效。1).如果类型字符串包含“INT”,那么这个字段的相对类型是INTEGER。2)如果类型字符串包含“CHAR”、“CLOB”或“TEXT”,则该字段的相关类型为TEXT,如VARCHAR。3).如果类型字符串包含“BLOB”,则该字段的相对类型为NONE。4).如果类型字符串包含“真实”、“FLOA”或“豆瓣”,则该字段的相关类型为“真实”。5).在其他情况下,该字段的遗传类型是NUMERIC。2.具体例子:

声明类型亲缘关系类型应用规则int integertinyintsallintmidumintintunsigned big int 2 int 8 integer 1 character(20)varchar (255)VARCHAR(255)changing char(55)Native char(70)nvarchar(100)textclobtext 2 blob none 3 real double double precision floor numeric 4 numeric decimal(10,5) booleandatetimenumeric5注意:在SQLite中,VARCHAR(255)类型的长度信息255没有实际意义Iii .比较表达式:SQLite3中支持的比较表达式有:“=”、“=”、“”、“=”、“=”、“”、“”、“=”!=','',' IN ',' NOT IN ',' BETWEEN ',' IS '和' IS NOT ' .数据的比较结果主要取决于操作数的存储方式,其规则如下:1)存储方式为NULL的值小于其他存储类型的值。2).存储模式是INTEGER和REAL的值小于TEXT或BLOB的值。如果它们都是整数或实数,则比较是基于数字规则的。3).存储模式是TEXT的值小于BLOB类型的值。如果两者都是文本,则比较基于文本规则(ASCII值)。4).如果比较两个BLOB类型的值,结果就是C运行时函数memcmp()的结果。4.运算符:所有数学运算符(,-,*,/,%,和|)在执行之前都会将操作数转换为NUMERIC存储类型,即使数据信息在转换过程中可能会丢失。此外,如果其中一个操作数为空,它们的结果也为空。在数学运算符中,如果其中一个操作数看起来不像数字类型,那么它们的结果就是0或0.0。

版权声明:SQLite学习手册-数据类型是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。