SQLite数据库
@嵌入式关系型数据库SQLite
特点
1.支持五种数据类型 null,INTEGER,REAL(浮点数),TEXT(字符串文本)和BLOB(二进制文本)数据类型,虽然
它只有五种,但实际上sqlite3也接手varcher(n),char(n),decimal(p,s)等数据类型,只不过在运算活保存时会转成
相应的五种数据类型。
2.最大的特点
可以保存任何类型的数据到任何字段中,无论这列声明的数据是什么类型。
例如:
可以在Integer类型的字段中存放字符串,或者在Boolean 中存放浮点数,或者在字符型字段中存放日期型值但有一种情况例外
例外:
定义为Integer primary key 的字段只能存储64位整数,当向这种字段保存除整数以外的数据时,将会产生错误,另外sqllite
在解析create table 语句时会忽略create table 语句中跟在字段后面的数据型信息
例如:
create table person(personid integer primary key autoicrement,name varchar(20))
它在保存表机构的时候会忽略掉varchar(20),这时我们保存多少个字符都可以
3sqlite可以解析大部分的标
相关文档:
SQLite支持的编译指令(pragma)
PRAGMA命令
是用于修改SQlite库或查询SQLite库内部数据(non-table)的特殊命令。PRAGMA 命令使用与其它SQLite命令(e.g. SELECT, INSERT)相同的接口,但在如下重要方面与其它命令不同:
在未来的SQLite版本中部分pragma可能被删除或添加,小心使用。
当使用未知的pragma语句时不产生报错 ......
1 TOP
这是一个大家经常问到的问题,例如在SQLSERVER中可以使用如下语句来取得记录集中的前十条记录:
SELECT TOP 10 * from [index] ORDER BY indexid DESC;
但是这条SQL语句在SQLite中是无法执行的,应该改为:
SELECT * from [index] ORDER BY indexid DESC limit 0,10;
其中limit 0,10表示从第0条记录开始,往后 ......
from within a C/C++ program (or a script using Tcl/Ruby/Perl/Python
bindings) you can get access to table and index names by doing a SELECT
on a special table named "SQLITE_MASTER
". Every SQLite database has an SQLITE_MASTER table that defines the schema for the database.
SQL code
S ......
sqlite数据库第三方java扩展包下载地址:http://www.zentus.com/sqlitejdbc/
有2个包,一个是nested(嵌入式的),一个是native(本地的)。
区别在于:nested 不需要额外的dll文件,但是速度慢。native需要一个额外的dll文件,速度很快。
1.使用nested包:sqlitejdbc-v037-nested.jar
java代码:
java 代码
packa ......
SQLite用触发器来替代外键约束 CREATE TABLE [Category] (
[Pkid] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
[CategoryName] NVARCHAR(32) NOT NULL,
[CategoryGuid] char(36) UNIQUE NOT NULL,
[CategoryDesc] nvarchar(256) NULL
) C ......