android数据存储之Sqlite(一)
SQLite学习笔记
1、 Sqlite简介
SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入 式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java、C++、.Net等,还有 ODBC接口,同样比起 Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。
特点:轻量级、不需要"安装"、单一文件 、跨平台/可移植性、弱类型的字段、开源
2、sqlite的数据类型
(1)一般数据采用的固定的静态数据类型,而sqlite采用的是动态的数据类型,会根据存入值自动判断,sqlite具有以下的五种常见数据类型:
Null:空值
Integer:带符号的整型,具体取决于存入的数值的范围大小
Real:浮点数字,存储8个byte的浮点数
Text:字符串文本
Blob:二进制对象
3、利用命令的方式操作sqlite数据库
需要配置一下android的环境变量,http://www.cnblogs.com/bluestorm/archive/2012/09/27/2706420.html
(1) 打开cmd,进入到f盘,执行sqlite3 mydb.db,创建一个mydb.db文件
(2) 创建一个t_student表,并插入一条数据
Sqlite中如果主键是integer类型的,但是没有设置为自增,那么再插入一条没有主键的数据时,它会查找到表中最大主键的值然后+1作为这个新插入数据的主键(sqlite中主键自增使用autoincrement关键字),如下:
(3) 更新t_student表中sid为2的数据
(4) 删除t_student表中sid为2的数据
(5) order by语句进行排序,使用desc进行倒序排序
(6) grouop by语句进行分组,根据sname进行分组
(7) having语句对分组后的结果进行条件过滤,如下判断分组后数据个数大于1
(8) limit语句分段取得数据,多用于分页操作, limit有两个参数,第一个是要取的数据的下标,从0开始,第二个参数是取得数据的个数, 如下取得t_student表中的第三条和第四条数据
以上涉及到的sql语句:
create table t_student(sid integer primary key autoincrement,sname varchar(20)); insert into t_student(sid,sname) values(1,'zhangsan'); select sid,sname from t_student; update t_student set sname='lisi' where sid = 2; delete from t_student where sid = 2; select sid,sname from t_student order by sid desc; select sid,sname,count(sname) from t_student group by sname ; select sid,sname from t_student group by sname having count(sname) > 1; select sid,sname from t_student limit 0,2;