《使用数据库工具箱函数精品文稿.ppt》由会员分享,可在线阅读,更多相关《使用数据库工具箱函数精品文稿.ppt(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、使用数据使用数据使用数据使用数据库库工具箱函工具箱函工具箱函工具箱函数数数数第1页,本讲稿共31页12.1数据库工具箱数据库工具箱数据库工具箱是Matlab工具箱扩展集中的一个,使用数据库工具箱,可以从一个数据库把数据读到Matlab工作区,然后用Matlab的计算和分析工具处理数据,之后把结果保存到原来的数据库或另一个数据库第2页,本讲稿共31页系统要求系统要求1 平台:数据库工具箱能运行在所有支持Matlab的系统上2 数据库:工具箱支持适合ODBC/JDBC数据库管理系统的数据库,包括:DB2、Informix,Ingres,Access,Excel,MySQL,SQL Server,O
2、racle,Postgre.驱动程序:DatabaseODBCDatabase ToolboxDatabase ToolboxJDBCDatabase第3页,本讲稿共31页12.2建立数据库连接建立数据库连接12.2.1为ODBC驱动程序建立数据源“控制面板”“管理工具”“数据源ODBC”“添加”选择驱动程序“数据源名”“选择”数据库第4页,本讲稿共31页12.2.2连接数据库连接数据库12.2.2连接数据库conn=database(datasourcename,username,password)eg.conn=database(SampleDB,)第5页,本讲稿共31页12.2.3建立并
3、打开游标游标用来指示表中操作的位置,一个游标对象唯一对应一条有效的SQL语句一个程序可同时建立多个游标,即进行多个查询。游标一直保持到close为止curs=exec(conn,sqlquery)eg.curs=exec(conn,select*from 客户)第6页,本讲稿共31页12.3从数据库将数据输入到从数据库将数据输入到Matlab将数据输入到Matlab,将用到多个函数,下面按照调用顺序讲解每个函数12.3.1logintimeout设置最大连接时间,防止因连接失败导致Matlab挂起timeout=logintimeout(time)timeout=logintimeout第7页
4、,本讲稿共31页12.3.2database函数conn=database(datasourcename,username,password)第8页,本讲稿共31页12.3.3 ping函数ping(conn)第9页,本讲稿共31页12.3.4exec函数curs=exec(conn,sqlquery)第10页,本讲稿共31页12.3.5setdbprefs函数此函数对数据格式、错误处理等属性设置优先权,或者查看这些属性当前的优先权setdbprefs(property1;,value1;)setdbprefs(property,value)setdbprefs(property)setdbp
5、refs第11页,本讲稿共31页1.DataReturnFormat设置数据输入到Matlab时采用什么数据类型可选值:(1)cellarray(default)(2)numeric(3)structure2.ErroHanding运行database和exec函数时,处理错误的方式(1)store(default)(2)report(3)empty第12页,本讲稿共31页3.NullNumberRead输入数据时,出现NULL数,如何表示,默认NaN4.NullNmberWrite输出到数据库时,出现NULL数,如何表示,默认NaN5.NullStringRead输入数据时,数据库中的NUL
6、L串如何表示,默认NaN6.NullStringWrite输出到数据库时,NULL串如何表示,默认NaNeg.setdbprefsconn=database(SampleDB,)curs=exec(conn,select all 发货名称,发货日期 from 订单);curs=fetch(curs,3);curs.Data第13页,本讲稿共31页12.3.6fetch函数将数据输入到Matlabcurs=fetch(curs,Rowlimit)curs.Dataeg.conn=database(SampleDB,)curs=exec(conn,select all 公司名称 from 客户)c
7、urs=fetch(curs)curs.datacurs=fetch(curs,5)curs.data第14页,本讲稿共31页12.3.7close函数关闭数据库连接、游标对象close(object)先关闭游标对象,再关闭连接对象第15页,本讲稿共31页12.3.8数据导入Matlab实例timeout=logintimeout(5)conn=database(SampleDB,)ping(conn)cursor=exec(conn,select 公司,职务 from 客户)cursor=fetch(cursor,10)data=cursor.Dataclose(cursor)close(c
8、onn)第16页,本讲稿共31页12.4查看输入数据的信息查看输入数据的信息输入数据的信息包括:读入的行数、列数(字段数)、字段名、字段宽度,以及有关列的多个属性。这些函数应该在fetch之后使用12.4.1rows函数得到输入数据的行数numrows=rows(curs)第17页,本讲稿共31页12.4.2cols函数numcols=cols(curs)12.4.3columnnames函数colnames=columnnames(curs)第18页,本讲稿共31页12.4.4width函数得到输入数据的列宽度colsize=width(curs,colnum),colnum为列号12.4.
9、5attr函数得到输入数据所有列或指定列的属性attributes=attr(curs,colnum)attributes=attr(curs)第19页,本讲稿共31页eg.将上面的5个函数插入之前的函数numrows=rows(cursor)numcols=cols(cursor)colnames=columnnames(cursor)colsize=width(cursor,1)attrall=attr(cursor)data=cursor.Dataclose(cursor)close(conn)第20页,本讲稿共31页9.5 将数据从将数据从Matlab输出到数据库输出到数据库9.5.1
10、 get函数用于得到对象的属性,常用对象有数据库连接对象,游标对象等v=get(object)v=get(object,property)v.propertyeg.conn=database(SampleDB,);v=get(conn)第21页,本讲稿共31页9.5.2 insert函数用于将数据从Matlab添加到数据库表insert(conn,tab,colnames,exdata)eg.exdata=张,先生colnames=姓氏,名字inset(conn,客户,colnames,exdata)第22页,本讲稿共31页9.5.3 commit函数确认数据库的改变,使改变永久化。commi
11、t(conn)第23页,本讲稿共31页eg.conn=database(SampleDB,)cursor=exec(conn,select 运费 from 订单)cursor=fetch(cursor,3)data=cursor.Datarownum=rows(cursor)meanA=sum(data:)/rownumD=1/20/98C=cell(1,2)C(1,1)=DC(1,2)=meanAcolnames=日期,平均运费get(conn,autocommit)insert(conn,平均运费,colnames,C)close(cursor)close(conn)第24页,本讲稿共31
12、页12.6更新数据库中已存在的数据更新数据库中已存在的数据update函数用Matlab的数据替换数据库表中的数据update(conn,tab,colnames,exdata,whereclause)eg.colnam=城市newdata(1,1)=长春update(conn,客户,colnam,newdata,where 公司=东南实业)第25页,本讲稿共31页12.6.2set函数为连接,游标等对象设置属性值set(object,property,value)set(object)说明:允许set设置的连接对象属性有AutoCommit和ReadOnly允许set设置的游标属性有RowL
13、imit第26页,本讲稿共31页eg.conn=database(SampeDB,)colnames=日期,平均费用D=1/20/2013meanA=25.2600C=D,meanAupdate(conn,平均费用,colnames,C,where 日期=1/20/98)close(conn)第27页,本讲稿共31页12.7存取存取metadatametadata,数据库系统的信息,姑且称它为元数据dmd函数用于构造数据库metadata对象dbmeta=dmd(conn)第28页,本讲稿共31页supports函数a=supports(dbmeta)a=supports(dbmeta,property)a.property第29页,本讲稿共31页tables函数得到数据库的表名t=talbes(dbmeta,cata)dbmeta为数据库元数据对象,cata为数据库项目名eg.conn=database(SampleDB,)dbmeta=dmd(conn)t=tables(dbmeta,Twind)第30页,本讲稿共31页eg.conn=database(SampleDB,)dbmeta=dmd(conn)vA=get(dbmeta)vA.catalogssA=supports(dbmeta)tsA=tables(dbmeta,Twind)第31页,本讲稿共31页
限制150内