SQLite简介
SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入 式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java、C++、.Net等,还有ODBC接口,同样比起 Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。
SQLite特点
- 轻量级
- 不需要”安装”
- 单一文件
- 跨平台/可移植性
- 弱类型的字段
- 开源
SQLite数据类型
一般数据采用的固定的静态数据类型,而SQLite采用的是动态数据类型,会根据存入值自动判断。SQLite具有以下五种常用的数据类型:
NULL: 这个值为空值
VARCHAR(n):长度不固定且其最大长度为 n 的字串,n不能超过 4000。
CHAR(n):长度固定为n的字串,n不能超过 254。
INTEGER: 值被标识为整数,依据值的大小可以依次被存储为1,2,3,4,5,6,7,8.
REAL: 所有值都是浮动的数值,被存储为8字节的IEEE浮动标记序号.
TEXT: 值为文本字符串,使用数据库编码存储(TUTF-8, UTF-16BE or UTF-16-LE).
BLOB: 值是BLOB数据块,以输入的数据格式进行存储。如何输入就如何存储,不改 变格式。
DATA :包含了 年份、月份、日期。
TIME: 包含了 小时、分钟、秒。
SQLite操作
1、创建数据库
在Android 中使用SQLiteDatabase的静态方法openOrCreateDatabase(String path,SQLiteDatabae.CursorFactory factory)打开或者创建一个数据库。它会自动去检测是否存在这个数据库,如果存在则打开,不存在则创建一个数据库;创建成功则返回一个SQLiteDatabase对象,否则抛出异常FileNotFoundException。
db=SQLiteDatabase.openOrCreateDatabase("/data/data/com.lingdududu.db/stu.db",null);
我这里主要采用执行sql语句来对数据库进行“增删查改”操作;
2、创建表
private void createTable(SQLiteDatabase db){
//创建表SQL语句
String stu_table="create table usertable(id integer primary key autoincrement,name text,age text)";
//执行SQL语句
db.execSQL(stu_table);
}
以上创建了一个这样的表:
_id | name | age |
---|---|---|
3、插入数据
private void insert(SQLiteDatabase db){
//执行SQL语句
db.execSQL("insert into usertable(name, age) values(?,?)", new Object[]{"张三", 20});
}
4、删除数据
public void del(SQLiteDatabase db){
db.execSQL("DELETE FROM usertable WHERE id = 1");
}
查找数据还有很多形式,这里就不一一赘述了。
5、查找数据
public void query(SQLiteDatabase db){
db.execSQL("SELECT * FROM usertable WHERE id = 1");
}
6、更新数据
public void update(SQLiteDatabase db){
db.execSQL("UPDATE usertable set name = ?,age = ? WHERE id = 1",new Object[]{"张三","20"});
}