




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android/OPhone 开发完全讲义连载(10):Sqlite数据库 本文为原创,如需转载,请注明作者和出处,谢谢! 现在终于到讲解数据库的时间了。数据库也是Android存储方案的核心。在Android系统中使用了Sqlite数据库。Sqlite是非常轻量的数据库。从Sqlite的标志是一根羽毛就可以看出Sqlite的目标就是无论是过去、现在,还是将来,Sqlite都将以轻量级数据库的姿态出现。Sqlite虽然轻量,但在执行某些简单的SQL语句时甚至比MySQL和Postgresql还快。由于很多读者是第一次接触Sqlite数据库,因此,在介绍如何在Android中使用Sqlite之前,先在本节简单介绍一下如何在PC上建立Sqlite数据库,以及Sqlite数据库的一些特殊方面(由于本书的目的不是介绍Sqlite数据库,因此,与其他数据库类似的部分(如insert、update等)本书将不再介绍。没有掌握这些知识的读者可以参阅其他关于数据库方面的书籍。6.4.1 Sqlite数据库管理工具 在学习一种新技术之前,首先要做的是在自己的计算机上安装可以操作这种技术的工具。当然,这也非常符合一句成语:功欲善其事,必先利其器。虽然使用好的工具并不能使自己更好地掌握这种技术,但却能使我们的工作效率大大提升。言归正传,现在先看看官方为我们提供了什么工具来操作Sqlite数据库。进入官方的下载页面,网址如下:/download.html 在下载页面中找到Windows版的二进制下载包。在作者写作本书时,Sqlite的最新版本是Sqlite3.6.2。因此,要下载的文件是Sqlite-3_6_20.zip。将这个zip文件解压,发现在解压目录中只有1个文件:sqlite3.exe。对,这个文件就是操作Sqlite数据库的工具(是不是很轻量?连工具都只有一个)。它是一个命令行程序,运行这个程序,进入操作界面,如图6.15所示。 在控制台中可以输入SQL语句或控制台命令。所有的SQL语句后面必须以分号(;)结尾。控制台命令必须以实心点(.)开头,例如,.help(显示帮助信息);.quit(退出控制台);.tables(显示当前数据库中所有表名)。虽然可以在Sqlite的控制台中输入SQL语句来操作数据库,但输入大量的命令会使工作量大大增加。因此,我们必须要使用所谓的“利器”来取代这个控制台程序。由于Sqlite提供了各种类型的程序接口,因此,可以管理Sqlite数据库的工具非常多,下面是几个比较常用的Sqlite管理工具。SQLite Database Browser/projects/sqlitebrowserSQLite Expert ProfessionalSqlite DevelopersqliteSpy/progDownload/SQLiteSpy-Download-107386.html作者在写作本书时使用了SQLiteExpert Professional,这也是作者推荐使用的Sqlite管理工具。该工具拥有大量的可视化功能,例如,建立数据库、建立表、SQL Builder等工具。图6.16是SQLite ExpertProfessional的主界面。6.4.2创建数据库和表 使用SQLite控制台工具(sqlite3.exe)建立数据库非常简单,只需要输入如下的命令就可以建立或打开数据库。sqlite3.exe test.db 如果数据库(test.db)存在,则打开该数据库,如果数据库不存在,则预建立test.db文件(这时并不生成test.db文件,直到在Sqlite控制台中执行与数据库组件(表、视图、触发器等)相关的命令或SQL语句才创建test.db文件。如果想使用sqlite.exe命令同时建立数据库和表,可以先建立一个sql.script文件(也可以是其他文件名),并在其中输入如下的SQL语句:create table table1 (id integerprimary key,age int,name text );create table table2(idinteger primary key,type_idinteger,name text); 然后执行如下的命令,就会在建立test.db文件的同时,在该test.db文件中建立table1和table2两个表。sqlite3.exe test.db sql.script在使用createtable语句创建表时还可以为每一个字段指定默认值,如下面的SQL语句所示:create table table1 (id integerprimary key,age int default 20,name text );create table table2(id integerprimary key,type_idinteger,name text default name1 );6.4.3模糊查询 Sqlite的模糊查询与其他数据库类似,都使用了like关键字和%通配符。不过Sqlite在处理中文时会遇到一些麻烦。例如,使用下面的SQL语句向table2插入了一条记录。insert into table2(id, type_id, name) values(1, 20,手机操作系统);在Sqlite控制台中使用如下的SQL查询是没有问题的。select * from table2 where name =手机操作系统;但如果使用下面的模糊查询语句,则无法查询到记录。select * from table2 where name like手机%;发生这种事情的原因是因为Sqlite控制台在保存中文时使用的编码格式是GB2312,而执行like操作时使用的是UTF-8。读者可以使用如下的命令来查看Sqlite控制台当前的编码格式。PRAGMA encoding;为了可以使用like模糊查询中文,作者建议使用6.4.1节介绍的SQLite Expert Professional来执行insert、update等SQL语句来编辑数据。在这个工具中会直接使用UTF-8来保存中文。6.4.4分页显示记录 分页是在Web应用中经常被提到的概念。基本原理是从数据库中获得查询结果的部分数据,然后显示在页面中。虽然本书并没有介绍Web程序的开发,但获得查询结果的部分数据仍然非常重要。Sqlite和MySQL相同,都使用了limit关键字来限制select语句返回的记录数。limit需要两个参数,第1个参数表示返回的子记录集在父记录集的开始位置(从0开始),第2个参数表示返回子记录集的记录数。第2个参数为可选值,如果不指定这个参数,会获得从起始位置开始往后的所有记录。例如,下面的select语句返回了table2表中从第11条记录开始的100条记录。select * from table2 limit 10 1006.4.5 事务 如果一次执行多条修改记录(insert、update等)的SQL语句,那么当某一条SQL语句执行失败时,就需要取消其他SQL语句对记录的修改。否则就会造成数据不一致的情况。而事务是解决这个问题的最佳方法。在Sqlite中可以使用BEGIN来开始一个事件,例如,下面的代码执行了两条SQL语句,如果第2条语句执行失败,那么第1条SQL语句执行的结果就会回滚,相当于没执行这条SQL语句。BEGIN;insert into table1(id, name) values(50,Android);insert i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 正常分娩护理查房范文
- 出租房安全培训讲稿课件
- 出渣车行车安全培训课件
- 出海应急避险安全培训课件
- 企业安全培训资格课件
- 出国安全培训讲话课件
- 出口押汇课件
- 舆情引导算法设计-洞察及研究
- 芯恩招聘笔试题库2025
- 2025新版本:试用期解除劳动合同的范本
- 部编人教版道德与法治4年级上册全册教学课件
- 物业管家服务方案
- 钢铁厂的安全教育
- DB11∕T500-2024城市道路城市家具设置与管理规范
- 锂电池pack生产线可行性报告
- 2025学年度第一学期政史地教研组工作计划
- 2024-2025学年广东省清远市高三(上)质检数学试卷(一)(含答案)
- 2025年高考作文素材积累之刘擎《西方现代思想讲义》大纲梳理
- DME糖尿病黄斑水肿
- DB1305∕T 45-2022 小麦品种冀麦325节水高产栽培技术规程(邢台市)
- 《中国传统文化课件》课件
评论
0/150
提交评论