您的位置:首页 > 数据库

创建数据库与完成数据添删改查(一)

2015-10-18 17:16 323 查看

创建数据库与完成数据添删改查(一)

创建数据库

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: