如何使用 sqlite3 访问 Android 手机的数据库

如何设置Android手机的sqlite3命令环境

http://www.cnblogs.com/linjiqin/archive/2011/11/28/2266619.html

SQLite3 为android所使用的轻量级数据库,小巧方便,用于管理android系统中的各种db文件。

SQLite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令。

本文档提供一个使用sqlite3命令的简要说明。 

启动sqlite3程序,仅仅需要敲入带有SQLite数据库名字的"sqlite3"命令即可。

如果文件不存在,则创建一个新的(数据库)文件。然后sqlite3程序将提示你输入SQL

敲入SQL语句(以分号“;”结束),

敲回车键之后,SQL语句就会执行。

例如,创建一张"tb11"表,你可以这样做:

C:\Users\Administrator>adb shell
# sqlite3
SQLite version 3.5.9
Enter ".help" for instructions
sqlite> create table tb_stu(id smallint,name varchar(10));
sqlite> insert into tb_stu values(1,'zhangsan');
sqlite> insert into tb_stu values (2,'lisi');
sqlite> .mode column
sqlite> .width 10
sqlite> select * from tb_stu;
1           zhangsan
2           lisi
sqlite>

 

 你可以通过敲你所用系统的文件结束符(通常是Ctrl + D)或者中断字符(通常是Ctrl + C),来终止sqlite3程序。

确定你在每个SQL语句结束敲入分号

sqlite3程序通过查找分号来决定一个SQL语句的结束。

如果你省略分号,sqlite3将给你一个连续的命令提示符并等你给当前的SQL命令添加更多的文字。

这个特点让你输入多行的多个SQL语句,例如:

sqlite> create table tb_stu(
create table tb_stu(
   ...> id smallint,
   ...> name varchar(10)
   ...> );
);

 

题外话:查询SQLITE_MASTER表  SQLite数据库的表数据结构被保存在一个名叫

"sqlite_master"的特殊的表中。你可以像查询其它表一样通过执行“SELECT”查询这个特殊的表。

sqlite> select * from sqlite_master;
table  tb_stu      tb_stu      2           CREATE TABLE tb_stu(id smallint,name varchar(10))
sqlite>

 

但你不能在sqlite_master表中执行诸如DROP TABLE, UPDATE, INSERT 或者DELETE命令。

sqlite_master表在你创建、删除和索引数据库时自动更新这个表。

你不能手工更改sqlite_master表。

TEMPORARY表的结构没有存储在"sqlite_master"表中,由于TEMPORARY表对应用是不可见的,而不是应用程序创建这个表。

TEMPORARY表结构被存储在另外一个名叫"sqlite_temp_master"的特定的表中。

"sqlite_temp_master"表是临时表自身。

sqlite3的特殊命令

大多数时候,sqlite3读入输入行,并把它们传递到SQLite库中去运行。

但是如果输入行以一个点(“.”)开始,那么这行将被sqlite3程序自己截取并解释。

这些“点命令”通常被用来改变查询输出的格式,或者执行鞭个预封包(预定义prepackaged)的查询语句。

你可以在任何时候输入“.help”,列出可用的点命令。例如

sqlite> .help 
.bail
ON|OFF Stop after hitting an error. Default OFF .databases List names and files of attached databases .dump ?TABLE? ... Dump the database in an SQL text format .echo ON|OFF Turn command echo on or off .exit Exit this program .explain ON|OFF Turn output mode suitable for EXPLAIN on or off. .header(s) ON|OFF Turn display of headers on or off .help Show this message .import FILE TABLE Import data from FILE into TABLE .indices TABLE Show names of all indices on TABLE .load FILE ?ENTRY? Load an extension library .mode MODE ?TABLE? Set output mode where MODE is one of: csv Comma-separated values column Left-aligned columns. (See .width) html HTML <table> code insert SQL insert statements for TABLE line One value per line list Values delimited by .separator string tabs Tab-separated values tcl TCL list elements .nullvalue STRING Print STRING in place of NULL values .output FILENAME Send output to FILENAME .output stdout Send output to the screen .prompt MAIN CONTINUE Replace the standard prompts .quit Exit this program .read FILENAME Execute SQL in FILENAME .schema ?TABLE? Show the CREATE statements .separator STRING Change separator used by output mode and .import .show Show the current values for various settings .tables ?PATTERN? List names of tables matching a LIKE pattern .timeout MS Try opening locked tables for MS milliseconds .width NUM NUM ... Set column widths for "column" mode
sqlite
>

 

改变输出格式 
sqlite3程序可以以八种不同的格式显示一个查询的结果:

“列表”,"行", "列", "制表","插入", "csv", "html" 和"tcl"。

你可以用".mode"点命令在这些输出格式之间切换。              

默认的输出格式是“列表”。

在列表模式下,每条查询结果记录被写在一行中并且每列之间以一个字符串分割符隔开。

默认的分隔符是一个管道符号(“|”)。

列表符号在当你输出查询结果到另外一个符加处理的程序(如AWK)中去是尤为有用。

sqlite> .mode list
sqlite> select * from tb_stu;
1|zhangsan
2|lisi
sqlite>

你可以用“.separator”点命令来改变分界符。

例如,为了把分割符改为一个逗号和一个空格,你可以这样做:

sqlite> .separator ''
sqlite> select * from tb_stu;
1   zhangsan
2   lisi
sqlite>

sqlite> .separator ','
sqlite> select * from tb_stu;
1,zhangsan
2,lisi
sqlite>

 

在“line"模式下,每一个位于条记录中的列在它自己那行显示。

每行由列名、一个等号和列数据组成。

下一条记录以一个空行隔开。这是一个行模式输出的例子:

sqlite> .mode line
sqlite> select * from tb_stu;
   id = 1
 name = zhangsan

   id = 2
 name = lisi
sqlite>

 

在列模式下,每条记录在一个单独的行中以数据列对齐的方式显示。列如:

sqlite> .mode column
sqlite> select * from tb_stu;
1      zhangsan
2      lisi
sqlite>

 

在默认的情况下,每列至少10个字符宽。太宽的数据将被截取。

你可以用“.width”命令来调整列宽。如下所示:

--每一列列宽都为10
sqlite> .width 10
sqlite> select * from tb_stu;
1           zhangsan
2           lisi
sqlite>
--设置第一列宽为12第二列宽为6。其它的列宽不变
sqlite> .width 12 6
sqlite> select * from tb_stu;
1           zhangsan
2           lisi
sqlite>

 

上面例子中".width"命令设置第一列宽为12第二列宽为6。其它的列宽不变。

你可以指定与你查询结果需要的列数一样多的“.width”参数。

如果你指定一列宽为0,那么这个列宽将自动以下面三个数字中的最大值做为列宽:

10、表头宽度和最宽的数据列的宽度。

这可以让列自动调整宽度。每列的默认设置为自动调整的0值。             

出现在输出开头两行的列标示可以用".header"点命令关闭。

在上面的例子中,列标示是打开的。可以用下面的方法关闭列标示:

sqlite> .header off
sqlite> select * from tb_stu;
1             zhang
2             lisi
sqlite>

另外一个有用的输出模式是"insert"。

在插入模式下,被子格式化为看起来像SQL INSERT语句的样式。

你可以用插入模式来产生文件(便于)以后用于不同数据库的输入。 

当指定插入模式时,你必须给定一个特定参数就是要插入的表名。例如:

sqlite> .mode insert tb_stu_temp
sqlite> select * from tb_stu;
INSERT INTO tb_stu_temp VALUES(1,'zhangsan');
INSERT INTO tb_stu_temp VALUES(2,'lisi');
sqlite>

 

最新的输出格式是“html”。

在这种模式下,sqlite3把查询的结果写做XHTML表。

开始的<TABLE>和结束的</TABLE>(标记)没有写出,但有<TR>、<TH>和<TD>等分界符。

html输出对CGI来说是相当有用地。 

把结果写到文件中 

默认情况下,sqlte3把结果送到标准输出。

你可以用“.output”命令改变它。

只须把输出文件名做为.output命令的输出参数然后所有后续查询结果将被写到那个文件中。

用“.output stdout”再一次改为标准输出。例如:

sqlite> .separator | 
sqlite> .output tb_stu_temp.txt
sqlite> select * from tb_stu; 
sqlite> .exit 
# cat tb_stu_temp.txt hello
|10 goodbye|20

 

 

查询数据库结构 

sqlite3程序提供几个有用的用于查询数据库结构的快捷命令。

这些不是不可以用别的方式来实现。这些命令仅仅是一个快捷方式而已。 

例如,为了查看数据库的所有表,你可以敲入“.tables”。         

.tables命令相似于设置列表模式然后执行接下来的查询

.databases 列出数据库文件名 

.tables ?PATTERN? 列出?PATTERN?匹配的表名 

.import FILE TABLE 将文件中的数据导入的文件中 

.dump ?TABLE? 生成形成数据库表的SQL脚本 

.output FILENAME 将输出导入到指定的文件中 

.output stdout 将输出打印到屏幕 

.mode MODE ?TABLE?     设置数据输出模式(csv,html,tcl… 

.nullvalue STRING 用指定的串代替输出的NULL串 

.read FILENAME 执行指定文件中的SQL语句 

.schema ?TABLE? 打印创建数据库表的SQL语句 

.separator STRING 用指定的字符串代替字段分隔符 

.show 打印所有SQLite环境变量的设置 

.quit 退出命令行接口

.databases 显示数据库信息(好像.database也可以)

.tables 显示所有表名(好像.table也可以)

.schema 查看所有表的数据结构;

.schema table_name 查看某表的数据结构

改变输出格式

.mode list|column|insert|line|tabs|tcl|csv
.separator "," 更改分界符号为,
.width 5 每列宽度为5

更改输出

.output file_name|stdout

数据类型

sqlite3对字段没有严格要求,字段可以存储任何类型数据,它会适时的自动转换,

当然,你也可以创建表的时候对数据类型进行定义。

sqlite3包含null、integer、real、text、blob等数据类型,

但实际上sqlite3也接收如下数据类型:

smallint 16位的整数。
interger 32位的整数。
decimal(p,s) 指定精度或对象能够控制的数字个数。
p:小数点左边和右边数字之和,不包括小数点。如 123.45,则 p=5,s=2。
s:小数点右边的位数或个数。
float 32位的浮点数。
double 64位的浮点数。
char(n) n长度的字符串,n不能超过254。
varchar(n) 长度不固定且其最大长度为n的字符串,n不能超过4000。
graphic(n) 和char(n)一样,不过其单位是两个字元double-bytes,n不能超过127。这个形态是为了支援两个字节长度的字体,例如中文字。
vargraphic(n) 可变长度且其最大长度为n的双字元字串,n不能超过2000
date 包含了 年份、月份、日期。
time 包含了 小时、分钟、秒。
timestamp 包含了 年、月、日、时、分、秒、千分之一秒。
 

数据操作

插入记录
insert into table_name values (field1, field2, field3...);

查询
select * from table_name;查看table_name表中所有记录;
select * from table_name where field1='xxxxx'; 查询符合指定条件的记录;

删除
drop table_name; 删除表;
drop index_name; 删除索引;

sqlite数据库存放在/data/data/package/目录下,我们可以通过cd命令进入/data/data/package/目录下进行数据库的操作: 

adb shell /* 进入linux命令环境 */
cd /data/data/com.ljq.activity/ /* 进入/data/data/com.ljq.activity/目录下 */
sqlite3 test.db /* 进入sqlite的操作环境,如果文件存在,则直接打开 */
create table tb_stu(id smallint,name varchar(20),pwd varchar(6)) /*新建一张tb_stu表 */
insert into tb_stu values (1, 'zhangsan', '123456');
insert into tb_stu values (2, 'lisi', '123456');

 

http://www.blogjava.net/anchor110/articles/335882.html

1.数据库、表的建立,记录的添加、查询、修改和删除

F:">sqlite3 database.db
sqlite> create table admin(username text,age integer);
sqlite> insert into admin values('kuang',25);
sqlite> select * from admin;
sqlite> update admin set username='kk',age=24 where username='kuang' and age=25;
sqlite> delete from admin where username='kk';

注:每条sql语句后必须以";"号结尾!

2.Sqlite系统命令

.bail ON|OFF           Stop after hitting an error.  Default OFF
.databases             List names and files of attached databases(查看目前挂的数据库)
.dump ?TABLE? ...      Dump the database in an SQL text format(以SQL格式输出表结构)
.echo ON|OFF           Turn command echo on or off
.exit                  Exit this program(退出程序)
.explain ON|OFF        Turn output mode suitable for EXPLAIN on or off.
.header(s) ON|OFF      Turn display of headers on or off
.help                  Show this message(显示帮助信息)
.import FILE TABLE     Import data from FILE into TABLE(把文件中的数据导入到表中,各字段用separator的值为分隔符)
.indices TABLE         Show names of all indices on TABLE
.load FILE ?ENTRY?     Load an extension library
.mode MODE ?TABLE?     Set output mode where MODE is one of:(输出格式)
                         csv      Comma-separated values(各字段以逗号为分隔符输出)
                         column   Left-aligned columns.  (See .width)(以.width设置的宽度显示各字段)
                         html     HTML <table> code(html表格格式输出)
                         insert   SQL insert statements for TABLE(以insert SQL语句形式输出)
                         line     One value per line(field = value的形式逐行输出)
                         list     Values delimited by .separator string(各字段以separator的值为分隔符输出)
                         tabs     Tab-separated values
                         tcl      TCL list elements
.nullvalue STRING      Print STRING in place of NULL values
.output FILENAME       Send output to FILENAME(设置把查询输出到文件,后面的输出结果都保存到文件中)
.output stdout         Send output to the screen(设置把查询结果输出到屏幕,默认)
.prompt MAIN CONTINUE  Replace the standard prompts(修改提示符)
.quit                  Exit this program(退出)
.read FILENAME         Execute SQL in FILENAME(执行文件中的SQL语句)
.schema ?TABLE?        Show the Create statements(以SQL格式输出表结构)
.separator STRING      Change separator used by output mode and .import(修改分隔符)
.show                  Show the current values for various settings(显示配置信息)
.tables ?PATTERN?      List names of tables matching a LIKE pattern(看看有创建了多少表)
.timeout MS            Try opening locked tables for MS milliseconds(超时时间,单位:毫秒)
.width NUM NUM ...     Set column widths for "column" mode(设置列宽) 

 

 sqlite3 为android所使用的轻量级数据库,小巧方便,用于管理android系统中的各种db文件,

在ubuntu中可以安装sqliteman 来查看android系统中的db文件,Framework中的接口位置:

/frameworks/base/core/java/android/database/sqlite/SQLiteDatabase.java

我使用的是ubuntu的minicom下的shell终端,以系统setting的database为例,目录为:

/data/data/com.android.providers.settings/databases/setting.db

cd 到databases目录下,打开数据库文件:

sqlite3 setting.db
SQLite version 3.7.11 2012-03-20 11:35:50 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite>

 

可以看到SQL版本,以及简单提示,使用SQL语句时需要以 “” 分号结尾!

sqlite3 *.db 打开数据库,如果存在就打开操作,如果不存在就创建,修改之后能够保存创建。

使用.help 查看帮助:

.backup ?DB? FILE      Backup DB (default "main") to FILE
.bail ON|OFF           Stop after hitting an error.  Default OFF
.databases             List names and files of attached databases
.dump ?TABLE? ...      Dump the database in an SQL text format
                         If TABLE specified, only dump tables matching
                         LIKE pattern TABLE.
.echo ON|OFF           Turn command echo on or off
.exit                  Exit this program
.explain ?ON|OFF?      Turn output mode suitable for EXPLAIN on or off.
                         With no args, it turns EXPLAIN on.
.header(s) ON|OFF      Turn display of headers on or off
.help                  Show this message
.import FILE TABLE     Import data from FILE into TABLE
.indices ?TABLE?       Show names of all indices
                         If TABLE specified, only show indices for tables
                         matching LIKE pattern TABLE.
.log FILE|off          Turn logging on or off.  FILE can be stderr/stdout
.mode MODE ?TABLE?     Set output mode where MODE is one of:
                         csv      Comma-separated values
                         column   Left-aligned columns.  (See .width)
                         html     HTML <table> code
                         insert   SQL insert statements for TABLE
                         line     One value per line
                         list     Values delimited by .separator string
                         tabs     Tab-separated values
                         tcl      TCL list elements
.nullvalue STRING      Print STRING in place of NULL values
.output FILENAME       Send output to FILENAME
.output stdout         Send output to the screen
.prompt MAIN CONTINUE  Replace the standard prompts
.quit                  Exit this program
.read FILENAME         Execute SQL in FILENAME
.restore ?DB? FILE     Restore content of DB (default "main") from FILE
.schema ?TABLE?        Show the CREATE statements
                         If TABLE specified, only show tables matching
                         LIKE pattern TABLE.
.separator STRING      Change separator used by output mode and .import
.show                  Show the current values for various settings
.stats ON|OFF          Turn stats on or off
.tables ?TABLE?        List names of tables
                         If TABLE specified, only list tables matching
                         LIKE pattern TABLE.
.timeout MS            Try opening locked tables for MS milliseconds
.vfsname ?AUX?         Print the name of the VFS stack
.width NUM1 NUM2 ...   Set column widths for "column" mode
.timer ON|OFF          Turn the CPU timer measurement on or off
sqlite> .help
.backup ?DB? FILE      Backup DB (default "main") to FILE
.bail ON|OFF           Stop after hitting an error.  Default OFF
.databases             List names and files of attached databases

sqlite> 
sqlite> 
sqlite> .help
.backup ?DB? FILE      Backup DB (default "main") to FILE
.bail ON|OFF           Stop after hitting an error.  Default OFF
.databases             List names and files of attached databases
.dump ?TABLE? ...      Dump the database in an SQL text format
                         If TABLE specified, only dump tables matching
                         LIKE pattern TABLE.
.echo ON|OFF           Turn command echo on or off
.exit                  Exit this program
.explain ?ON|OFF?      Turn output mode suitable for EXPLAIN on or off.
                         With no args, it turns EXPLAIN on.
.header(s) ON|OFF      Turn display of headers on or off
.help                  Show this message
.import FILE TABLE     Import data from FILE into TABLE
.indices ?TABLE?       Show names of all indices
                         If TABLE specified, only show indices for tables
                         matching LIKE pattern TABLE.
.log FILE|off          Turn logging on or off.  FILE can be stderr/stdout
.mode MODE ?TABLE?     Set output mode where MODE is one of:
                         csv      Comma-separated values
                         column   Left-aligned columns.  (See .width)
                         html     HTML <table> code
                         insert   SQL insert statements for TABLE
                         line     One value per line
                         list     Values delimited by .separator string
                         tabs     Tab-separated values
                         tcl      TCL list elements
.nullvalue STRING      Print STRING in place of NULL values
.output FILENAME       Send output to FILENAME
.output stdout         Send output to the screen
.prompt MAIN CONTINUE  Replace the standard prompts
.quit                  Exit this program
.read FILENAME         Execute SQL in FILENAME
.restore ?DB? FILE     Restore content of DB (default "main") from FILE
.schema ?TABLE?        Show the CREATE statements
                         If TABLE specified, only show tables matching
                         LIKE pattern TABLE.
.separator STRING      Change separator used by output mode and .import
.show                  Show the current values for various settings
.stats ON|OFF          Turn stats on or off
.tables ?TABLE?        List names of tables
                         If TABLE specified, only list tables matching
                         LIKE pattern TABLE.
.timeout MS            Try opening locked tables for MS milliseconds
.vfsname ?AUX?         Print the name of the VFS stack
.width NUM1 NUM2 ...   Set column widths for "column" mode
.timer ON|OFF          Turn the CPU timer measurement on or off

 

可以看到所支持的命令,其中常用的:

.database 显示数据库信息;包含当前数据库的位置
.tables 或者 .table 显示表名称 没有表则不显示
.schema 命令可以查看创建数据对象时的SQL命令;
.mode csv|column|insert|line|list|tabs|tcl 改变输出格式
默认情况,使用 select * from system 查看system表的全部数据:

sqlite> select * from system;
1|volume_music|15
2|volume_ring|5
3|volume_system|7
4|volume_voice|4
5|volume_alarm|6
6|volume_notification|5
7|volume_bluetooth_sco|7
... 

 

 可以看到是列表的形式显示出来的,而且ID name value 都是以 “ | ” 分隔开来,分割符号由 

.separator "X" 来定义,X即为分割符!

使用 .mode culumn 之后:

sqlite> .mode column
sqlite> select * from system;
1           volume_music  15        
2           volume_ring   5         
3           volume_syste  7         
4           volume_voice  4         
5           volume_alarm  6         
6           volume_notif  5         
7           volume_bluet  7  

 

 其它类似,都只是为了 改变输出的格式而已。

1.创建指令:

sqlite> .schema system
CREATE TABLE system (_id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT UNIQUE ON CONFLICT REPLACE,value TEXT);
CREATE INDEX systemIndex1 ON system (name);

 

创建的时候指定参数和属性,这里有三个,并且自增,关于数据类型:

NULL: 这个值为空值
INTEGER: 值被标识为整数,依据值的大小可以依次被存储为1,2,3,4,5,6,7,8个字节
REAL: 所有值都是浮动的数值,被存储为8字节的IEEE浮动标记序号.
TEXT: 文本. 值为文本字符串,使用数据库编码存储(TUTF-8, UTF-16BE or UTF-16-LE).
BLOB: 值是BLOB数据,如何输入就如何存储,不改变格式.

2.插入数据:

sqlite> .mode insert
sqlite> select * from system;
INSERT INTO table VALUES(1,'volume_music','15');
INSERT INTO table VALUES(2,'volume_ring','5');
INSERT INTO table VALUES(3,'volume_system','7');
INSERT INTO table VALUES(4,'volume_voice','4');
INSERT INTO table VALUES(5,'volume_alarm','6');
INSERT INTO table VALUES(6,'volume_notification','5');
INSERT INTO table VALUES(7,'volume_bluetooth_sco','7');

 

 如我要在system表里面插入一条数据:

insert into system values('45','sqlite','jscese');

 

 

这里插入数据要跟创建的时候数量要对应,不然会报:

Error: table table_name has * columns but * values were supplied

3.查询指定数据:

sqlite> select * from system where name='sqlite';
INSERT INTO table VALUES(45,'sqlite','jscese');

 

 根据表类型值来筛选查询,这里表的属性有 _id ,name,value ,可在创建命令中看到! 

4.删除数据:

delete from system where value='jscese';

 

  删除整个表:drop table table_name 

5.更新表数据:

45|sqlite|jscese
sqlite> update system set name='sqlite3' where value='jscese';
sqlite> select * from system where value='jscese';
45|sqlite3|jscese

 

 

6.操作问题:

在使用SQL指令之后没有加 分号就 enter,会进入输入模式,这个时候再补上 一个 ; 分号即可:

sqlite> select * from system
   ...> ;

 

 

我直接在minicom下使用 sqlite 无法识别 上下左右方向键,以及 回退键!

出现 ^[[A ^H 这样的乱码,

网上别人给出的,我没试过~http://ljhzzyx.blog.163.com/blog/static/3838031220102595026789/

本机终端adb shell 是可以识别 回退键的

一般退出sqlite3 使用 .quit

实在退不出 ...> 模式 就使用 ctrl+D 强退!
 

出处:http://blog.csdn.net/jscese/article/details/40016701

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android中的SQLite数据库是一种轻量级的数据库,它可以在Android应用程序中存储和检索数据。SQLite数据库使用SQL语言来管理数据,可以在Android应用程序中创建、读取、更新和删除数据。使用SQLite数据库可以使应用程序更加高效和可靠,因为它可以在本地存储数据,而不需要访问网络。在Android使用SQLite数据库需要使用SQLiteOpenHelper类来创建和管理数据库SQLiteOpenHelper类提供了一些方法来创建和升级数据库,以及插入、查询、更新和删除数据。在使用SQLite数据库时,需要注意数据类型、表结构、SQL语句等方面的问题,以确保数据的正确性和完整性。 ### 回答2: Android平台经常使用SQLite数据库来存储和管理本地数据。在本文中,我们将讨论如何在Android使用SQLite数据库。 首先,在Android使用SQLite数据库,我们需要创建一个SQLiteOpenHelper类。这个类用于创建和升级数据库。它包含了两个重要的方法:onCreate()和onUpgrade()。onCreate()方法将在首次创建数据库时被调用。onUpgrade()方法将在升级数据库时被调用。我们可以在这个类中定义表名,列名,数据库版本号和其他数据库相关信息。 接下来,在我们使用数据库前,需要实例化一个SQLiteOpenHelper类对象。这个对象用于打开或创建数据库。我们可以使用getReadableDatabase()和getWritableDatabase()方法来获取一个可读/写的数据库对象。 在获取数据库对象后,我们可以执行SQL命令来操作数据库。我们可以使用execSQL()方法来执行SQL命令。我们可以使用insert()、update()和delete()方法来执行增、删、改操作。我们可以使用rawQuery()方法来执行查询操作。 SQLiteOpenHelper类和SQLiteDatabase类并不是线程安全的。因此我们需要确保在使用时进行同步操作。我们可以使用synchronized关键字来达到同步效果。 在Android中,许多第三方的开源框架,如OrmLite、GreenDao和Realm等,提供了ORM(对象关系映射)的功能,使得数据库的操作更加简单和便捷。 总的来说,在Android使用SQLite数据库可以轻松地存储和管理本地数据。SQLiteOpenHelper和SQLiteDatabase提供了丰富的API来操作数据库。ORM框架为我们提供了更加简便的数据库操作方式。因此,掌握AndroidSQLite数据库使用非常重要。 ### 回答3: Android SQLite数据库Android开发中最常用的数据库之一,它是一个基于文件的嵌入式关系数据库管理系统。SQLite在设计时考虑到了资源占用和运行效率,所以非常适合在移动设备上使用。下面将详细介绍如何使用Android SQLite数据库。 1. 创建数据库 首先需要创建一个SQLite数据库,通过SQLiteOpenHelper类来创建,传入的参数主要是数据库版本号和数据库名称。在SQLiteOpenHelper的子类中重写onCreate方法来创建表格和一些初始化操作。 2. 执行SQL语句 在SQLiteOpenHelper的子类中重写onUpgrade方法来执行升级操作,可以通过执行ALTER TABLE语句来修改表格结构,并通过DROP TABLE语句删除表格。除此之外,在应用中也可以通过SQLiteDataBase对象的execSQL方法来执行SQL语句,如插入、删除或修改数据等。 3. 增删改查操作 增加(insert):通过SQLiteDataBase对象的insert方法来实现,在方法中传入表名和map对象,map对象中存储数据的键值对。 删除(delete):同样通过SQLiteDataBase对象的delete方法来实现,传入表名和删除条件。 修改(update):也是通过SQLiteDataBase对象的update方法来实现,同时传入修改的数据及条件。 查询(query):同样通过SQLiteDataBase对象的query方法来实现,传入要查询的表名、查询的列、查询条件等参数即可。 4. 事务操作 SQlite数据库支持事务操作,可以在一组操作中,只要有一个操作出现问题,就可以将之前的操作全部回滚,以保证数据的完整性和一致性。 以上就是android-sqlite数据库使用方法,当然还有很多细节需要注意,例如:表格的设计、SQL语句的优化等。熟练掌握SQLite使用,可以帮助开发者更好地管理应用数据,提高应用性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值