1. 程式人生 > >matlab與資料庫操作

matlab與資料庫操作

最近一直在研究matlab的操作,第一次接觸matlab,在短短的兩個月中,最後老師要求交一篇和matlabtoolbox有關的論文,想來想去,還是做了一些和自己專業相關的東西,database在查詢資料的時候,除了網上的一些零散的資料外,就是matlab官方的reference,這個參考的語言也很簡單 ,用了大概2天的時間,把matlabdatabase中70%的函式功能用到了,做了一個小型的管理系統,作品很粗糙,也不健壯,僅僅是為了熟悉matlab和資料庫之間的操作而完成的一個初期測試。僅作為日後學習深入的一個方案,現在網路上關於完整的matlabtoolbox的介紹還不是很多,這裡共享出來,和大家一起研究。

 由於學校對網路上的作業追究比較嚴重,為了避免嫌疑,僅僅粘貼出一部分,等評價結束後,將貼上全程式碼。

sourceName=input('Enter the source Name:','s');       %獲取資料來源的名稱
Timeout=logintimeout(5);                         %允許登入連線時間最長為5s
conn=database(sourceName,'','');                    %獲取資料庫連線物件
ping(conn)                                     %測試資料庫連線狀態

dbmeta
=dmd(conn);                           %獲取資料元物件

t
=tables(dbmeta,'tutorial');                      %獲取cata為tutorial的表名

[trow,tcolumn]=size(t);                         %獲取返回陣列的大小

index
=1;

for i
=1:trow                                  %由於表中既包含了系統表格

    if strcmp(t{i
,2},'TABLE')                   %又包含了使用者表格,需要在其中

        tablename{
1,index}=t{i,1};             %找出使用者表格,對t陣列的每一行

        index
=index+1;                       %的第二個元素判斷是table則為用

    end                                     %戶表。

end



  

tabletosee
=input('Which one would you want to use? ','s'); %獲取欲檢視的表格的名稱
    sql=['select * from ',tabletosee];                   %構造查詢的sql語句
    curs=exec(conn,sql);                            %執行該sql語句
    setdbprefs('DataReturnFormat','cellarray');           %設定資料返回格式
    curs=fetch(curs);                               %獲取結果集物件
    numrows=rows(curs);                           %獲取返回資料的行數
    numcols=cols(curs);                             %獲取返回資料的列數
disp('--------------------------------------------------------------'); %在螢幕中顯示錶格資訊
   fprintf('          Information of Table %s . ',tabletosee);
    disp('--------------------------------------------------------------');
    fprintf('number of rows=%d, number of columns=%d ',numrows,numcols);
    disp('    FieldName     typeName typeValue columnWidth nullable');
for k=1:numcols                                 %分別獲取相關資訊
        attributes
=attr(curs,k);
   
        tableinfo{k
,1}=attributes.fieldName;              %獲取欄位名稱
        tableinfo{k,2}=attributes.typeName;              %獲取欄位型別名
        tableinfo{k,3}=attributes.typeValue;              %獲取欄位型別程式碼
        tableinfo{k,4}=attributes.columnWidth;           %獲取欄位的寬度
        tableinfo{k,5}=attributes.nullable;               %獲取欄位是否可空
    end
disp(tableinfo)
;                                       %顯示資料表的結構資訊
    disp('-------------------------------------------------------------');
    fprintf('          Data of Table %s . ',tabletosee);
    disp('--------------------------------------------------------------');
    for i=1:numcols
        fprintf(' %s'
,tableinfo{i,1});
    end
    fprintf(' ')
;
    tabledata=curs.data;                               %獲取結果集物件的資料
disp(tabledata);                                  %顯示資料表中的資料

先寫這些  這是一個表格的前一部分。算是從資料庫到matlab的主要部分了。