MATLAB与SQL交互

转载自:http://www.matlabsky.com/forum-viewthread-tid-10302-fromuid-18677.html

在MATLAB中使用JDBC与数据库进行交互,需要先将驱动程序复制到MATLAB相关目录下,或者设置classpath。

1.下载JDBC驱动。

2.设置matlab的启动加载项,打开C:\Program Files\MATLAB\R2012a\toolbox\local\classpath.txt,在文件的最后添加刚才的jar文件,例如:F:/matlab/JDBCDriver/sqljdbc4.jar(注意这里需要用"/")

3.重新启动matlab,若不报错则认为加载驱动成功 

 

 

%使用JDBC打开数据库
conn = database('db','user','pwd', 'oracle.jdbc.driver.OracleDriver','jdbc:oracle:thin:@ IP:PORT:SID');

isconnection(conn);%若返回1则认为连接成功。

close(conn);%执行完数据库查询操作后,关闭数据库连接

 

%数据库相关操作

%先打开数据库连接conn,然后查询并返回游标

curs=exec(conn,'sqlquery');

%把数据库中的数据读取到Matlab中——fetch 

curs=fetch(curs,RowLimit);

%把读取到的数据用变量Data保存.

Data=curs.Data;

%养成良好习惯,随手关闭链接对象和游标——close 

close(curs);

close(conn);

 


数据返回类型

从数据库中读取数据到matlab有三种数据类型(默认为元胞类型cellarray),分别为元胞类型(cellarray),数字型(numeric),结构型(structure)。可以在链接数据库之前通过setdbprefs函数来进行设置。如果数据库文件中全部是数值型数据时最好采用numeric型的数据,这样可以使得读取速度大幅提高,特别是在大型数据读取时非常明显。

setdbprefs(‘datareturnformat’,’numric’)

 

查看数据相关信息

Rows-查看数据行数      调用格式:numrows=rows(curs)

Cols——查看数据列数       调用格式:numcols=cols(curs)

Attr——查看数据属性       调用格式:attribute=attr(curs)

 

添加数据到表中——insert函数   调用格式:insert(conna,’tab’,colnames,exdata)

conna——链接对象  tab——数据库文件的表名  colnames——数据库表的列名  exdata——matlab变量

如:insert(conna,'try',{'a1', 'a2'},[45 65])

commit(conna)%确认数据更改

 

更新数据库中的数据——update   调用格式:update(conna,’tab’,colnames,exdata,’whereclause’)

conna——链接对象  tab——数据库文件的表名  colnames——数据库表的列名  exdata——matlab变量  whereclause——SQL的where字句

如:update(conna,'try',{'a1', 'a2'},[45 65],’where XX=’XX’’)

commit(conna)%确认数据更改

 

建立新表——exec,creat table  调用格式:conna=database('SampleDB','','');  exec(conna,['create table Table(name string,age int)']);  close(conna);

Table——表名  name,age——字段名

 

 

posted @ 2014-03-28 13:13  phk52  阅读(2490)  评论(0)    收藏  举报