使用數據庫工具箱函數_第1頁
使用數據庫工具箱函數_第2頁
使用數據庫工具箱函數_第3頁
使用數據庫工具箱函數_第4頁
使用數據庫工具箱函數_第5頁
已閱讀5頁,還剩26頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

使用數據庫工具箱函數第1頁,課件共31頁,創作于2023年2月12.1數據庫工具箱數據庫工具箱是Matlab工具箱擴展集中的一個,使用數據庫工具箱,可以從一個數據庫把數據讀到Matlab工作區,然后用Matlab的計算和分析工具處理數據,之后把結果保存到原來的數據庫或另一個數據庫第2頁,課件共31頁,創作于2023年2月系統要求1平臺:數據庫工具箱能運行在所有支持Matlab的系統上2數據庫:工具箱支持適合ODBC/JDBC數據庫管理系統的數據庫,包括:DB2、Informix,Ingres,Access,Excel,MySQL,SQLServer,Oracle,Postgre.驅動程序:DatabaseODBCDatabaseToolboxDatabaseToolboxJDBCDatabase第3頁,課件共31頁,創作于2023年2月12.2建立數據庫連接12.2.1為ODBC驅動程序建立數據源“控制面板”——“管理工具”——“數據源ODBC”“添加”——選擇驅動程序——“數據源名”——“選擇”數據庫第4頁,課件共31頁,創作于2023年2月12.2.2連接數據庫12.2.2連接數據庫conn=database(‘datasourcename’,’username’,’password’)eg.conn=database(‘SampleDB’,’’,’’)第5頁,課件共31頁,創作于2023年2月12.2.3建立并打開游標游標用來指示表中操作的位置,一個游標對象唯一對應一條有效的SQL語句一個程序可同時建立多個游標,即進行多個查詢。游標一直保持到close為止curs=exec(conn,‘sqlquery’)eg.curs=exec(conn,‘select*from客戶’)第6頁,課件共31頁,創作于2023年2月12.3從數據庫將數據輸入到Matlab將數據輸入到Matlab,將用到多個函數,下面按照調用順序講解每個函數12.3.1logintimeout設置最大連接時間,防止因連接失敗導致Matlab掛起timeout=logintimeout(time)timeout=logintimeout第7頁,課件共31頁,創作于2023年2月12.3.2database函數conn=database(‘datasourcename’,’username’,’password’)第8頁,課件共31頁,創作于2023年2月12.3.3ping函數ping(conn)第9頁,課件共31頁,創作于2023年2月12.3.4exec函數curs=exec(conn,’sqlquery’)第10頁,課件共31頁,創作于2023年2月12.3.5setdbprefs函數此函數對數據格式、錯誤處理等屬性設置優先權,或者查看這些屬性當前的優先權setdbprefs({‘property1’;…},{‘value1’;…})setdbprefs(‘property’,’value’)setdbprefs(‘property’)setdbprefs第11頁,課件共31頁,創作于2023年2月1.DataReturnFormat設置數據輸入到Matlab時采用什么數據類型可選值:(1)‘cellarray’(default)(2)’numeric’(3)’structure’2.ErroHanding運行database和exec函數時,處理錯誤的方式(1)’store’(default)(2)’report’(3)’empty’第12頁,課件共31頁,創作于2023年2月3.NullNumberRead輸入數據時,出現NULL數,如何表示,默認NaN4.NullNmberWrite輸出到數據庫時,出現NULL數,如何表示,默認NaN5.NullStringRead輸入數據時,數據庫中的NULL串如何表示,默認NaN6.NullStringWrite輸出到數據庫時,NULL串如何表示,默認NaNeg.setdbprefsconn=database(‘SampleDB’,’’,’’)curs=exec(conn,’selectall發貨名稱,發貨日期from訂單’);curs=fetch(curs,3);curs.Data第13頁,課件共31頁,創作于2023年2月12.3.6fetch函數將數據輸入到Matlabcurs=fetch(curs,Rowlimit)curs.Dataeg.conn=database(‘SampleDB’,’’,’’)curs=exec(conn,’selectall公司名稱from客戶’)curs=fetch(curs)curs.datacurs=fetch(curs,5)curs.data第14頁,課件共31頁,創作于2023年2月12.3.7close函數關閉數據庫連接、游標對象close(object)先關閉游標對象,再關閉連接對象第15頁,課件共31頁,創作于2023年2月12.3.8數據導入Matlab實例timeout=logintimeout(5)conn=database(‘SampleDB’,’’,’’)ping(conn)cursor=exec(conn,’select公司,職務from客戶’)cursor=fetch(cursor,10)data=cursor.Dataclose(cursor)close(conn)第16頁,課件共31頁,創作于2023年2月12.4查看輸入數據的信息輸入數據的信息包括:讀入的行數、列數(字段數)、字段名、字段寬度,以及有關列的多個屬性。這些函數應該在fetch之后使用12.4.1rows函數得到輸入數據的行數numrows=rows(curs)第17頁,課件共31頁,創作于2023年2月12.4.2cols函數numcols=cols(curs)12.4.3columnnames函數colnames=columnnames(curs)第18頁,課件共31頁,創作于2023年2月12.4.4width函數得到輸入數據的列寬度colsize=width(curs,colnum),colnum為列號12.4.5attr函數得到輸入數據所有列或指定列的屬性attributes=attr(curs,colnum)attributes=attr(curs)第19頁,課件共31頁,創作于2023年2月eg.將上面的5個函數插入之前的函數…numrows=rows(cursor)numcols=cols(cursor)colnames=columnnames(cursor)colsize=width(cursor,1)attrall=attr(cursor)data=cursor.Dataclose(cursor)close(conn)第20頁,課件共31頁,創作于2023年2月9.5將數據從Matlab輸出到數據庫9.5.1get函數用于得到對象的屬性,常用對象有數據庫連接對象,游標對象等v=get(object)v=get(object,’property’)pertyeg.conn=database(‘SampleDB’,’’,’’);v=get(conn)第21頁,課件共31頁,創作于2023年2月9.5.2insert函數用于將數據從Matlab添加到數據庫表insert(conn,’tab’,colnames,exdata)eg.exdata={‘張’,’先生’}colnames={‘姓氏’,’名字’}inset(conn,’客戶’,colnames,exdata)第22頁,課件共31頁,創作于2023年2月9.5.3commit函數確認數據庫的改變,使改變永久化。commit(conn)第23頁,課件共31頁,創作于2023年2月eg.conn=database(‘SampleDB’,’’,’’)cursor=exec(conn,’select運費from訂單’)cursor=fetch(cursor,3)data=cursor.Datarownum=rows(cursor)meanA=sum(data{:})/rownumD=‘1/20/98’C=cell(1,2)C(1,1)={D}C(1,2)={meanA}colnames={‘日期’,’平均運費’}get(conn,’autocommit’)insert(conn,’平均運費’,colnames,C)close(cursor)close(conn)第24頁,課件共31頁,創作于2023年2月12.6更新數據庫中已存在的數據update函數用Matlab的數據替換數據庫表中的數據update(conn,’tab’,colnames,exdata,’whereclause’)eg.colnam={‘城市’}newdata(1,1)={‘長春’}update(conn,’客戶’,colnam,newdata,’where公司=‘’東南實業’’’)第25頁,課件共31頁,創作于2023年2月12.6.2set函數為連接,游標等對象設置屬性值set(object,’property’,value)set(object)說明:允許set設置的連接對象屬性有AutoCommit和ReadOnly允許set設置的游標屬性有RowLimit第26頁,課件共31頁,創作于2023年2月eg.conn=database(‘SampeDB’,’’,’’)colnames={‘日期’,’平均費用’}D=‘1/20/2013’meanA=25.2600C={D,meanA}update(conn,’平均費用’,colnames,C,’where日期=‘’1/20/98’’’)close(conn)第27頁,課件共31頁,創作于2023年2月12.7存取metadatametadata,數據庫系統的信息,姑且稱它為元數據dmd函數用于構造數據庫metadata對象dbmeta=dmd(conn)第28頁,課件共31頁,創作于2023年2月supports函數a=supports(dbmeta)a=supports(dbmeta,’property’)perty第29頁,課件共31頁,創作于2023年2月tables函數得到數據庫的表名t=talbes(dbmeta,’cata’)dbmeta為數據庫元數據對象,cata為數據庫項目名

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論