MATLAB程序设计Matlab与数据库的数据交互Word文档下载推荐.docx
《MATLAB程序设计Matlab与数据库的数据交互Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《MATLAB程序设计Matlab与数据库的数据交互Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
close
关闭数据库连接
commit
数据库改变参数
database
连接数据库
exec
执行SQL语句和打开游标
get
得到数据库属性
insert
导出MATLAB单元数组数据到数据库表
isconnection
判断数据库连接是否有效
isreadonly
判断数据库连接是否只读
ping
得到数据库连接信息
rollback
撤销数据库变化
set
设置数据库连接属性
sql2native
转换JDBCSQL语法为系统本身的SQL语法
update
用MATLAB单元数组数据代替数据库表的数据
表2:
数据库游标访问函数
attr
获得的数据集的列属性
关闭游标
cols
获得的数据集的列数值
columnnames
获得的数据集的列名称
fetch
导入数据到MATLAB单元数组
得到游标对象属性
querytimeout
数据库SQL查询成功的时间
rows
获取数据集的行数
设置游标获取的行限制
width
获取数据集的列宽
表3:
数据库元数据函数:
bestrowid
得到数据库表唯一行标识
columnprivileges
得到数据库列优先权
columns
得到数据库表列名称
crossreference
得到主键和外键信息
dmd
创建数据库元数据对象
exportedkeys
得到导出外部键信息
得到数据库元数据属性
importedkeys
得到导入外键信息
indexinfo
得到数据库表的索引和统计
primarykeys
从数据库表或结构得到主键信息
procedurecolumns
得到目录存储程序参数和结果列
procedures
得到目录存储程序
supports
判断是否支持数据库元数据
tableprivileges
得到数据库表优先权
tables
得到数据库表名称
上述仅列出函数名称与函数的主要功能,函数的具体使用请读者参考matlab的Database工具箱相关帮助信息。
2.3数据库数据读取
数据库数据读取主要由数据库连接,获取数据库信息,执行SQL查询语言查询数据,关闭数据连接等几个主要步骤组成。
在进行Matlab与数据库的交互前首先要对数据源进行配置(参见附录一)
(1)数据库连接函数database
database函数语法
conn=database('
datasourcename'
'
username'
password'
)
输入参数:
datasourcename:
数据库名称(连接对象的名称,如果不是本地数据,需输入网址或者IP地址及端口)
username:
数据库用户名
password:
数据库密码
输出参数:
Conn:
建立数据连接对象(内含连接信息、参数)
函数测试:
m文件DatabaseRead.m
%DatabaseReadTest
%codebyxxxxxxxxxx@
%建立数据连接
conn=database('
ARIS_SQL'
xx'
xxxxxxxxxx'
%数据库名称为“ARIS_SQL”为本数据库之间输入数据名称即可
%用户名为'
密码为'
读者需根据自己数据库的设置进行修改
%如果不是本地数据,需输入网址或者IP地址及端口
%数据库用户名为”xx”
%数据库密码为“xxxxxxxxxx”
结果输出:
conn=
Instance:
'
%数据名称
UserName:
%用户名称
Driver:
[]
URL:
Constructor:
[1x1com.mathworks.toolbox.database.databaseConnect]
Mesxxge:
Handle:
[1x1sun.jdbc.odbc.JdbcOdbcConnection]
TimeOut:
0
AutoCommit:
on'
%连接成功
Type:
DatabaseObject'
注释:
AutoCommit:
表示数据库链接成功
off'
表示数据库链接失败
(2)获取数据库连接信息函数ping
ping函数语法
ping(conn)
通过ping函数可以获得数据库连接的数据版本、数据名称、驱动程序、URL地址等等。
数据库连接对象
DatabaseProductName:
数据库产品名称
DatabaseProductVersion:
数据库产品版本
JDBCDriverName:
JDBC驱动名称
JDBCDriverVersion:
JDBC驱动版本
MaxDatabaseConnections:
数据库最大连接数量
CurrentUserName:
使用的数据库名称
DatabaseURL:
数据库URL地址
AutoCommitTranxxctions:
是否连接
参数测试:
%获取数据库连接信息
ping(conn);
ans=
DatabaseProductName:
MicrosoftSQLServer'
%数据库为'
DatabaseProductVersion:
09.00.1399'
%数据库版本为'
JDBCDriverName:
JDBC-ODBCBridge(SQLSRV32.DLL)'
%数据库的驱动程序为“JDBC-ODBCBridge”
JDBCDriverVersion:
2.0001(03.85.1132)'
%驱动程序版本“2.0001(03.85.1132)”
MaxDatabaseConnections:
%数据库最大连接数(未设置)
CurrentUserName:
dbo'
%当前用户名称“dbo”
DatabaseURL:
jdbc:
odbc:
%数据库连接地址'
AutoCommitTranxxctions:
True'
(3)执行SQL语句和打开游标函数exec
exec函数语法
curs=exec(conn,'
sqlquery'
输入参数
Conn:
数据库连接对象
Sqlquery:
sql数据库查询语句
输出参数
Curs:
结构体(游标)
该程序的目标是从数据库表StockData.dbo.Hs300中查询2008-01-01到2010-01-01之间是沪深300指数的点位.
SQL查询语言的框架为
Use数据库
Select数据内容
From数据表名称(查询目标表)
Where查询条件
Olderby排序方式
例如,在数据wind_db中的Price表中查询交易日在2012年的OpenPrice数据,按时间先后排序.
Usewind_db
SelectOpenPrice
FromPrice
Whereyear(time)==2012
Olderbytime
本节对SQL语言的语法不进行详细讲解,若读者需要阅读SQL语言书籍。
数据表StockData.dbo.Hs300的结构为:
表4:
StockData数据表结构
字段
类型
Date
Datetime类型
Price
Double类型
Vol
Sqlquery:
SQL语言
--全部价格数据
SELECTALLPrice
--从表StockData.dbo.Hs300中,存储的是沪深300的数据
FROMStockData.dbo.Hs300
--查询的价格数据的日期在2008-1-1与2010-01-01之间的(价格数据)
WHEREDateBETWEEN'
'
2008-01-01'
AND'
2010-01-01'
注释:
在Sql语言中”--”后的表示注释,类似matlab中的”%”。
Matlab语言
%查询数据
curs=exec(conn,'
SELECTALLPriceFROMStockData.dbo.Hs300WHEREDateBETWEEN'
输出结果:
Attributes:
Data:
DatabaseObject:
[1x1database]
RowLimi