1、Matlab的Sql Server数据库编程Matlab的Sql Server数据库编程lyqmath一、数据库表创建数据库表有两种方式,第一种是还原数据库的方式,假设已经存在数据库备份文件“TESTDB”,可以通过还原数据库的方式来获取数据。1.选择还原数据库2.选择数据库文件3.执行还原操作这样就可以获取已备份的数据库。如果没有数据库备份,则可以通过如下方式来创建数据库,并导入表信息。以附表1为例,根据已有表结构建立数据库表data1,同理建立数据库表data2。这里采用最常用的方式来进行处理。1.创建csv数据文件data1.csv2.打开企业管理器,创建数据TESTDB,导入数据3.按
2、向导执行4.选择文本文件5.选择csv文件6.按向导执行7.按向导执行8.按向导执行9.按向导执行10.按向导执行11.按向导执行12.按向导执行13.设计数据库表结构14.根据字段要求设计表15.查看数据库二、系统配置为了保证Matlab能正常访问Sql Server数据库,这里采用最常见的设置数据源的方式来处理。1.建立ODBC数据源进入控制面板-管理工具-ODBC数据源-用户DNS。2.点击“添加”3.选择“SQL Server”、“完成”4.数据源名称编程时要用到,可任意命名。服务器选择自己指定的5.选择默认数据库,下一步6.按向导执行7.完成配置8.测试连接三、Matlab测试访问已
3、建立的数据源,并做连接测试。代码clc; clearall; closeall;%获取数据源的名称sourceName =TESTDB;%允许登录连接时间最长为5sTimeout = logintimeout(5);%获取数据库连接对象conn = database(sourceName,sa,df1500);%测试数据库连接状态fprintf(n数据库连接状态:n);disp(ping(conn);%获取数据元对象dbmeta = dmd(conn);%获取表名信息t = tables(dbmeta,);%获取返回数组的大小trow,tcolumn = size(t);index = 1;%
4、由于表中既包含了系统表格,又包含了用户表格,需要在其中%找出用户表格,对t数组的每一行的第二个元素判断是table%则为用户表fori=1:trowifstrcmp(ti,2,TABLE) tablename1, index = ti,1; index = index+1;endendfori = 1 : index-1 fprintf(表名:%sn, tablename1, i);end%获取欲查看的表格的名称tabletosee = tablename1, 1;%构造查询的sql语句sql=select * from ,tabletosee;%执行该sql语句curs = exec(con
5、n,sql);%设定数据返回格式setdbprefs(DataReturnFormat,cellarray);%获取结果集对象curs = fetch(curs);%获取返回数据的行数numrows=rows(curs);%获取返回数据的列数numcols=cols(curs);%在屏幕中显示表格信息fprintf(表%s结构为:n, tabletosee);%分别获取相关信息fork = 1:numcols attributes = attr(curs, k);%获取字段名称 tableinfok,1 = attributes.fieldName;%获取字段类型名 tableinfok,2
6、= attributes.typeName;%获取字段类型代码 tableinfok,3 = attributes.typeValue;%获取字段的宽度 tableinfok,4 = attributes.columnWidth;%获取字段是否可空 tableinfok,5 = attributes.nullable;end%显示数据表的结构信息disp(tableinfo);fori=1:numcols fprintf( %s, tableinfoi,1);endfprintf( nn);%获取结果集对象的数据datanum = size(curs.data, 1);%显示数据表中的数据量f
7、printf(数据表%s中的数据量:%dn, tabletosee, datanum);结果数据库连接状态: DatabaseProductName: Microsoft SQL Server DatabaseProductVersion: 08.00.2039 JDBCDriverName: JDBC-ODBC Bridge (SQLSRV32.DLL) JDBCDriverVersion: 2.0001 (03.85.1132) MaxDatabaseConnections: 0 CurrentUserName: dbo DatabaseURL: jdbc:odbc:TESTDB Auto
8、CommitTransactions: True表名:data1表名:data2表名:dtproperties表data1结构为: 编号 varchar 12 8000 true 性别 varchar 12 8000 true 年龄 varchar 12 8000 true 职业 varchar 12 8000 true 教育程度 varchar 12 8000 true 月收入 varchar 12 8000 true 轿车购价 varchar 12 8000 true 轿车用途 varchar 12 8000 true 使用品牌 varchar 12 8000 true 信息渠道 varc
9、har 12 8000 true 购买地点 varchar 12 8000 true 满意度 varchar 12 8000 true 促销偏好 varchar 12 8000 true编号 性别 年龄 职业 教育程度 月收入 轿车购价 轿车用途 使用品牌 信息渠道 购买地点 满意度 促销偏好数据表data1中的数据量:200四、实验结果数据库连接状态: DatabaseProductName: Microsoft SQL Server DatabaseProductVersion: 08.00.2039 JDBCDriverName: 1x31 char JDBCDriverVersion:
10、 2.0001 (03.85.1132) MaxDatabaseConnections: 0 CurrentUserName: dbo DatabaseURL: jdbc:odbc:TESTDB AutoCommitTransactions: True表结构为: 编号 varchar 12 8000 true 平均月收入 varchar 12 8000 true 产品质量 varchar 12 8000 true as产品功能 varchar 12 8000 true 产品规格 varchar 12 8000 true 产品外观 varchar 12 8000 true 产品价格 varcha
11、r 12 8000 true 品牌形象 varchar 12 8000 true 售后服务 varchar 12 8000 true 促销活动 varchar 12 8000 true 店内环境 varchar 12 8000 true 技术人员推荐 varchar 12 8000 true 亲人朋友推荐 varchar 12 8000 true 使用品牌 varchar 12 8000 true编号 平均月收入 产品质量as产品功能 产品规格 产品外观 产品价格 品牌形象 售后服务 促销活动 店内环境 技术人员推荐 亲人朋友推荐 使用品牌数据表的数据量:200回归系数: 7.0962 -0.0003 0.3172 -0.7946 0.5808 -0.2341 -0.1086 -0.1638 -0.4625 0.0173 -0.0364 0.5403 0.2383 -0.2350相关检验: fTest: 1 9.6408 tTest: 14x4 double TUQR: 1.3352e+003 542.7210 792.4465 0.6376
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1