matlab数据库操作 (2).ppt
Matlab 数据库连接,目录,预备知识Matlab连接数据库范例,预备知识,Database工具箱简介Database工具箱是一个解决matlab与数据库连接的有效接口,它可以帮助用户使用matlab的可视化技术与数据分析技术处理数据库信息。在matlab的环境下使用SQL(structured query language)标准数据查询语言来操作数据库。Matlab支持的主流关系数据库 SQL Server MySQL Oracle,一种牛逼的数据库操作通用语言,详细可翻阅资料。,范例中使用,预备知识,Matlab自带Visual Query Builder交互式工具箱界面可视化查询工具,数据源,数据库表,表字段,预备知识,Database工具箱函数Database工具箱函数,具体分为数据库访问数据、数据库游标访问函数、数据库元数据访问函数。由于相关函数较多,本次不再详细叙述相关函数语法。具体使用参考matlab的Databse工具箱相关帮助信息。,数据库操作实例,创建数据库这一步可以在本地安装的SQL Server2008 数据库上新建数据库,具体操作如图:,新建数据库,新建表,数据库操作实例,创建ODBC数据源Matlab主界面start-Toolboxes-Database-Visual Query Builder-Query-Define ODBC Data Source,数据库操作实例,点击“添加”,选择SQL Sever数据库,点击“完成”,数据库操作实例,输入数据源名称(任意),选择本地或者远端数据库服务器,点击“下一步”,选择Windows身份认证登陆,数据库操作实例,可以更改默认的数据库(也可以不用),其他选项默认,继续点击“下一步”,数据库操作实例,点击“测试数据源”,查看是否连接成功,验证,完成,数据库操作实例,配置完数据源,在M文件中编写测试代码,连接数据库,并从中读取数据,测试所用的表(dbo.person)结构如下:,主键自增,数据库操作实例,数据库的读写操作数据库读取的主要步骤有:连接,获取数据库信息,执行SQL查询语句,关闭连接等几个步骤。(1)数据库连接函数databaseconn=database(datasourceName,username,password)其中,datasourceName为数据源名称(如果不是本地数据,需输入网址或者IP地址及端口)username:数据库用户名 password:数据库密码conn为建立连接的对象 PS:如果数据库的登陆选择Windows认证,不需要用户名和密码,数据库操作实例,M文件连接核心代码:sourceName=input(Enter the source Name:,s);%获取数据源dbtest Timeout=logintimeout(5);%设置允许登陆的连接时间 conn=database(sourceName,);%windows身份登陆,用户名密码空 ping(conn);测试结果:PS:AutoCommit:on 表示连接成功,数据库操作实例,(2)Ping函数ping(conn)通过 ping函数可以获得数据库连接的数据版本、数据名称、驱动程序、URL 地址等等。测试结果:,数据库操作实例,(3)执行SQL语句和打开游标函数exec(主要是用来遍历查询结果的集合):curs=exec(conn,sqlquery)conn:数据库连接对象 sqlquery:sql 数据库查询语句 curs:结构体(游标)(4)函数fetch 导入数据到matlab单元数组,最终可在终端查询读取数据M文件核心代码:curs=exec(conn,select*from yxmdb.dbo.person);curs=fetch(curs);%把数据库中的数据读入matlabcur=curs.data;%选择表dbo.person中所有的数据测试结果:,数据库操作实例,(5)关闭连接和游标函数close close(conn)close(curs)PS:在数据库连接或数据查询结束后,应当关闭数据库连接或查询游标,避免重复连接,重复查询浪费系统资源,使得计算机处理速度降低。,常用的SQL语句,数据库操作实例,(6)数据库插入函数fastinsert或者insert fastinsert(conn,tablename,colnames,exdata)conn:数据库连接对象 tablename:写入目标表名称(数据表需已经在数据库中建立完成)colnames:数据写入的列名称M文件核心代码:expData=tttt 40;fastinsert(conn,yxmdb.dbo.person,name,age,expData);测试结果:,数据库操作实例,(7)多行数据插入上述的插入属于单行插入,我们在M文件中添加循环得到。如下M文件核心代码:N=length(Hs300Price)for i=1:N expData=Hs300name(i),Hs300Price(i);fastinsert(conn,yxmdb.dbo.person,name;age,expData);end close(conn),数据库操作实例,(8)更新数据库操作update update(conn,table,colnames,expdata,whereclause)其中前四个参数和insert函数一样,whereclause代表SQL的where条件。最后利用commit(conn)进行确认数据更改。M文件代码示例 update(conn,xym.dbo.person,name,age,zz 26,where age=21);,优点总结,Matlab数据库操作利用自带database工具箱操作函数可以很方便的完成关系数据库增删改查利用工具箱可以同时存取多个数据库并且支持事务性,可以在不熟悉SQL的情况下进行数据交互通过在一个matlab会话中完成多个数据库的输入和输出,有就很好的并发性,扩展阅读,Matlab的学习网站:董振海精通MATLAB7编程与数据库应用工具箱与辅助函数:http:/PS:以上都是matlab和相关技术的经典学习资料,希望对有志学习matlab编程的童鞋有所帮助。,大家多多学习!天天进步!,thanck you for listening,