SQLite简介
SQLite:是在android平台上集成的一种嵌入式关系数据库。Google为Andriod的较大的数据处理提供了
SQLite,他在数据存储、管理、维护等各方面都相当出色,功能也非常的强大。
SQLite数据类型
SQLite支持NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)、BLOG(二进制对象)五种数据类型
注:虽然支持的类型只有五种,但实际上sqlite也接受varchar(n)、char(n)、decimal(p,s)指定精度
或对象能够控制的数字个数等数据类型,只是在运算或保存时会转换成对应的五种数据类型。
SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么。
如:可以在integer字段中存放字符串。但是一种情况例外:定义为integer primary key的字段只能存放64
位整数。否则会出现错误。在创建表的时候,可以省略字段名称后面的数据类型,但是为了方便阅读,最好还
还是写上。
创建数据库
由于手机客户端无法手工在手机上创建sqlite数据库,因此,应用程序要具有手工创建数据库功能。
用到的工具类:SQLiteOpenHelper
"
" SQLiteOpenHelper是SQLiteDatabase的一个帮助类,用来管理数据库的创建和版本的更新。一般是建
立一个类继承它,并实现它的onCreate和onUpgrade方法。
其中有四个方法:
1.onCreate():是在数据库每一次创建的时候调用的;
2.onUpgrade(): version数据库文件的版本号改变的时候调用;
3.getWritableDatabase():创建或打开一个读写数据库;
4.getReadableDatabase():创建或打开一个只读数据库;
注:3跟4虽然都可以读取数据库数据,但是一般在读取数据库数据的时候选取4方法。因为如果调用3方法,当
数据库存储空间最大时,会出现异常;
SQLiteDatabase类较常用的方法
(返回值)方法名 | 方法描述 |
(int) delete(String table,String whereClause,String[] whereArgs) | 删除数据行的便捷方法 |
(long) insert(String table,String nullColumnHack,ContentValues values) | 添加数据行的便捷方法 |
(int) update(String table, ContentValues values, String whereClause, String[] whereArgs) | 更新数据行的便捷方法 |
(void) execSQL(String sql) | 执行一个SQL语句,可以是一个select或其他的sql语句 |
(void) close() | 关闭数据库 |
(Cursor) query(String table, String[] columns, String selection,String[] selectionArgs, String groupBy, String having, String orderBy, String limit) | 查询指定的数据表返回一个带游标的数据集 |
(Cursor) rawQuery(String sql, String[] selectionArgs) | 运行一个预置的SQL语句,返回带游标的数据集(与上面的语句最大的区别就是防止SQL注入) |
注:query个参数说明:table:表名称 ,colums:列名称数组 ,selection:条件子句,相当于where ,selectionArgs:条件语句的参数数组 ,groupBy:分组
,having:分组条件 ,orderBy:排序类 ,limit:分页查询的限制
SQLite的操作语句
1.查询语句
select * from 表名 where条件group by 分组 having…order by 排序
分页sql语句
select * from 表名 limit 5 offset 3, select * from 表名 limit 3,5
2.插入语句
insert into 表名(字段列表)values(值列表)
3.更新语句
update 表名 set 字段名=值 where 条件子句
4.删除语句
delete from 表名 where 条件子句
针对游标(Cursor)方法介绍
1.getCount():总记录条数
2.isFirst():判断是否第一条记录
3.isLast():判断是否最后一条记录
4.moveToFirst():移动到第一条记录
5.moveToLast():移动到最后一条记录
6.move(int offset):移动到指定的记录
7.moveToNext():移动到下一条记录
8.moveToPrevious():移动到上一条记录
9.getColumnIndex(String columnName):获得指定列索引的int类型值