一般数据采用固定的静态数据类型,而SQLite采用的是动态数据类型,会根据存入值自动判断。
SQLite具有以下五种数据类型:
1.NULL:空值。
2.INTEGER:带符号的整型,具体取决有存入数字的范围大小。
3.REAL:浮点数字,存储为8-byte IEEE浮点数。
4.TEXT:字符串文本。
5.BLOB:二进制对象。
但实际上,sqlite3也接受如下的数据类型:
smallint 16 位元的整数。
interger 32 位元的整数。
decimal(p,s) p 精确值和 s 大小的十进位整数,精确值p是指全部有几个数(digits)大小值,s是指小数点后有几位数。如果没有特别指定,则系统会设为 p=5; s=0 。
float 32位元的实数。
double 64位元的实数。
char(n) n 长度的字串,n不能超过 254。
varchar(n) 长度不固定且其最大长度为 n 的字串,n不能超过 4000。
graphic(n) 和 char(n) 一样,不过其单位是两个字元 double-bytes, n不能超过127。这个形态是为了支援两个字元长度的字体,例如中文字。
vargraphic(n) 可变长度且其最大长度为 n 的双字元字串,n不能超过 2000
date 包含了 年份、月份、日期。
time 包含了 小时、分钟、秒。
timestamp 包含了 年、月、日、时、分、秒、千分之一秒。
datetime 包含日期时间格式,必须写成'2010-08-05'不能写为'2010-8-5',否则在读取时会产生错误!
Sqlite常用数据类型,这句话本身就有问题
因为:SQLite是无类型的. 这意味着你可以保存任何类型的数据到你所想要保存的任何表的任何列中, 无论这列声明的数据类型是什么(只有自动递增Integer Primary Key才有用).
对于SQLite来说对字段不指定类型是完全有效的. 如:
Create Table ex3(a, b, c);
即使SQLite允许忽略数据类型, 但是仍然建议在你的Create Table语句中指定数据类型. 因为数据类型对于你和其他的程序员交流, 或者你准备换掉你的数据库引擎是非常有用的. SQLite支持常见的数据类型, 如:
SQL代码
- CREATETABLEex2(
-
aVARCHAR(10),
- bNVARCHAR(15),
- cTEXT,
-
dINTEGER,
-
eFLOAT,
- fBOOLEAN,
- gCLOB,
- hBLOB,
-
iTIMESTAMP,
-
jNUMERIC(10,5),
-
kVARYINGCHARACTER(24),
-
lNATIONALVARYINGCHARACTER(16)
- );
char、varchar、text和nchar、nvarchar、ntext的区别
1、CHAR。CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充。
2、VARCHAR。存储变长数据,但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。从空间上考虑,用varchar合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点。
3、TEXT。text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。
4、NCHAR、NVARCHAR、NTEXT。这三种从名字上看比前面三种多了个“N”。它表示存储的是Unicode数据类型的字符。我们知道字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较起来,nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。
所以一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar。
Android 开发中使用 SQLite 数据库
分享到:
相关推荐
sqlite数据类型说明 .
详细的介绍了 sqlite3的数据类型,已经各类型间的转换,已经对sqlite3进行存取数据的例子程序。
通过该对应表可以方便的创建跟代码类型一致的不同数据库,尤其适用于使用EntityFramework进行C#程序开发的技术人员,可以方便的创建跨数据库操作。
SQLite3中的数据类型
Sqlite3支持的数据类型 包含在嵌入式系统开发过程中经常要使用的SQLite数据库所支持的所有的数据类型。
自己整理封装的sqlite3适配任何数据类型的记录集接口C代码,并含BLOB型的二进制数据的读写接口。sqlite3的库请自行下载。也包含测试用例。
sqlite3是比较小巧的数据引擎。对常用的数据类型大家应该比较熟悉。本文档专门针对date数据类型进行介绍。
1.3. Java数据类型与SQLite数据类型映射表 Java数据类型 SQLite数据类型 int、Integer、byte、Byte、short、Short、long、Long、Boolean、boolean INTEGER float、Float、double、Double REAL Date DATE ...
Android的SQLite中DateTime类型数据的存取问题
里面有:sqlite3使用简介,sqlite3中的数据类型 ,sqlite3.h,sqlite3.dll,sqlite3.lib
网上大多关于SQLITE3数据文件的加密与解密都是欲言由止,近期因要开发关于SQLITE3数据库类型的软件,做了一下研究。用D7写了这样一个工具。支持SQLITE3数据文件的批量加密与解密。工具自身不依赖SQLITE3.DLL动态库,...
DatatypesInSQLiteVersion3中文版SQLite3的数据类型.rar
主要介绍了详解SQLite中的数据类型,针对版本为SQLite3,讲解非常详细,超推荐!需要的朋友可以参考下
在Java下连接SQLite数据库 一、下载SQLite数据库的JDBC:http://www.zentus.com/sqlitejdbc/ 二、将下载到的包解压后得到jar包放到%JAVA_HOME%\lib下,并且将其添加到ClassPath系统环境变量中。一定要保证在类路径...
Sqlite3支持的数据类型日期函数Sqlite3函数.doc
里面对于Sqlite3数据库2进制数据进行了详细的解析和对于大部分常用Sqlite3的接口函数做了一定的总结。对于2进制数据eg图片的操作有实例源代码提供。
SQLite支持的数据类型详解[参考].pdf
DatatypesInSQLiteVersion3中文版SQLite3的数据类型.pdf