第9章-使用數(shù)據(jù)庫保存與檢索信息_第1頁
第9章-使用數(shù)據(jù)庫保存與檢索信息_第2頁
第9章-使用數(shù)據(jù)庫保存與檢索信息_第3頁
第9章-使用數(shù)據(jù)庫保存與檢索信息_第4頁
第9章-使用數(shù)據(jù)庫保存與檢索信息_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

使用數(shù)據(jù)庫保存與檢索信息北京理工大學(xué)計(jì)算機(jī)學(xué)院金旭亮ASP.NET程序設(shè)計(jì)之主要內(nèi)容數(shù)據(jù)庫技術(shù)概論結(jié)構(gòu)化查詢語言SQL使用ADO.NET訪問數(shù)據(jù)21數(shù)據(jù)庫技術(shù)概論什么是數(shù)據(jù)庫?通俗地說,數(shù)據(jù)庫就是用于集中存放大量信息的一種軟件,這種軟件提供了非常強(qiáng)大的功能來管理數(shù)據(jù),比如信息的查詢、修改、增加、刪除等。數(shù)據(jù)庫是非常復(fù)雜的軟件系統(tǒng),其復(fù)雜程度甚至可比操作系統(tǒng)。我們把實(shí)現(xiàn)數(shù)據(jù)庫功能的軟件稱為DBMS(DatabaseManagementSystem:數(shù)據(jù)庫管理系統(tǒng))。4數(shù)據(jù)庫的組織結(jié)構(gòu)數(shù)據(jù)庫

記錄

字段5數(shù)據(jù)庫表間的關(guān)聯(lián)關(guān)系表之間的關(guān)聯(lián)是現(xiàn)實(shí)生活中事物之間關(guān)聯(lián)關(guān)系的模擬。主鍵外鍵6在實(shí)際的數(shù)據(jù)庫設(shè)計(jì)中,經(jīng)常使用“自增字段”來作為表的主鍵。SQLServerExpress安裝要點(diǎn)提示使用的數(shù)據(jù)庫本課程使用中文SQLSever2005ExpressSP2高級服務(wù)版。可以到微軟網(wǎng)站下載此程序。其文件名為SQLEXPR_ADV_CHS.EXE,大小約275M。亦可使用中文SQLSever2005ExpressSP2標(biāo)準(zhǔn)版,但這時(shí)需單獨(dú)下載并安裝SQLServerManagementStudioExpressSP2。8安裝SQLServer2005高級服務(wù)版(1)注意要選中安裝ManagementStudioExpress。9安裝SQLServer2005高級服務(wù)版(2)注意身份驗(yàn)證模式的指定,建議設(shè)定為混合模式。10SQLServer的運(yùn)行安裝完SQLServer2005后,SQLServer是作為一個(gè)Windows服務(wù)來運(yùn)行的??梢允褂每刂泼姘宓摹胺?wù)”程序或“SQLServer2005外圍應(yīng)用配置器”來管理服務(wù)。啟動(dòng)“SQLServer2005外圍應(yīng)用配置器”的方法:

開始

程序MicrosoftSQLServer2005配置工具

SQLServer2005外圍應(yīng)用配置器11演示:使用SQLServer2005外圍應(yīng)用配置器啟動(dòng)和停止SQLServer服務(wù)SQLServer的管理工具SSME使用SQLServerManagementStudioExpress(簡稱SSME)來管理數(shù)據(jù)庫:

開始

程序MicrosoftSQLServer2005SQLServerManagementStudioExpress12SSME的使用方法(1)附加數(shù)據(jù)庫13SSME的使用方法(2)編寫與執(zhí)行SQL命令14演示:使用SSME進(jìn)行數(shù)據(jù)庫操作使用SSME可以完成各種數(shù)據(jù)庫操作創(chuàng)建數(shù)據(jù)庫(BookShopDemo)創(chuàng)建表Book(指定其主鍵為自增字段BookID)建立表BookRemark(指定其主鍵為自增字段BookRemarkID)建立表Book和BookRemark之間的關(guān)聯(lián)。152結(jié)構(gòu)化查詢語言SQL什么是SQLSQL——StructuredQueryLanguage, 結(jié)構(gòu)查詢語言,我們使用它來從數(shù)據(jù)庫中提取并操作各種數(shù)據(jù)17SQL命令的分類SQL命令可以分成以下三類:DML(DataManipulationLanguage,數(shù)據(jù)操作語言):用于檢索或者修改數(shù)據(jù)。DDL(DataDefinitionLanguage,數(shù)據(jù)定義語言):用于定義數(shù)據(jù)的結(jié)構(gòu),比如創(chuàng)建、修改或者刪除數(shù)據(jù)庫對象。DCL(DataControlLanguage,數(shù)據(jù)控制語言):用于定義數(shù)據(jù)庫用戶的權(quán)限。18常用的SQL命令Select:選擇數(shù)據(jù)Insert:插入數(shù)據(jù)Update:更新數(shù)據(jù)Delete:刪除數(shù)據(jù)19使用SSME執(zhí)行SQL命令使用“新建查詢”命令,在“查詢”面板中書寫SQL命令。20書寫完SQL命令之后,可以先檢查語法,然后再執(zhí)行。檢查語法執(zhí)行SQL命令I(lǐng)nsert:插入數(shù)據(jù)命令格式:

insertinto表名(列名列表)values(值列表)實(shí)例:21useClients--指明數(shù)據(jù)庫 insertintoOrderClient( ClientName,AddressStr,PostCode,Telephone,Email) Values('張三','某省某市某街道某某號', '100081','12345678','SomeOne@');Update:更新數(shù)據(jù)基本格式

update表名set字段名=“字段新值”where滿足條件實(shí)例22updateOrderClient setAddressStr='無有國烏有省沒有市虛空街' WhereClientName='張三';Delete:刪除數(shù)據(jù)格式:

Deletefrom表名where滿足條件實(shí)例:deletefromOrderClientwhereClientName='張三';23Select:選擇數(shù)據(jù)這是最靈活的SQL命令,有許多用法,最基本的格式為:

Select表名.列名from表名列表where滿足條件上述基本格式還有許多變化,比如進(jìn)行排序和分組等等。24三種基本關(guān)系數(shù)據(jù)操作選擇:用于選中滿足某種條件的數(shù)據(jù)

Select*fromOrderClientwhereClientNameLike'張%'投影:只顯示記錄中的部分字段SelectClientName,AddressStrfromOrderClient連接:從兩個(gè)以上的表中提取記錄注意:三種操作可以自由組合25useHappyBookShopSelectBook.BookName,BookRemark.RemarkContentfromBook,BookRemarkwhereBook.BookID=BookRemark.BookIDAndBook.BookName='編程之美:微軟技術(shù)面試心得'視圖視圖是一個(gè)虛擬表,可以與真實(shí)的表一樣使用。其不同之處在于:它的數(shù)據(jù)是在使用時(shí)臨時(shí)通過執(zhí)行SQL命令獲取的?;靖袷剑篊reateView視圖名稱ASSeletct語句實(shí)例:26CreateViewBookNameAndBookRemarkASSelectBook.BookName,BookRemark.RemarkContentfromBook,BookRemarkwhereBook.BookID=BookRemark.BookID使用視圖視圖可以當(dāng)成一個(gè)表一樣用。實(shí)例:27usehappybookshopselect*fromBookNameAndBookRemark存儲過程存儲過程類似于傳統(tǒng)編程語言中的“函數(shù)”。它是一組SQL命令的集合?;靖袷剑篶reateprocedure存儲過程名(參數(shù)列表)ASBEGIN --各種SQL語句END;28創(chuàng)建存儲過程示例:在Clients數(shù)據(jù)庫中創(chuàng)建存儲過程29createprocedureFindCustomerInfo( @FirstNameVARCHAR(20)=NULL)ASBEGIN Select*fromOrderClientwhereClientNamelike'%'+@FirstName+'%';END;執(zhí)行存儲過程使用EXEC命令執(zhí)行存儲過程實(shí)例:

ExecFindCustomerInfo'張'30統(tǒng)計(jì)數(shù)據(jù):使用聚集函數(shù)所謂“聚集函數(shù)”,其實(shí)就是對一組記錄進(jìn)行統(tǒng)計(jì)的一些函數(shù):31常用的聚集函數(shù)MIN返回一個(gè)給定列中最小的數(shù)值MAX返回一個(gè)給定列中最大的數(shù)值SUM返回一個(gè)給定列中所有數(shù)值的總和AVG返回一個(gè)給定列中所有數(shù)值的平均值COUNT返回一個(gè)給定列中所有數(shù)值的個(gè)數(shù)COUNT(*)返回一個(gè)表中的行數(shù)32聚集函數(shù)使用示例——統(tǒng)計(jì)姓張的客戶數(shù)量Selectcount(*)fromorderClientwhereClientNameLike'張'+'%';3使用ADO.NET訪問數(shù)據(jù)數(shù)據(jù)庫的存取引擎——微軟數(shù)據(jù)存取技術(shù)的歷史發(fā)展軌跡ODBC:訪問關(guān)系型數(shù)據(jù)庫DAO與RDO:主要為VB早期版本設(shè)計(jì)的,可以方便地訪問Access和SQLServerADO與OLEDB:隨著VisualStudio6一同發(fā)布,是Win32時(shí)代用得最廣泛的數(shù)據(jù)存取引擎。ADO.NET:.NET時(shí)代主流數(shù)據(jù)存取引擎LINQ:.NET3.0后引入,將數(shù)據(jù)存取訪問功能集成到編程語言中,是當(dāng)前最新的數(shù)據(jù)存取引擎34什么是ADO.NET?它是一組封裝好的對象,提供了各種對數(shù)據(jù)庫數(shù)據(jù)的存取功能。ADO.NET是.NETFramework的核心構(gòu)件,為上層的各種應(yīng)用程序提供數(shù)據(jù)存儲服務(wù)。35ADO.net對象模型請務(wù)必記住以下對象模型與數(shù)據(jù)庫構(gòu)成元素的對應(yīng)關(guān)系。36使用ADO.net對象模型演示Demo:CreateDBStruInMemory37注意示例中是如何處理DataSet、DataTable、DataColumn和DataRow這五個(gè)對象的。這是典型的ADO.NET代碼,要注意掌握。如何使用ADO.NET訪問數(shù)據(jù)庫?第一步:連接數(shù)據(jù)庫在能夠訪問數(shù)據(jù)庫之前,必須連接到數(shù)據(jù)庫上,即使是單機(jī)也是一樣。不同種類的數(shù)據(jù)庫,連接時(shí)要提供的信息也不一樣。這些信息被放在一個(gè)文本串中,稱為“連接字串”。39文件型數(shù)據(jù)庫連接字串提供文件路徑,用戶名和密碼可選。最簡單的連接Access數(shù)據(jù)庫的字串:

Provider=Microsoft.Jet.OLEDB.4.0;

DataSource=C:\NWIND.MDB40SQLServer連接字串需要提供數(shù)據(jù)庫服務(wù)器名,用戶名,密碼,以及數(shù)據(jù)庫名等信息。集成身份驗(yàn)證方式DataSource=localhost\SQLEXPRESS;InitialCatalog=Broadview;IntegratedSecurity=True混合身份驗(yàn)證方式

DataSource=localhost\sqlexpress; InitialCatalog=Clients; UserID=sa; Password=jxl@Demo:如何使用VisualStudio獲取連接字串?41實(shí)例:獲取數(shù)據(jù)庫連接字串示例項(xiàng)目:GetDBConnectionStr42示例程序要點(diǎn)使用MultiView控件實(shí)現(xiàn)卡片切換的功能。使用SqlConnectionStringBuilder類動(dòng)態(tài)生成連接字串。43使用ADO.NET連接數(shù)據(jù)庫ADO.NET中是使用Connection對象來連接數(shù)據(jù)庫的。需要給定一個(gè)連接字串,然后調(diào)用其Open()方法。用完之后,調(diào)用Close()方法關(guān)閉數(shù)據(jù)庫連接44實(shí)例:連接數(shù)據(jù)庫提取數(shù)據(jù)庫元數(shù)據(jù)所謂“元數(shù)據(jù)(MetaData)”,是指“說明數(shù)據(jù)的數(shù)據(jù)”。數(shù)據(jù)庫的元數(shù)據(jù),主要是指數(shù)據(jù)庫中各種對象的信息。Demo:GetDBInfo45實(shí)例要點(diǎn)使用Web.Config保存數(shù)據(jù)庫連接字串使用連接對象的GetSchema()獲取數(shù)據(jù)庫的連接信息。使用DropDownList顯示數(shù)據(jù),注意這一控件可以設(shè)置顯示哪個(gè)字段的值,用戶選擇中后獲取哪個(gè)字段的值。使用GridView顯示數(shù)據(jù)庫詳細(xì)信息。這一示例展示了最簡單的數(shù)據(jù)綁定控件的用法。46第2步發(fā)送SQL命令連接上數(shù)據(jù)庫服務(wù)器以后,就可以向其發(fā)送各種命令,指明要提取哪些數(shù)據(jù),進(jìn)行哪些操作。在ASP.NET中,使用Command對象完成發(fā)送SQL命令的任務(wù)。47Command類幾乎所有的ADO.NET數(shù)據(jù)存取功能最后都必須轉(zhuǎn)化為SQL命令傳給數(shù)據(jù)庫。有兩種主要的Command對象:

OleDbCommand和SqlCommand48Command對象的使用方法(1)創(chuàng)建數(shù)據(jù)庫連接對象DbConnection。(2)創(chuàng)建Command對象,并將DbConnection對象傳給它。(3)設(shè)定它的CommandText屬性為有效的SQL命令。(4)調(diào)用它的Exec系列方法。49執(zhí)行不返回行的SQL命令比如“insert”和“update”命令不會返回一個(gè)記錄集,但它會返回受影響的行數(shù)。調(diào)用Command對象的ExecuteNonQuery()方法執(zhí)行這類SQL命令。對于一些只返回單值的SQL命令,調(diào)用Command對象的ExecuteScalar()可取得最佳性能。例如以下SQL命令就適合使用ExecuteScalar()方法來執(zhí)行:

Selectcount(*)from表名50執(zhí)行返回行的SQL命令主要指Select命令。Command對象的ExecuteReader()方法執(zhí)行此SQL命令并返回一個(gè)DataReader對象,這是一個(gè)僅能向前讀的記錄集。如果需要在記錄集中前后移動(dòng),則需要將DataReader轉(zhuǎn)為

溫馨提示

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

評論

0/150

提交評論