QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 11781|回复: 15
打印 上一主题 下一主题

Matlab与SQL Server数据库编程指南

[复制链接]
字体大小: 正常 放大

2620

主题

162

听众

1万

积分

升级  0%

  • TA的每日心情
    开心
    2015-3-12 15:35
  • 签到天数: 207 天

    [LV.7]常住居民III

    社区QQ达人 发帖功臣 新人进步奖 优秀斑竹奖 金点子奖 原创写作奖 最具活力勋章 助人为乐奖 风雨历程奖

    群组第六届国赛赛前冲刺培

    群组国赛讨论

    群组2014美赛讨论

    群组2014研究生数学建模竞

    群组数学中国试看培训视频

    跳转到指定楼层
    1#
    发表于 2015-1-8 09:53 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    Matlab与SQL Server数据库编程-Godman
    本文将讲述以ODBC的方式对SQL Server数据库进行链接和相关读取。

    游客,如果您要查看本帖隐藏内容请回复


    配置数据源
    “控制面板”----“管理工具”——“数据源(ODBC)”——“添加”——“创建数据源”。具体操作见“数据源配置-SQL Server.gif”

    10081221292400146c3b291f1d.gif.thumb.jpg
    2.
    建立链接对象——database
    调用格式:
    conna=database(‘datasourcename’,’username’,’password’);

    conna=database('db_sql_server','sa','sa123456789');
    %数据库名,用户名,密码;
    其中db_sql_server为上文中创建的数据源名称,其余为SQL安装时输入的用户名和密码。
    3.
    建立并打开游标——exec
    调用格式:
    curs=exec(conna,'sqlquery');
    如curs=exec(conna,'select * from database')
    其中conna为上文中链接对象,select * from database表示从表database中选择所有的数据.
    4.
    把数据库中的数据读取到Matlab中——fetch
    调用格式:
    curs=fetch(curs,RowLimit);
    Data=curs.Data;%把读取到的数据用变量Data保存.
    如curs=fetch(curs);
    把所有的数据一次全部读取到Matlab中,RowLimit为每次读取的数据参数的行数,默认为全部读取,但是全部读取会很费时间(和计算机性能很大关系)。
    上述四点是matlab从数据库文件中读取数据到matlab中的基本步骤。
    实例:
    timeoutA=logintimeout(5);%设置连接数据库的时间
    conn = database('db_sql_server','sa','sa123456789');
    %数据库名,用户名,密码
    ping(conn);
    cursorA=exec(conn,'SELECT * FROM Sh');
    %/执行select语句,Sh:数据表名
    setdbprefs ('DataReturnFormat','cellarray')
    ;
    %返回数据类型为元包(cell)型,默认为CELL型。要通过cell2mat()转换格式
    cursorA=fetch(cursorA);
    %将数据库中的内容写入MATLAB工作空间
    AA=cursorA.Data
    %得到数据库中的数据
    %关闭连接
    close(cursorA)
    close(conn);

    100812212442e24d81c6c4338a.jpg.thumb.jpg
    其余操作如插入、删除、更新等可参加以前写的基于Access数据库的相关内容,下列函数可供参考,具体用法可以在Matlab中通过help查询。
    数据库工具箱函数列表
    数据库访问函数
    clearwarnings 清除数据库连接警告
    close 关闭数据库连接
    commit 数据库改变参数
    database 连接数据库
    exec 执行SQL语句和打开油标
    get 得到数据库属性
    insert 导出MATLAB单元数组数据到数据库表
    isconnection 判断数据库连接是否有效
    isreadonly 判断数据库连接是否只读
    ping 得到数据库连接信息
    rollback 撤销数据库变化
    set 设置数据库连接属性
    sql2native 转换JDBC SQL 语法为系统本身的SQL语法
    update 用MATLAB单元数组数据代替数据库表的数据
    数据库游标访问函数
    attr 获得的数据集的列属性
    close 关闭游标
    cols 获得的数据集的列数值
    columnnames 获得的数据集的列名称
    fetch 导入数据到MATLAB单元数组
    get 得到游标对象属性
    querytimeout 数据库SQL查询成功的时间
    rows 获取数据集的行数
    set 设置游标获取的行限制
    width 获取数据集的列宽
    数据库元数据函数
    bestrowid 得到数据库表唯一行标识
    columnprivileges 得到数据库列优先权
    columns 得到数据库表列名称
    crossreference 得到主健和外健信息
    dmd 创建数据库元数据对象
    exportedkeys 得到导出外部健信息
    get 得到数据库元数据属性
    importedkeys 得到导入外健信息
    indexinfo 得到数据库表的索引和统计
    primarykeys 从数据库表或结构得到主健信息
    procedurecolumns 得到目录存储程序参数和结果列
    procedures 得到目录存储程序
    supports 判断是否支持数据库元数据
    tableprivileges 得到数据库表优先权
    tables 得到数据库表名称
    versioncolumns 得到自动更新表列


    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏1 支持支持0 反对反对0 微信微信
    666weidu        

    0

    主题

    4

    听众

    525

    积分

    升级  75%

  • TA的每日心情
    奋斗
    2017-1-6 17:41
  • 签到天数: 252 天

    [LV.8]以坛为家I

    新人进步奖

    回复

    使用道具 举报

    0

    主题

    12

    听众

    534

    积分

    升级  78%

  • TA的每日心情
    奋斗
    2015-4-18 18:22
  • 签到天数: 163 天

    [LV.7]常住居民III

    自我介绍
    数学水平停留在高中水平了。
    回复

    使用道具 举报

    0

    主题

    12

    听众

    534

    积分

    升级  78%

  • TA的每日心情
    奋斗
    2015-4-18 18:22
  • 签到天数: 163 天

    [LV.7]常住居民III

    自我介绍
    数学水平停留在高中水平了。
    回复

    使用道具 举报

    林灵锋        

    0

    主题

    14

    听众

    48

    积分

    升级  45.26%

  • TA的每日心情

    2015-1-27 22:11
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    自我介绍
    福州大学数学物理综合班学生一枚。

    社区QQ达人

    群组2015SAS数据分析大赛

    回复

    使用道具 举报

    林灵锋        

    0

    主题

    14

    听众

    48

    积分

    升级  45.26%

  • TA的每日心情

    2015-1-27 22:11
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    自我介绍
    福州大学数学物理综合班学生一枚。

    社区QQ达人

    群组2015SAS数据分析大赛

    回复

    使用道具 举报

    林灵锋        

    0

    主题

    14

    听众

    48

    积分

    升级  45.26%

  • TA的每日心情

    2015-1-27 22:11
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    自我介绍
    福州大学数学物理综合班学生一枚。

    社区QQ达人

    群组2015SAS数据分析大赛

    回复

    使用道具 举报

    林灵锋        

    0

    主题

    14

    听众

    48

    积分

    升级  45.26%

  • TA的每日心情

    2015-1-27 22:11
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    自我介绍
    福州大学数学物理综合班学生一枚。

    社区QQ达人

    群组2015SAS数据分析大赛

    回复

    使用道具 举报

    0

    主题

    7

    听众

    705

    积分

    升级  26.25%

  • TA的每日心情

    2017-5-7 16:58
  • 签到天数: 366 天

    [LV.9]以坛为家II

    邮箱绑定达人 社区QQ达人

    群组2012HIMCM培训群组

    群组第四届数学中国美赛实

    群组第三届数模基础实训

    群组高数系列公益培训

    群组物联网工程师培训

    回复

    使用道具 举报

    gancm 实名认证       

    8

    主题

    13

    听众

    1831

    积分

  • TA的每日心情

    2015-5-31 00:30
  • 签到天数: 432 天

    [LV.9]以坛为家II

    国际赛参赛者

    社区QQ达人

    群组2013电工杯A题讨论群组

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-5-21 08:54 , Processed in 0.916786 second(s), 108 queries .

    回顶部