Sqlite.net 2.0使用笔记
2009-04-08 23:04 宝宝合凤凰 阅读(443) 评论(0) 收藏 举报Sqlite.net 2.0使用笔记(三)
在进行数据库Sql操作之前,首先有个问题需要说明,就是Sqlite的数据类型,和其他的数据库不同,Sqlite支持的数据类型有他自己的特色,这个特色有时会被认为是一个潜在的缺点,但是这个问题并不在我们的讨论范围之内。
大多数的数据库在数据类型上都有严格的限制,在建立表的时候,每一列都必须制定一个数据类型,只有符合该数据类型的数据可以被保存在这一列当中。而在Sqlite 2.X中,数据类型这个属性只属于数据本生,而不和数据被存在哪一列有关,也就是说数据的类型并不受数据列限制(有一个例外:INTEGER PRIMARY KEY,该列只能存整型数据)。
但是当Sqlite进入到3.0版本的时候,这个问题似乎又有了新的答案,Sqlite的开发者开始限制这种无类型的使用,在3.0版本当中,每一列开始拥有自己的类型,并且在数据存入该列的时候,数据库会试图把数据的类型向该类型转换,然后以转换之后的类型存储。当然,如果转换被认为是不可行的,Sqlite仍然会存储这个数据,就像他的前任版本一样。
举个例子,如果你企图向一个INTEGER类型的列中插入一个字符串,Sqlite会检查这个字符串是否有整型数据的特征, 如果有而且可以被数据库所识别,那么该字符串会被转换成整型再保存,如果不行,则还是作为整型存储。
总的来说,所有存在Sqlite 3.0版本当中的数据都拥有以下之一的数据类型:
空(NULL):该值为空
整型(INTEGEER):有符号整数,按大小被存储成1,2,3,4,6或8字节。
实数(REAL):浮点数,以8字节指数形式存储。
文本(TEXT):字符串,以数据库编码方式存储(UTF-8, UTF-16BE 或者 UTF-16-LE)。
BLOB:BLOB数据不做任何转换,以输入形式存储。
ps: 在关系数据库中,CLOB和BLOB类型被用来存放大对象。BOLB表示二进制大对象,这种数据类型通过用来保存图片,图象,视频等。CLOB表示字符大对象,能够存放大量基于字符的数据。
对应的,对于数据列,同样有以下的数据类型:
大多数的数据库在数据类型上都有严格的限制,在建立表的时候,每一列都必须制定一个数据类型,只有符合该数据类型的数据可以被保存在这一列当中。而在Sqlite 2.X中,数据类型这个属性只属于数据本生,而不和数据被存在哪一列有关,也就是说数据的类型并不受数据列限制(有一个例外:INTEGER PRIMARY KEY,该列只能存整型数据)。
但是当Sqlite进入到3.0版本的时候,这个问题似乎又有了新的答案,Sqlite的开发者开始限制这种无类型的使用,在3.0版本当中,每一列开始拥有自己的类型,并且在数据存入该列的时候,数据库会试图把数据的类型向该类型转换,然后以转换之后的类型存储。当然,如果转换被认为是不可行的,Sqlite仍然会存储这个数据,就像他的前任版本一样。
举个例子,如果你企图向一个INTEGER类型的列中插入一个字符串,Sqlite会检查这个字符串是否有整型数据的特征, 如果有而且可以被数据库所识别,那么该字符串会被转换成整型再保存,如果不行,则还是作为整型存储。
总的来说,所有存在Sqlite 3.0版本当中的数据都拥有以下之一的数据类型:
空(NULL):该值为空
整型(INTEGEER):有符号整数,按大小被存储成1,2,3,4,6或8字节。
实数(REAL):浮点数,以8字节指数形式存储。
文本(TEXT):字符串,以数据库编码方式存储(UTF-8, UTF-16BE 或者 UTF-16-LE)。
BLOB:BLOB数据不做任何转换,以输入形式存储。
ps: 在关系数据库中,CLOB和BLOB类型被用来存放大对象。BOLB表示二进制大对象,这种数据类型通过用来保存图片,图象,视频等。CLOB表示字符大对象,能够存放大量基于字符的数据。
对应的,对于数据列,同样有以下的数据类型:
- TEXT
- NUMERIC
- INTEGER
- REAL
- NONE
- TEXT 将数据向文本进行转换,对应的数据类型为NULL,TEXT 或 BLOB
- NUMERIC 将数据向数字进行转换,对应的数据类型可能为所有的五类数据,当试图存入文本 时将执行向整型或浮点类型的转换(视具体的数值而定),转换若不可行,则保留文本类型存储,NULL或BLOB不做变化
- INTEGER 将数据向整型转换,类似于NUMERIC,不同的是没有浮点标志的浮点数将转换为整型保存
- REAL 将数据向浮点数类型转换,类似于NUMERIC,不同的是整数将转换为浮点数保存
- NULL 不做任何转换的数据列类型
星期一, 九月 25, 2006
Sqlite.net 2.0使用笔记(一)
以下内容使用Visual C# 2005 和 Sqlite.net 2.0 1.0.35.1版
(2.0指支持的.net协议,1.0.35.1指该软件)
下载安装好Sqlite.net 2.0 之后(安装的时候会选择支持的IDE,如下图,默认没有选中,记得选上),在visual stdio 2005里面就可以使用他了,

在Server Explorer里面右击Data Connections,

即出现下面的对话框:

注意Data Source里面的内容,如果不是Sqlite相关,则点选change,选中SQLite Database File

点击OK回到创建数据库对话框,其他需要更改的选项是选择New创建一个数据库和更改Encoding,我选中了Unicode 16以便更好的支持中文(我并不确定Unicode 8对中文的支持情况,我只确定Unicode 16对中文支持良好,如果你了解相关内容,请留言)。
点击OK之后就可以使用SQLite作为你的后台数据库了。
(2.0指支持的.net协议,1.0.35.1指该软件)
下载安装好Sqlite.net 2.0 之后(安装的时候会选择支持的IDE,如下图,默认没有选中,记得选上),在visual stdio 2005里面就可以使用他了,

在Server Explorer里面右击Data Connections,

即出现下面的对话框:

注意Data Source里面的内容,如果不是Sqlite相关,则点选change,选中SQLite Database File

点击OK回到创建数据库对话框,其他需要更改的选项是选择New创建一个数据库和更改Encoding,我选中了Unicode 16以便更好的支持中文(我并不确定Unicode 8对中文的支持情况,我只确定Unicode 16对中文支持良好,如果你了解相关内容,请留言)。
点击OK之后就可以使用SQLite作为你的后台数据库了。
订阅: 帖子 (Atom) 
 
                     
                    
                 
                    
                 
 



 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号