《《数据库WebSQL》PPT课件》由会员分享,可在线阅读,更多相关《《数据库WebSQL》PPT课件(107页珍藏版)》请在金锄头文库上搜索。
1、第第9讲讲 数据库数据库Web SQL传统传统WebWeb应用程序将大多数据都存储在应用程序将大多数据都存储在WebWeb服务服务器端的数据库中,本地存储的能力很弱。器端的数据库中,本地存储的能力很弱。而频繁地访问数据库服务器获取数据,不但会而频繁地访问数据库服务器获取数据,不但会增加网络流量,而且影响应用程序的效率。增加网络流量,而且影响应用程序的效率。HTML5HTML5的本地存储能力得到了很大的提高,不但的本地存储能力得到了很大的提高,不但可以像传统可以像传统WebWeb应用程序那样将数据存储在文件应用程序那样将数据存储在文件中,而且还支持本地的轻型数据库。中,而且还支持本地的轻型数据库
2、。 本章知识点本章知识点1 webSQL Database API 1 webSQL Database API 2 IndexedDB 2 IndexedDB 1webSQLDatabaseAPI1webSQLDatabaseAPIp1 1 判断浏览器是否支持判断浏览器是否支持webSQL Database API webSQL Database API p2 2 新建数据库新建数据库 p3 3 执行执行SQLSQL语句语句 1 判断浏览器是否支持判断浏览器是否支持webSQL Database API p使用使用windows. openDatabasewindows. openDataba
3、se属性可以打开本数据库,属性可以打开本数据库,并返回连接句柄。如果该句柄为并返回连接句柄。如果该句柄为nullnull、undefinedundefined则则说明不支持使用说明不支持使用webSQL Database APIwebSQL Database API操作本地数据操作本地数据库,反之则支持。下面定义一个库,反之则支持。下面定义一个openDatabase()openDatabase()函函数,用于打开本地数据库:数,用于打开本地数据库:function getOpenDatabase() try /如果支持则返回数据库连接句柄 ) return ; else return und
4、efined; catch (e) return undefined; 【例【例99】 p在网页中定义一个按钮,单击此按钮时,会检测浏览在网页中定义一个按钮,单击此按钮时,会检测浏览器是否支持器是否支持webSQL Database APIwebSQL Database API。定义按钮的代码。定义按钮的代码如下:如下:检测浏览器是否支持检测浏览器是否支持webSQLDatabaseAPI【例【例99】 p单击按钮单击按钮checkcheck将调用将调用check()check()函数。函数。check()check()函数的函数的定义代码如下:定义代码如下:functioncheck()if
5、(getOpenDatabase()=undefined)alert(您的浏览器不支持您的浏览器不支持webSQLDatabaseAPI。)elsealert(您的浏览器支持您的浏览器支持webSQLDatabaseAPI。)22新建数据库新建数据库 pwebSQL Database APIwebSQL Database API在中并不包括专门用在中并不包括专门用于创建数据库的于创建数据库的APIAPI,但是以指定的数据库,但是以指定的数据库名为参数调用名为参数调用openDatabase()openDatabase()函数时,如果函数时,如果自定的数据库名不存在,则会自动创建它。自定的数据库
6、名不存在,则会自动创建它。p带参数的带参数的openDatabase()openDatabase()函数的语法如下:函数的语法如下:数据库连接句柄数据库连接句柄=openDatabase(数据数据库名库名,版本号版本号,数据库显示名称数据库显示名称,估计容量估计容量)【例【例1010】 p创建数据库创建数据库mydatabasemydatabase的代码如下:的代码如下:functioncreateDB()=undefined)alert(您的浏览器不支持您的浏览器不支持webSQLDatabaseAPI。)elsevardbs=window.openDatabase(mydatabase,v
7、1.0,SavedataDB,100)if(dbs)alert(创建成功。创建成功。)elsealert(打开数据库失败。打开数据库失败。)33执行执行SQLSQL语句语句 p使用使用transaction()transaction()函数可以执行函数可以执行SQLSQL语句,语法如语句,语法如下:下:数据库连接句柄数据库连接句柄.transaction(function(tx)tx.executeSql(CREATETABLEIFNOTEXISTSLOGS(idunique,log)ptransaction()transaction()函数的参数是一个回调函数,使用回函数的参数是一个回调函数
8、,使用回调函数的参数调函数的参数txtx来调用来调用executeSql()executeSql()函数可以执行函数可以执行SQLSQL语句。下面分别介绍几个常用的语句。下面分别介绍几个常用的SQLSQL语句。语句。1 1创建表语句创建表语句CREATETABLECREATETABLEp表是数据库中最重要的逻辑对象,是存储数据表是数据库中最重要的逻辑对象,是存储数据的主要对象。在设计数据库结构时,很重要的的主要对象。在设计数据库结构时,很重要的工作就是设计表的结构。关系型数据库的表由工作就是设计表的结构。关系型数据库的表由行和列组成。行和列组成。CREATETABLECREATETABLE语句
9、用于创建表语句用于创建表 CREATETABLEIFNOTEXISTS表名表名(列名列名1数据类型数据类型字段属性字段属性,列名列名2数据类型数据类型字段属性字段属性,列名列名n数据类型数据类型字段属性字段属性)【例【例1111】 functioncreateTable()=undefined)alert(您的浏览器不支持您的浏览器不支持webSQLDatabaseAPI。)elsevardbs=window.openDatabase(mydatabase,v1.0,SavedataDB,100)if(dbs)dbs.transaction(function(tx)tx.executeSql(
10、CREATETABLEIFNOTEXISTSt(idUNIQUE,name)elsealert(打开数据库失败。打开数据库失败。)DROPTABLEDROPTABLE语句语句 p可以使用可以使用DROP TABLEDROP TABLE语句删除表,语法如语句删除表,语法如下:下:DROPTABLE表名表名p在在WebSQLWebSQL中执行中执行DROP TABLEDROP TABLE语句的方法与语句的方法与执行执行CREATE TABLECREATE TABLE语句的方法相似。语句的方法相似。2 2插入数据表语句插入数据表语句INSERTINSERTpINSERTINSERT语句用于向表中插入
11、数据,基本使语句用于向表中插入数据,基本使用方法如下:用方法如下:INSERTINTO表名表名(列名列名1,列名列名2,列名列名n)VALUES(值值1,值值2,值值n)【例【例1212】 functioninsert()=undefined)alert(您的浏览器不支持您的浏览器不支持webSQLDatabaseAPI。)elsevardbs=window.openDatabase(mydatabase,v1.0,SavedataDB,100)if(dbs)dbs.transaction(function(tx)tx.executeSql(INSERTINTOt(id,name)VALUES
12、(1,lee)elsealert(打开数据库失败。打开数据库失败。)UPDATEUPDATE语句语句 p可以通过可以通过UPDATEUPDATE语句修改表中的数据。语句修改表中的数据。UPDATEUPDATE语句的基本使用方法如下所示:语句的基本使用方法如下所示:UPDATE表名表名SET列名列名1=值值1,列名列名2=值值2,列名列名n=值值nWHERE更新条件表达式更新条件表达式DELETEDELETE语句语句 DELETEFROM表名表名WHERE删除条件删除条件表达式表达式3 3查询数据表语句查询数据表语句SELECTSELECTSELECT子句子句FROM子句子句WHERE子句子句各
13、子句的主要功能说明如下。各子句的主要功能说明如下。 SELECTSELECT子句:指定查询结果集的列组成,列表子句:指定查询结果集的列组成,列表中的列可以来自一个或多个表;中的列可以来自一个或多个表; FROMFROM子句:指定要查询的一个或多个表;子句:指定要查询的一个或多个表; WHEREWHERE子句:指定查询的条件;子句:指定查询的条件;transaction()transaction()函数函数 p使用使用transaction()transaction()函数执行函数执行SELECTSELECT语句语句的语法如下:的语法如下:db.transaction(function(t)t.
14、executeSql(SELECT语句语句,function(t,r),function(t,e)()()函数有函数有4 4个参数个参数 p第一个参数是要执行的第一个参数是要执行的SELECTSELECT语句;语句;p第第2 2个参数是要传递的参数,比如查询条个参数是要传递的参数,比如查询条件,如果没有参数,则使用件,如果没有参数,则使用;p第第3 3个参数是处理查询结果集的回调函数,个参数是处理查询结果集的回调函数,参数参数r r为结果集;为结果集;p第第4 4个参数是处理错误的回调函数,参数个参数是处理错误的回调函数,参数e e为错误对象。为错误对象。 【例【例1313】 function
15、select()=undefined)alert(您的浏览器不支持您的浏览器不支持webSQLDatabaseAPI。)elsevardbs=window.openDatabase(mydatabase,v1.0,SavedataDB,100)if(dbs)dbs.transaction(function(tx)tx.executeSql(SELECT*FROMt,function(tx,results)alert()if(results&0)vartext=接上接上for(vari=0ii+)text+=results.rows.item(i).id+results.rows.item(i)
16、.name+document.getElementById(result).innerHTML=text,null)elsealert(打开数据库失败。打开数据库失败。)定义一个定义一个“查询表查询表t”t”按钮按钮 查询表查询表t定义一个定义一个标签,用于显示查询结果标签,用于显示查询结果 显示表显示表t t的内容的内容 总结总结p我们在数据库中处理大量结构化数据,我们在数据库中处理大量结构化数据,html5html5引入引入Web SQL DatabaseWeb SQL Database概念。概念。p它使用它使用 SQL SQL 来操纵客户端数据库的来操纵客户端数据库的 API API,这些,这些 API API 是异步的,规范中使用的方是异步的,规范中使用的方言是言是SQLliteSQLlite。p悲剧正是产生于此,悲剧正是产生于此,Web SQL DatabaseWeb SQL Database规规范页面有着这样的声明。范页面有着这样的声明。p翻译一下:翻译一下:Web SQL DatabaseWeb SQL Database曾经在曾经在W3CW3C推荐规范上,推荐规范上,但规