Download presentation
Presentation is loading. Please wait.
1
主编:钟元生 赵圣鲁
2
第八章 使用工具管理SQLite数据库
3
本讲内容 SQLite使用入门 了解SQLite SQLite优点 创建SQLite数据库--bkt Contents
4
本节开言 我们知道如何从数组中获取数据并将数据显示到相应的控件中去。从本章开始我们将引入本地数据库SQLite,将学校表School和地区表Area中的数据保存在SQLite中,然后从SQLite取值并显示到控件中。本章主要是告诉大家如何使用工具管理SQLite数据库,其创建的数据库表如图所示,再将准备好的学校数据和地区数据导入到SQLite数据中。 Contents
5
8.1 了解SQLite SQLite是一款轻量级、跨平台的关系型数据库。既然号称关系型数据库,那它就支持多数SQL92标准(比如视图、触发器、事务等),这里我们就不一一细说了。它的运算速度非常快,并且占用资源很少,通常只需要几百KB的内存就可以了,因而特别适合在移动设备上使用。Android系统是内置了数据库的,SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎。它支持大多数的SQL92标准,并且可以在所有主要的操作系统上运行。 SQLite由以下几个部分组成:SQL编译器、内核、后端以及附件。SQLite通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展SQLite的内核变得更加方便。所有SQL语句都被编译成易读的、可以在SQLite虚拟机中执行的程序集。SQLite支持NULL、INTEGER、REAL、TEXT和BLOB数据类型,分别代表空值、整型值、浮点值、字符串文本、二进制对象。SQLite不仅支持标准的SQL语法,还遵循了数据库的ACID事务,所以只要你以前使用过其他的关系型数据库,就可以很快地上手SQLite。而SQLite又比一般的数据库要简单地多,它甚至不用设置用户名和密码就可以使用。Android正是把这个功能极为强大的数据库嵌入到了系统当中,使得本地持久化的功能有了一次质的飞跃。 Contents
6
8.2 SQLite优点 轻量级:先说它的第一个特色:轻量级。想必SQLite的作者很看重这个特性,连它的Logo都是用的“羽毛”,来显摆它的轻飘飘。SQLite和C/S模式的数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器。使用SQLite一般只需要带上它的一个动态库,就可以享受它的全部功能。而且那个动态库的尺寸也挺小,以版本3.6.11为例,Windows下487KB、Linux下347KB。 绿色软件:SQLite的另外一个特点是绿色:它的核心引擎本身不依赖第三方的软件,使用它也不需要“安装”。所以在部署的时候能够省去不少麻烦。 单一文件:所谓的“单一文件”,就是数据库中所有的信息(比如表、视图、触发器、等)都包含在一个文件内。这个文件可以copy到其它目录或其它机器上,也照用不误。 跨平台、可移植性:如果仅支持主流操作系统,那就算不上优点了。除了主流操作系统,SQLite还支持了很多冷门的操作系统。我个人比较感兴趣的是它对很多嵌入式系统(比如Android、Windows Mobile、Symbin、Palm、VxWorks等)的支持。 内存数据库(in-memory database):目前市场上内存越来越便宜,很多普通PC都开始以GB为单位来衡量内存(服务器就更甭提了)。这时候,SQLite的内存数据库特性就越发显得好用。SQLite的API不区分当前操作的数据库是在内存还是在文件(对于存储介质是透明的)。所以如果你觉得磁盘I/O有可能成为瓶颈的话,可以考虑切换为内存方式。切换的时候,操作SQLite的代码基本不用大改,只要在开始时把文件Load到内存,结束时把内存的数据库Dump回文件就OK了。 Contents
7
8.3 SQLite使用入门 8.3.1 安装使用SQLite Contents 然后选择“环境变量”
将解压后的文件夹目录加入到“Path”值后面(注意是文件夹目录,例如我本机的目录是H:\sqlite-dll-win64-x ) SQLite的官方下载地址为 在“系统变量”中找到“Path”,双击进入编辑页面 接下来我们需要把“sqlite”加入到path环境变量中(加入环境变量是为了更加方便地使用sqlite),右键“我的电脑”,选择“属性”,再选择“高级系统设置”。 下载完后就直接解压到磁盘上,可以看到解压后有两个文件,一个是“sqlite.def”,另一个是“sqlite.dll”, 这里我们选择下载名称为“sqlite-dll-win64-x zip”的版本。 然后打开“命令提示符”界面(“WIN+R”键),输入“sqlite3”,如果弹出一下消息,就表示成功了。 Contents
8
8.3 SQLite使用入门 8.3.2 SQLite常用操作 Contents 1. 新建一个数据库文件
命令行进入到要创建“db”文件的文件夹位置。 使用命令创建数据库文件:sqlite3所要创建的“db”文件名称 使用命令查看已附加的数据库文件:databases Contents
9
8.3 SQLite使用入门 8.3.2 SQLite常用操作 Contents 2. 打开已建立的数据库文件
命令行进入到要打开的“db”文件的文件夹位置使用命令行打开已建立的“db”文件: sqlite3 文件名称(注意:假如文件名称不存在,则会新建一个新的“db”文件) 3. 查看帮助命令 命令行直接输入sqlite3,进去到sqlite3命令行界面输入.help 查看常用命令 Contents
10
8.4 创建SQLite数据库--bkt Contents
Shell脚本虽然提供了很强大的功能,但是使用起来还是不够方便,幸运的是,SQLite有很多开源而且优秀的DBMS! 本章我们将告诉大家如何使用管理工具保存本地数据并建立SQLite数据库,当你在项目中需要使用这些数据的时候,直接将SQLite数据库引用过来便可。这里我们将使用一款叫做“Navicat for SQLite”的软件,以它为例为大家讲解一下。官网地址为 navicat-for-sqlite,这个软件是绿色免安装版,工具的下载和安装较简单可以自行完成(解压直接运行就可以了) Contents
11
8.4 创建SQLite数据库--bkt 8.4.1 创建数据库 Contents
首先,打开“Navicat for SQLite”软件 然后,点击左上角“连接”属性,出现“新建连接”的界面,“连接名”这一栏我们输入“bkt”,类型选择“新建SQLite3”,需要注意的是数据库文件一定不要写错或者不写,不然会报“新建连接出现I/O error 105”的错误。 这一栏中主要是提醒我们新建的SQLite3文件需要保存在什么地方,我们选择桌面就行,然后点击“确定”按钮。 Contents
12
8.4 创建SQLite数据库--bkt 8.4.2 创建地区表(area) Contents
之后在软件的左上方可以看到出现了“bkt”的新连接,我们依次双击“bkt”及“main”,看到在“main”下面出现了“表”,但是目前还是空的,这里我们先创建地区表area。 右键点击“表”,选择“新建表”属性。 在表的结构里输入“名”、“类型”、“长度”等属性 然后,点击“保存”按钮,输入表名“area”,然后点击确定再在左边刷新“表”便可 Contents
13
8.4 创建SQLite数据库--bkt 8.4.3 插入地区表(area)数据 Contents
在查询编辑器页面输入插入数据的SQL语句,并依次执行(选中单个的SQL语句右键运行已选择的) 建立了新表的结构及属性之后,我们在表里插入项目需要用到的数据,这里因为只有四条记录,你可以选择直接在表里输入然后保存便可 然后我们刷新地区表area,可以看到数据已经插入到表里了 当然我们也可以使用SQL语句向表里插入数据。点击软件上方的“查询”按钮,然后点击“新建查询” Contents
14
8.4 创建SQLite数据库--bkt 8.4.4 创建学校表(school) Contents
然后根据数据分析得出的表结构依次建好各属性(“名”、“类型”、“长度”等) 接着点击“保存”按钮,也可以使用快捷键“Ctrl+S”保存,并输入表名“school”再点击“确定” Contents
15
8.4 创建SQLite数据库--bkt 8.4.5 导入学校表(school)数据 Contents
进入栏位对应页面,“目标栏位”与“源栏位”要一一对应,因为我们在Excel表里的列名和数据库school表的字段名是相同的,所以好区分。当名称命名不同时一定要注意对应正确。再点击“下一步” 进入选择导入模式页面,这里我们选择“添加:添加记录到目标表”,然后点击“下一步” 点击“开始”按钮进行导入,完成导入向导 进入选择数据源页面,“导入从”这一栏中选择文件保存地址,这里是保存在桌面上,然后在“表”下面选择“Sheet1”,点击“下一步” 进入导入数据格式页面,选择“Excel文件”,然后点击“下一步” 然后刷新学校表school,可以看到在表中已经有了新添加进去的数据 进入选择目标表页面,这里的目标表就是SQLite数据库里的school表,所以不用更改,点击“下一步”便可 进入为源定义一些附加的选项页面,这里一般都采用默认值,直接点击“下一步”便可 先将需要用到的数据整理到Excel表中 至此,我们就已经完整的创建了SQLite本地数据库bkt,它的名称是“bkt.sqlite” 然后在软件里右键点击“表”下面的“school”,选择“导入向导”属性 Contents
16
教学视频 Code08
17
谢 谢!
Similar presentations