1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > android SQLite数据库用法图文详解(附源码)

android SQLite数据库用法图文详解(附源码)

时间:2021-10-01 22:37:30

相关推荐

android SQLite数据库用法图文详解(附源码)

(转载请注明出处:/buptgshengod)

1.背景

SQLite是嵌入式设备使用的一种轻量型数据库。可以通过执行sql语句对数据库进行操作,android也为其提供了完善的函数接口支持。下面就来实现一个简单的数据库,可以实现查询以及插入等功能。

例图如下:

1-1 数据库app

如果你的手机已经root过,将手机连到pc端eclipse我们可以在DDMS中查看这个数据库文件。路径是data/data/app的包/databases就可一看到自己命名的*.db格式的数据库文件了

1-2 DDMS截图

要想在pc端查看这个数据库文件的内容,我们需要先将这个.db文件copy到电脑上,我是用的是linux系统,可以使用系统自带的sqlite3来查看数据库文件。

进入shell,执行下面命令,进入数据库

sqlite3 /home/CORPUSERS/28852262/Desktop/sec_db

1-3 进入数据库

以下为sqlite 在linux下的使用方法

1、安装sqlite3

ubuntu下安装sqlite3直接在终端运行命令:

#apt-getinstallsqlite3

查看版本信息:

#sqlite3-version

2、sqlite3常用命令

当前目录下建立或打开test.db数据库文件,并进入sqlite命令终端,以sqlite>前缀标识:

#sqlite3test.db

查看数据库文件信息命令(注意命令前带字符'.'):

sqlite>.database

查看所有表的创建语句:

sqlite>.schema

查看指定表的创建语句:

sqlite>.schematable_name

以sql语句的形式列出表内容:

sqlite>.dumptable_name

设置显示信息的分隔符:

sqlite>.separatorsymble

Example:设置显示信息以‘:’分隔

sqlite>.separator:

设置显示模式:

sqlite>.modemode_name

Example:默认为list,设置为column,其他模式可通过.help查看mode相关内容

sqlite>.modecolumn

输出帮助信息:

sqlite>.help

设置每一列的显示宽度:

sqlite>.widthwidth_value

Example:设置宽度为2

sqlite>.width2

列出当前显示格式的配置:

sqlite>.show

退出sqlite终端命令:

sqlite>.quit

sqlite>.exit

3、sqlite3指令

sql的指令格式:所有sql指令都是以分号(;)结尾,两个减号(--)则表示注释。

如:

sqlite>createstuden_table(Stu_nointergerPRIMARYKEY,NametextNOTNULL,IdintergerUNIQUE,AgeintergerCHECK(Age>6),SchooltextDEFAULT'xx小学);

该语句创建一个记录学生信息的数据表。

3.1sqlite3存储数据的类型

NULL:标识一个NULL值

INTERGER:整数类型

REAL:浮点数

TEXT:字符串

BLOB:二进制数

3.2sqlite3存储数据的约束条件

Sqlite常用约束条件如下:

PRIMARYKEY-主键:

1)主键的值必须唯一,用于标识每一条记录,如学生的学号

2)主键同时也是一个索引,通过主键查找记录速度较快

3)主键如果是整数类型,该列的值可以自动增长

NOTNULL-非空:

约束列记录不能为空,否则报错

UNIQUE-唯一:

除主键外,约束其他列的数据的值唯一

CHECK-条件检查:

约束该列的值必须符合条件才可存入

DEFAULT-默认值:

列数据中的值基本都是一样的,这样的字段列可设为默认值

3.3sqlite3常用指令

1)建立数据表

createtabletable_name(field1type1,field2type1,...);

table_name是要创建数据表名称,fieldx是数据表内字段名称,typex则是字段类型。

例,建立一个简单的学生信息表,它包含学号与姓名等学生信息:

createtablestudent_info(stu_nointergerprimarykey,nametext);

2)添加数据记录

insertintotable_name(field1,field2,...)values(val1,val2,...);

valx为需要存入字段的值。

例,往学生信息表添加数据:

Insertintostudent_info(stu_no,name)values(0001,alex);

3)修改数据记录

updatetable_namesetfield1=val1,field2=val2whereexpression;

where是sql语句中用于条件判断的命令,expression为判断表达式

例,修改学生信息表学号为0001的数据记录:

updatestudent_infosetstu_no=0001,name=hencewherestu_no=0001;

4)删除数据记录

deletefromtable_name[whereexpression];

不加判断条件则清空表所有数据记录。

例,删除学生信息表学号为0001的数据记录:

deletefromstudent_infowherestu_no=0001;

5)查询数据记录

select指令基本格式:

selectcolumnsfromtable_name[whereexpression];

a查询输出所有数据记录

select*fromtable_name;

b限制输出数据记录数量

select*fromtable_namelimitval;

c升序输出数据记录

select*fromtable_nameorderbyfieldasc;

d降序输出数据记录

select*fromtable_nameorderbyfielddesc;

e条件查询

select*fromtable_namewhereexpression;

select*fromtable_namewherefieldin('val1','val2','val3');

select*fromtable_namewherefieldbetweenval1andval2;

f查询记录数目

selectcount(*)fromtable_name;

g区分列数据

selectdistinctfieldfromtable_name;

有一些字段的值可能会重复出现,distinct去掉重复项,将列中各字段值单个列出。

6)建立索引

当说数据表存在大量记录,索引有助于加快查找数据表速度。

createindexindex_nameontable_name(field);

例,针对学生表stu_no字段,建立一个索引:

createindexstudent_indexonstudent_table(stu_no);

建立完成后,sqlite3在对该字段查询时,会自动使用该索引。

7)删除数据表或索引

droptabletable_name;

dropindexindex_name;

输入相应命令我们看到了对数据库的所有操作。

1-4 数据库操作

2.代码

代码分两部分,第一部分dbHelper,继承android提供的类SQLiteOpenHelper用来管理数据库。

第一部分

这个类的基本架构如下所示,包括建表,更新,命名等。此外我们如果要对数据库增添插入,查询,修改等功能的时候,也要写在这个类里。

public class dbhelp extends SQLiteOpenHelper{public dbhelp(Context context, String name, CursorFactory factory, int version) {super(context, name, factory, version);// TODO Auto-generated constructor stub}@Overridepublic void onCreate(SQLiteDatabase db) {// TODO Auto-generated method stub}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stub}}

第二部分

这个就是数据库的调用,首先生成一个dbHelper对象,因为我们要将数据库内容显示在listivew里,我们要建立一 个curse来连接数据库和适配器adapter,最后用listview输出这个adapter即可。

db=new dbHelper(MainActivity.this);myCursor=db.select();SimpleCursorAdapter adpater=new SimpleCursorAdapter(this, R.layout.test, myCursor,new String[]{dbHelper.FIELD_TITLE},new int[]{R.id.topTextView});lv.setAdapter(adpater);

3.最后提供下源码

点击下载

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。