- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9.4用标准SQL语名操作Sqlite.doc
《移动应用开发技术》第9章
第9章 数据库SQLite
9.1 SQLite介绍
自从商业应用程序出现以后,数据库就成为应用程序的主要组成部分之一。数据库管理系统在变得越来越关键的同时,也变得越来越庞大,需要消耗很多的系统资源,增加了管理的复杂性。随着软件应用程序的逐渐模块化,一种新型的数据库比现有的大型的、复杂的传统数据库管理系统更能适应这种变化,这就是嵌入式数据库。嵌入式数据库直接在应用程序中运行,占用的资源非常少。
本章要讲的SQLite就是嵌入式系统中很常见的数据库,而且所有的数据都存储在一个文件中。SQLite是一种轻量级的数据库,有简洁的SQL访问界面和相当快的访问速度,而且相对于其他数据库来说,占用的内存空间较少。在Android平台上,SQLite数据库可以用来储存应用程序中使用到的数据,还可以通过定义Content Provider等方式来让其他应用程序也能取用其中的??据。在默认情况下,每个应用所创建的数据库都是私有的,其名字也是唯一的,各应用间无法相互访问对方的数据库。Android平台提供了完整的SQLite数据库接口,各应用生成的数据库存储在“/data/data/包名/database”目录下。需要注意的是,为保证数据库检索的效率,并保持较小的体积,数据库中不应该保存较大的文件。
在SQLite中,我们可以使用SQL语句来执行查询(SELECT)、插入(INSERT)、修改(UPDATE)、删除(DELETE)、定义数据格式(CREATE TABLE)等操作。要了解更多关于SQL语言的详细内容,请参考专门的书籍。
9.2用adb shell创建数据库
ADB(Android Debug Bridge)是Android下的一个用于管理手机或手机虚拟机的多功能工具。在模拟器打开的情况下,打开命令行,找到安装Android SDK的文件夹,并进入“tools”目录,在“tools”目录中可以找到“adb”这个命令行工具。输入“adb shell”命令后,进入“/data/data”目录。
进入“/data/data”目录之后,可以使用“ls”命令来查看模拟器中所有应用程序的数据列表。找到应用程序的包名称后,使用“cd”命令可进入某个具体的项目的数据目录,如图9-1所示。
图9-1 用ls显示文件夹
“ls”命令类似于我们之前在Windows命令行里经常用到的“dir”命令。
在SQLite数据库中,数据是以数据表的形式保存的。数据表的概念如同表格软件(比如microsoft Excel)一样,以列(Column)和行(Row)来构成一个个表格。数据表中保存了数据记录和数据记录之间的关系。例如,通讯录就以“姓名”、“电话”、“地址”等表示了数据记录之间的关系,每笔输入都要记录这三种关系的数据。
在“sqlite”提示符号下,我们通过输入以下命令来创建一个数据表:
sqlite create table notes(_id integer primary key,note text not null,created integer)
sqlite
执行上面的命令后,我们创建了一个notes表,表里面有_id、note、created三个字段。
SQLite命令和Java代码一样,大小写代表不同的符号,而且要以分号(;)结尾。在SQLite的互动模式中,如果没有输入“;”号就按下“Enter”键,在互动模式的下一行就会出现“…”提示符号,表示这行语句(命令)还没有结束。
我们用“create table”命令创建数据表,内容用括号包起来,最后要以分号(;)结尾,这样才算完成了一条命令语句。
在上面的代码中,当属性设为“_id integer primary key”时,“_id”成为一个自动计数的整数字段。每当新增加一笔数据时,SQLite会自动按流水的方式为“_id”这个字段编号。
在SQLite中,可以将各字段定义成“TEXT”(文字)、“INTEGER”(整数)等属性。属性后可以加上“NOT NULL”之类的约束,以表示此字段一定要填入内容。但是在存储时,SQLite一律以“字符串”(String)类型来存储数据。所以,如果不够细心,可能会将文字(TEXT)数据存储到标注为整数(INTEGER)的字段内。为了避免这种情况发生,使用SQLite时,需要注意对数据格式进行验证。
为了验证之前的数据表是否创建成功,可以用“.databases”命令列出目录下所有的SQLite数据库列表,用“.table”命令列出所有的数据表,用“.schema”命令显示出创建数据表的建表语句的内容。如果要退出互动模式,可以使用“.exit”命令。另外,如果想知道SQLite的其他命令,可以在互动模式下输入“.help”命令。
文档评论(0)