2022年嵌入式系统设计课程--SQLite数据库概述和使用 .pdf





《2022年嵌入式系统设计课程--SQLite数据库概述和使用 .pdf》由会员分享,可在线阅读,更多相关《2022年嵌入式系统设计课程--SQLite数据库概述和使用 .pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式系统设计课程技术报告(20 13 20 14第 2 学期)报告题目:SQLite 数据库概述和使用专业:自动化班级:姓名:学号:指导老师:电子信息与电气工程系2014年 4 月制名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 11 页 -摘要SQLite 是遵守 ACID2 的关系型数据库管理系统,它包含在一个相对小的 C 库中。它是 D.RichardHipp 建立的公有领域项目。不像常见的客户-服务器范例,SQLite 引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API 调用。这在消耗总量、延迟时间和整体
2、简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。SQLite 虽然很小巧,但是支持的 SQL 语句不会逊色于其他开源数据库。关键词:SQLite 概述SQLite 使用SQLite 发展趋势总结名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 11 页 -SQLite 数据库概述和使用1 SQLite 简介SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式
3、设备中,可能只需要几百K 的内存就够了。它能够支持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、C#、PHP、Java 等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite 第一个 Alpha 版本诞生于 2000年 5 月。至今已经有 14 个年头,SQLite 也迎来了一个版本SQLite 3已经发布。作为一个开源的嵌入式数据库产品,SQLite具有系统开销小,检索效率高的特性,嵌入式数据库无须独立运行的数据库引擎,它是由程序直接调用相应的API 去实
4、现对数据的存取操作。更直白的讲,嵌入式数据库是一种具备了基本数据库特性的数据文件。嵌入式数据库与其它数据库产品的区别是,前者是程序驱动式,而后者是引擎响应式。嵌入式数据库的一个很重要的特点是体积非常小,同时,很多嵌入式数据库在性能上也优于其它数据库,所以在高性能的应用上也常见嵌入式数据库的身影。SQLite 是 D 理查德希普开发出来的用一个小型 C 库实现的一种强有力的嵌入式关系数据库管理体制。SQLite是无数据类型的数据库。虽然在生成表结构的时候,要声明每个域的数据类型,但 SQLite 并不做任何检查。开发人员要靠自己的程序控制输入与读出数据的类型是正确的。这里有一个例外,就是当主键为
5、整型值时,如果要插入一个非整型值时会产生异常。另外,虽然在插入或读出数据的时候是不区分类型的,但在比较的时候,不同数据类型是有区别的。SQLite 提供了对 Transaction的支持。应用 Transaction即保证了数据的完整性,也会提高运行速度,因为多条语句一起提交给数据库的速度会比一条一条的提交方式更快。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 11 页 -1.1 SQLite 实现了完备的、可嵌入的、零配置的SQL 数据库引擎。它的特点包括:1、事务处理是原子的、一致的、独立的和持久的(ACID),即使在系统崩溃和掉电以后。2、零配置,即不需要设置和管理。3、
6、实现了绝大部分的SQL92 标准。4、一个单独的跨平台的磁盘文件存储一个完整的数据库。5、支持数据库文件大小至2TB,支持 G 级别的串和二进制大对象。6、代码量小,即小于30K 的 C 代码行和小于 250K 的代码空间(gcc 在i486 上)7、对于绝大多数普通操作来说,比流行的 C/S 模式的数据库引擎运行速度快。8、API 简单、易用。9、数据库文件在机器之间可自由共享。10、自包含:没有外部依赖性。11、字符串和 BLOG 的大小只受限于可用存储器容量。1.2 SQLite 的语言绑定可以从 C/C+程序中使用这个库,还可以获得对 Tcl 和一些其他脚本语言的绑定。在 CPAN 的
7、 DBD:SQLite 上有一个 Perl 的 DBI/DBD 模块,它不是到 SQLite的接口,而是包括整个SQLite 数据库引擎在其中并不需要任何额外的软件。还有一个 Python模块叫做 PySQLite。PHP从 PHP5.0开始包含了 SQLite,但是自5.1 版之后开始成为一个延伸函式库。SQLite 能与 PHP4一起工作但不包含在其中。Rails2.0.3将缺省的数据库配置改为了SQLite 3。1.3 SQLite 的数据类型首先你会接触到一个让你惊讶的名词:Typelessness(无类型)。对!SQLite 是无类型的.这意味着你可以保存任何类型的数据到你所想要保存
8、的任何表的任名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 11 页 -何列中,无论这列声明的数据类型是什么(只有在一种情况下不是,稍后解释)。对于 SQLite 来说对字段不指定类型是完全有效的。如:Create Table ex1(a,b,c);诚然 SQLite 允许忽略数据类型,但是仍然建议在你的Create Table语句中指定数据类型.因为数据类型对于你和其他的程序员交流,或者你准备换掉你的数据库引擎时能起到一个提示或帮助的作用。SQLite 支持常见的数据类型。1.4 SQLite 的客户端管理SQLite 亦可以作为桌面数据库使用,以下为第三方SQLite 的 G
9、UI 软件。例如,SQLiteMan,使用 QT 开发的一个 SQLite 客户端,支持多语言、跨平台。SQLiteMan SQLite Manager,以 火狐浏览器的扩展形式提供的SQLite 客户端。SQLite Database Browser,a graphical client to access SQLite databases SqlPro SQL Client,another graphical client to work with SQLite databases。2SQLite 的使用2.1 用 PHP操作 sqlite 数据库2.1.1 如何连接sqlite 数据库?
10、if($db=sqlite_open(mysqlitedb,0666,$sqliteerror)select*from sqlite_master;echo 数据库连接成功!;else die($sqliteerror);2.1.2如何列出数据库中所有的表?if($db=sqlite_open(mysqlitedb,0666,$sqliteerror)$result=sqlite_array_query($db,select*from sqlite_master;);foreach($result as$entry)名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 11 页 -ec
11、ho talbe name=.$entryname.n;echo sql=.$entrysql.n;echo -;sqlite_close($db);else die($sqliteerror);2.1.3 对 sqlite 数据库的查询,以及结果集的显示if($db=sqlite_open(mysqlitedb,0666,$sqliteerror)$result=sqlite_array_query($db,select name,email from user,SQLITE_ASSOC);echo user表查询结果:n;echo n name email n;foreach($resul
12、t as$entry)echo .$entryname.$entryemail.n;echo ;sqlite_close($db);else die($sqliteerror);2.1.4 数据库对象记录的增加、删除、修改sqlite_query($db,INSERT INTO user VALUES(user.$i.,user.$);sqlite_query($db,delete from user where user=user99);名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 11 页 -sqlite_query($db,UPDATE user SET email=li
13、lz where name=user1);2.2 用 JAVA 连接 SQLite 2.2.1 先下载 SQLite 数据库的 JDBC 这里给出一个中文站点的URL:(参见扩展阅读)将下载到的包解压后得到jar 包 sqlitejdbc-v033-nested.jar 放到%JAVA_HOME%lib 下,并且将其添加到classpath 系统环境变量中,我的 classpath系统环境变量现在为:.;%JAVA_HOME%lib;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar;%JAVA_HOME%libsqlitejdbc-v033-nested
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年嵌入式系统设计课程-SQLite数据库概述和使用 2022 嵌入式 系统 设计 课程 SQLite 数据库 概述 使用

限制150内