创建数据库与完成数据添删改查(一)
创建数据库
SQLite数据库
在Android平台上,集成了一个嵌入式关系型数据库-SQLite数据类型:
null
integer
real(浮点数字)
text(字符串文本)
blob(二进制对象)
在SQLite3中也接受varchar(n) 、char(n)、decimal(p, s) 等类型
但运算或保存时会转成对应的五种数据类型
SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么。
如:在Integer类型的字段中存放字符串
在布尔型字段中存放浮点数
在字符型字段中存放日期型
但有一种情况例外: integer primary key的字段只能存储64位整数,当向这种字段保存除整数以外的数据时,将会产生错误
在编写 create table 语句时,可以省略跟在字段名称后面的数据类型信息
如下面语句你可以省略name字段的类型信息:
<span style="white-space:pre"> </span>create table person(
personid integer primary key autoincrement,
name varchar(20)
)
查询语句:
select * from 表名 where 条件子句 group by 分组字句 having...order by 排序子句
获取添加记录后自增长的id值:select last_insert_rowid()
分页sql与mysql类似,下面sql语句获取5条记录,跳过前面3条记录
<span style="white-space:pre"> </span>select * from account limit 5 offset 3
或者
<span style="white-space:pre"> </span>select * from account limit 3,5
插入语句:
insert into 表名(字段列表) values(值列表)
如:
<span style="white-space:pre"> </span>insert into person(name,age) values('dan',20)
更新语句:
update 表名 set 字段名=值 where 条件子句
如:
<span style="white-space:pre"> </span>update person set name="guang" where id=2
删除语句:
delete from 表名 where 条件子句
如:
<span style="white-space:pre"> </span>delete from person where id=10
创建数据库
<span style="white-space:pre"> </span>package com.example.dao;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBOpenHelper extends SQLiteOpenHelper {
public DBOpenHelper(Context context) {
//super(context, 数据库名称, 游标工厂, 数据库的版本号);
//游标工厂为null代表使用游标默认的工厂
super(context, "Person_1.db", null, 1);
//这个SQLite.db文件会自动的存放在 <包>/databases/
}
/**
* 是在数据库每一次被创建的时候调用的
*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table person(personid integer primary key autoincrement, name varchar(20), phone varchar(12) null)");
}
/**
*数据库的版本号发生变更时调用
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("alter table person add amount integer");
}
}
在junit测试类里调用 :
public void testCreateDB() throws Exception{
DBOpenHelper dbOpenHelper = new DBOpenHelper(getContext());
dbOpenHelper.getWritableDatabase();
}
执行就产生一个db文件,就可以在File Explorer 视图中的data/data/<包名>/databases/ 目录下找到,也就可以pull file出来,后用SQLite Expert工具打开这个文件,也就可以看到数据结果
注意:当pull file不出来时,可以用sdk自带的工具adb导出这个文件,代码如下:
>adb pull /data/data/<包名>/databases/文件名.db 要导出的目录
如:
F:\androidadt\adt-bundle-windows-x86_64-20140702\sdk\platform-tools>adb pull /data/data/com.example.sqlite/databases/SQLite_1.db D:\Android_SQLite_db
当然重启eclipse也是可以的
这样就简单的创建了一个数据库,名为db文件的名Person,而且也创建了一个表为person