在学习Android SQLite 存储方式这一章前,我从未接触过数据库的有关知识。所以啃书的过程对我来说是极其痛苦的。学了一些数据库的基本知识后,再来看书上的例子,觉得自己差不多能理解了。这篇文章写给和我一样未学习过数据库的童鞋,通过这篇文章,你能对数据库有个简单的了解,并能够上手SQLite的一些基本功能。
一.数据库中的基本概念
你可以把数据库看成是一个存储数据的仓库。一个数据库中有若干张表,数据就储存在表里。
来个例子~这是数据库中的一张表(一维表),表名为Users:
num name age edu email
1 Lily 36 博士 [email protected]
2 James 11 硕士 [email protected]
3 Bob 50 大专 [email protected]
4 Mary 11 本科 [email protected]
5 Tom 45 本科 [email protected]
数据库中还有一些基本概念,这是你不得不知道的:
字段:表中纵的一列为一个字段。如“年龄”。
记录:表中横的一行为一个记录。如“Lily”的相关信息。
值:表的一横行一纵行交叉处。如“Lily的年龄”,为36岁。
主键:主键是区分某条记录和其它记录的字段,由它来保证某条记录的唯一性。就像人的身份证,网卡的地址号码一样。它既不能为空,也不能重复出现。
二.简单的SQL语句
1.Select语句
语法:Select [Top(数值)] 字段列表 From 表 [Where 条件] [Order By 字段] [Group By 字段]
这就像一句English Sentence一样简单易懂~
Top是数据中“最。。。”几项,你可以选择性的获得某种属性最突出的数据,如“某次数学考试前十名”。
From后接数据来源表。
Where条件用来筛选满足条件的数据。
Order By 提供查询时排序的原则。
Group By提供分组的原则。
来几个例子~
//查询所有记录按姓名排序
Select * From Users By name ASC
//查找Lily的邮箱地址
Select Users.email From Users Where Users.name = "Lily"
2.Insert语句
语法: Insert Into 表 (字段1,字段2,。。。) Values (字段1 的值,字段2的值。。。)
这个就不解释了哈~来例子~
Insert Into Users (num,name,age,edu,email) Values ("6","Jessica",“25”,"硕士","[email protected]")
注意:
字符串字段两边加双引号。
插入的记录的主键一定要赋值!不能为空!
3.Delete语句
语法:Delete From 表 [Where条件]
如:
Delete From Users Where name = "Lily"
注意:
凡是符合Where条件的所有记录都会被删除。
若省略Where条件,将删除所有记录。
4.Update语句
语法:Update From 表 [Where条件] Set 字段1 = 字段值1,字段2 = 字段值2,。。。
如:
Update Users Set age ="35" Where num="1"
//所有人年龄增加一岁
Update Users Set age = age + 10
三.将数据库知识应用到SQLite中
首先,你必须了解Android中的一个接口:Cursor。
Cursor属于android.database类,是某一行数据的集合,相当于数据库中的一条记录。
它的常用方法如下:
继续举例:
//判断Cursor为空
if (cur.moveToFirst () ==false)
return;
//通过下标访问其中数据
int nameColumnIndex = cur.getGolumnIndex(Users.name);
String name = cur.getString(nameColumnIndex);
//循环Cursor取出所有数据
while (cur.moveToNext())
{
......
}
在实际应用中,Cursor常与Adapter搭配使用。适配器为Cursor与其数据来源提供了连接的桥梁。建议你看看API文档中的Cursor和CursorAdapter。
SQLite中的常用语句有query,execSQL,delete等,基本上与前面所说的SQL语句类似。由于它们需要参数较多,这里就不一一说明了。在文档中的android.database.sqlite.SQLiteDatebase这个类有详细的介绍。