第9讲数据库WebSQL-课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第9讲数据库WebSQL-课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 WebSQL 课件
- 资源描述:
-
1、第第9讲讲 数据库数据库Web SQL传统传统WebWeb应用程序将大多数据都存储在应用程序将大多数据都存储在WebWeb服务服务器端的数据库中,本地存储的能力很弱。器端的数据库中,本地存储的能力很弱。而频繁地访问数据库服务器获取数据,不但会而频繁地访问数据库服务器获取数据,不但会增加网络流量,而且影响应用程序的效率。增加网络流量,而且影响应用程序的效率。HTML5HTML5的本地存储能力得到了很大的提高,不但的本地存储能力得到了很大的提高,不但可以像传统可以像传统WebWeb应用程序那样将数据存储在文件应用程序那样将数据存储在文件中,而且还支持本地的轻型数据库。中,而且还支持本地的轻型数据库
2、。本章知识点本章知识点1 1 webSQLwebSQL Database API Database API 2 2 IndexedDBIndexedDB 1 webSQL Database API p1 1 判断浏览器是否支持判断浏览器是否支持webSQLwebSQL Database API Database API p2 2 新建数据库新建数据库 p3 3 执行执行SQLSQL语句语句 1 判断浏览器是否支持判断浏览器是否支持webSQL Database API p使用使用windows.windows.openDatabaseopenDatabase属性可以打开本数据库属性可以打开本数
3、据库,并返回连接句柄。如果该句柄为,并返回连接句柄。如果该句柄为nullnull、undefinedundefined则说明不支持使用则说明不支持使用webSQLwebSQL Database API Database API操作本地数操作本地数据库,反之则支持。下面定义一个据库,反之则支持。下面定义一个openDatabaseopenDatabase()()函数,用于打开本地数据库:函数,用于打开本地数据库:function getOpenDatabase()try /如果支持则返回数据库连接句柄 if(!window.openDatabase)return window.openDatab
4、ase;else return undefined;catch(e)return undefined;【例例 9】p在网页中定义一个按钮,单击此按钮时,会检测浏在网页中定义一个按钮,单击此按钮时,会检测浏览器是否支持览器是否支持webSQLwebSQL Database API Database API。定义按钮的代。定义按钮的代码如下:码如下:检测浏览器是否支持检测浏览器是否支持webSQL Database API【例例 9】p单击按钮单击按钮checkcheck将调用将调用check()check()函数。函数。check()check()函数的函数的定义代码如下:定义代码如下:func
5、tion check()if(getOpenDatabase()=undefined)alert(您的浏览器不支持您的浏览器不支持webSQL Database API。);else alert(您的浏览器支持您的浏览器支持webSQL Database API。);2 新建数据库新建数据库 pwebSQLwebSQL Database API Database API在中并不包括专门用在中并不包括专门用于创建数据库的于创建数据库的APIAPI,但是以指定的数据库,但是以指定的数据库名为参数调用名为参数调用openDatabaseopenDatabase()()函数时,如果函数时,如果自定的数
6、据库名不存在,则会自动创建它。自定的数据库名不存在,则会自动创建它。p带参数的带参数的openDatabaseopenDatabase()()函数的语法如下:函数的语法如下:数据库连接句柄数据库连接句柄=openDatabase(数据数据库名库名,版本号版本号,数据库显示名称数据库显示名称,估计容量估计容量);【例例 10】p创建数据库创建数据库mydatabasemydatabase的代码如下:的代码如下:function createDB()if(window.openDatabase=undefined)alert(您的浏览器不支持您的浏览器不支持webSQL Database API。
7、);else var dbs=window.openDatabase(mydatabase,v1.0,Save data DB,100);if(dbs)alert(创建成功。创建成功。);else alert(打开数据库失败。打开数据库失败。);3 执行执行SQL语句语句 p使用使用transaction()transaction()函数可以执行函数可以执行SQLSQL语句,语法如语句,语法如下:下:数据库连接句柄数据库连接句柄.transaction(function(tx)tx.executeSql(CREATE TABLE IF NOT EXISTS LOGS(id unique,log
8、););ptransaction()transaction()函数的参数是一个回调函数,使用函数的参数是一个回调函数,使用回调函数的参数回调函数的参数txtx来调用来调用executeSqlexecuteSql()()函数可以执函数可以执行行SQLSQL语句。下面分别介绍几个常用的语句。下面分别介绍几个常用的SQLSQL语句。语句。1创建表语句创建表语句CREATE TABLE p表是数据库中最重要的逻辑对象,是存储数据表是数据库中最重要的逻辑对象,是存储数据的主要对象。在设计数据库结构时,很重要的的主要对象。在设计数据库结构时,很重要的工作就是设计表的结构。关系型数据库的表由工作就是设计表的
9、结构。关系型数据库的表由行和列组成。行和列组成。CREATE TABLE语句用于创建表语句用于创建表 CREATE TABLE IF NOT EXISTS 表名表名(列名列名1数据类型数据类型 字段属性字段属性,列名列名2数据类型数据类型 字段属性字段属性,列名列名n数据类型数据类型 字段属性字段属性)【例例 11】function createTable()if(window.openDatabase=undefined)alert(您的浏览器不支持您的浏览器不支持webSQL Database API。);else var dbs=window.openDatabase(mydatabas
10、e,v1.0,Save data DB,100);if(dbs)dbs.transaction(function(tx)tx.executeSql(CREATE TABLE IF NOT EXISTS t(id UNIQUE,name););else alert(打开数据库失败。打开数据库失败。);DROP TABLE语句语句 p可以使用可以使用DROP TABLEDROP TABLE语句删除表,语法语句删除表,语法如下:如下:DROP TABLE 表名表名p在在WebSQLWebSQL中执行中执行DROP TABLEDROP TABLE语句的方法语句的方法与执行与执行CREATE TABLE
11、CREATE TABLE语句的方法相似。语句的方法相似。2插入数据表语句插入数据表语句INSERT pINSERTINSERT语句用于向表中插入数据,基本语句用于向表中插入数据,基本使用方法如下:使用方法如下:INSERT INTO 表名表名(列名列名1,列名列名2,列名列名n)VALUES(值值1,值值2,值值n)【例例 12】function insert()if(window.openDatabase=undefined)alert(您的浏览器不支持您的浏览器不支持webSQL Database API。);else var dbs=window.openDatabase(mydatab
12、ase,v1.0,Save data DB,100);if(dbs)dbs.transaction(function(tx)tx.executeSql(INSERT INTO t(id,name)VALUES(1,lee););else alert(打开数据库失败。打开数据库失败。);UPDATE语句语句 p可以通过可以通过UPDATEUPDATE语句修改表中的数据。语句修改表中的数据。UPDATEUPDATE语句的基本使用方法如下所示:语句的基本使用方法如下所示:UPDATE 表名表名 SET 列名列名1=值值1,列名列名2=值值2,列名列名n=值值nWHERE 更新条件表达式更新条件表达式
13、DELETE语句语句 DELETE FROM 表名表名WHERE 删除条件删除条件表达式表达式3查询数据表语句查询数据表语句SELECT SELECT子句子句FROM 子句子句 WHERE 子句子句 各子句的主要功能说明如下。各子句的主要功能说明如下。SELECTSELECT子句:指定查询结果集的列组成,列子句:指定查询结果集的列组成,列表中的列可以来自一个或多个表;表中的列可以来自一个或多个表;FROMFROM子句:指定要查询的一个或多个表;子句:指定要查询的一个或多个表;WHEREWHERE子句:指定查询的条件;子句:指定查询的条件;transaction()函数函数 p使用使用trans
14、action()transaction()函数执行函数执行SELECTSELECT语句语句的语法如下:的语法如下:db.transaction(function(t)t.executeSql(SELECT语句语句,function(t,r),function(t,e);t.executeSql()函数有函数有4个参数个参数 p第一个参数是要执行的第一个参数是要执行的SELECTSELECT语句;语句;p第第2 2个参数是要传递的参数,比如查询条个参数是要传递的参数,比如查询条件,如果没有参数,则使用件,如果没有参数,则使用;p第第3 3个参数是处理查询结果集的回调函数个参数是处理查询结果集的回
15、调函数,参数,参数r r为结果集;为结果集;p第第4 4个参数是处理错误的回调函数,参数个参数是处理错误的回调函数,参数e e为错误对象。为错误对象。【例例 13】function select()if(window.openDatabase=undefined)alert(您的浏览器不支持您的浏览器不支持webSQL Database API。);elsevar dbs=window.openDatabase(mydatabase,v1.0,Save data DB,100);if(dbs)dbs.transaction(function(tx)tx.executeSql(SELECT*FR
16、OM t,function(tx,results)alert(results.rows.length);if(results&results.rows&0 results.rows.length)var text=;接上接上for(var i=0;i results.rows.length;i+)text+=results.rows.item(i).id+results.rows.item(i).name+;document.getElementById(result).innerHTML=text;,null););else alert(打开数据库失败。打开数据库失败。);定义一个定义一个“
17、查询表查询表t”按钮按钮 查询表查询表t定义一个定义一个标签,用于显示查询结果标签,用于显示查询结果 显示表显示表t的内容的内容 总结总结p我们在数据库中处理大量结构化数据,我们在数据库中处理大量结构化数据,html5html5引入引入Web SQL DatabaseWeb SQL Database概念。概念。p它使用它使用 SQL SQL 来操纵客户端数据库的来操纵客户端数据库的 API API,这些,这些 API API 是异步的,规范中使用的方是异步的,规范中使用的方言是言是SQLliteSQLlite。p悲剧正是产生于此,悲剧正是产生于此,Web SQL DatabaseWeb SQL
18、 Database规范页面有着这样的声明。规范页面有着这样的声明。p翻译一下:翻译一下:Web SQL DatabaseWeb SQL Database曾经在曾经在W3CW3C推荐规范上推荐规范上,但规范工作已经停止了。,但规范工作已经停止了。p目前已经陷入了一个僵局:目前的所有实现都是基目前已经陷入了一个僵局:目前的所有实现都是基于同一个于同一个SQLSQL后端(后端(SQLiteSQLite),但是我们需要更多的),但是我们需要更多的独立实现来完成标准化。独立实现来完成标准化。p也就是说这是一个废弃的标准了,虽然部分浏览器也就是说这是一个废弃的标准了,虽然部分浏览器已经实现,但。已经实现,
19、但。p但是我们学一下也没什么坏处,而且能和现但是我们学一下也没什么坏处,而且能和现在在W3CW3C力推的力推的IndexedDBIndexedDB做比较。做比较。p不过不过ChromeChrome的控制台真心好用啊,神马的控制台真心好用啊,神马cookiecookie、Local StorageLocal Storage、Session StorageSession Storage、Web SQLWeb SQL、IndexedDBIndexedDB、Application CacheApplication Cache等等html5html5新增内容看的一清二楚,免去了很多新增内容看的一清二楚,
20、免去了很多调试代码工作。调试代码工作。pWeb SQL DatabaseWeb SQL Database实际上已经被废弃,而实际上已经被废弃,而HTML5HTML5的支持的本地存储实际上变成了的支持的本地存储实际上变成了Web StorageWeb Storage(Local StorageLocal Storage和和Session StorageSession Storage)与)与IndexedDBIndexedDB。pWeb StorageWeb Storage使用简单字符串键值对在本地存储使用简单字符串键值对在本地存储数据,方便灵活,但是对于大量结构化数据存数据,方便灵活,但是对于大
21、量结构化数据存储力不从心。储力不从心。pIndexedDBIndexedDB是为了能够在客户端存储大量的结构是为了能够在客户端存储大量的结构化数据,并且使用索引高效检索的化数据,并且使用索引高效检索的APIAPI。2 IndexedDB p1 1 数据库的相关概念数据库的相关概念 p2 2 判断浏览器是否支持判断浏览器是否支持IndexedDBIndexedDB p3 3 创建和打开数据库创建和打开数据库 p4 4 创建对象存储空间创建对象存储空间ObjectStoreObjectStore p5 5 创建索引创建索引 p6 6 事务事务 p7 7 游标游标 1 数据库的相关概念数据库的相关概
22、念 p1 1数据库数据库 p2 2数据库管理系统数据库管理系统 p3 3数据库系统数据库系统 p4 4NoSQLNoSQL数据库数据库 1数据库数据库 p数据库(数据库(DatabaseDatabase,DBDB),简单地讲就),简单地讲就是存放数据的仓库。不过,数据库不是是存放数据的仓库。不过,数据库不是数据的简单堆积,而是以一定的方式保数据的简单堆积,而是以一定的方式保存在计算机存储设备上的相互关联的数存在计算机存储设备上的相互关联的数据的集合。也就是说,数据库中的数据据的集合。也就是说,数据库中的数据并不是相互孤立的,数据和数据之间是并不是相互孤立的,数据和数据之间是有关联的。有关联的。
23、2数据库管理系统数据库管理系统 p数据库管理系统(数据库管理系统(Database Management Database Management SystemSystem,DBMSDBMS)是一种系统软件,介于)是一种系统软件,介于应用程序和操作系统之间,用于帮助我应用程序和操作系统之间,用于帮助我们管理输入到计算机中的大量数据。如们管理输入到计算机中的大量数据。如用于创建数据库,向数据库中存储数据用于创建数据库,向数据库中存储数据,修改数据库中的数据,从数据库中提,修改数据库中的数据,从数据库中提取信息等。取信息等。一个数据库管理系统应具备如下功能一个数据库管理系统应具备如下功能 p(1 1
24、)数据定义功能。可以定义数据库的结构,定义数)数据定义功能。可以定义数据库的结构,定义数据库中数据之间的联系,定义对数据库中数据的各种据库中数据之间的联系,定义对数据库中数据的各种约束等。约束等。p(2 2)数据操纵功能:可以实现对数据库中数据的添加)数据操纵功能:可以实现对数据库中数据的添加、删除、修改,可以对数据库进行备份和恢复等。、删除、修改,可以对数据库进行备份和恢复等。p(3 3)数据查询功能:可以以各种方式提供灵活的查询)数据查询功能:可以以各种方式提供灵活的查询功能,使用户可以方便地使用数据库中的数据。功能,使用户可以方便地使用数据库中的数据。p(4 4)数据控制功能:可以完成对
25、数据库中数据的安全)数据控制功能:可以完成对数据库中数据的安全性控制、完整性控制、多用户环境下的并发控制等多性控制、完整性控制、多用户环境下的并发控制等多方面的控制。方面的控制。p(5 5)数据库通信功能:在分布式数据库或提供网络操)数据库通信功能:在分布式数据库或提供网络操作功能的数据库中还必须提供数据库的通信功能。作功能的数据库中还必须提供数据库的通信功能。数据库管理系统在计算机系统中的地位数据库管理系统在计算机系统中的地位 硬件 操 系 统 作 D B M S 应 用 开 发 工 具 应 用 系 统 3数据库系统数据库系统 p数据库系统(数据库系统(Database SystemData
展开阅读全文