版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
網(wǎng)絡(luò)數(shù)據(jù)庫主講教師:李永勝——數(shù)學(xué)與計算機(jī)科學(xué)學(xué)院Tel-mail:lyshlh@163.com課程與上機(jī)安排總課時:20學(xué)時,5周,4節(jié)/周其中:2節(jié)理論課,2節(jié)上機(jī)課課程性質(zhì):通選課考核方式:考查,筆試,安排在第五次課進(jìn)行,地點:逸夫樓7樓。教材:自編,即上課所使用的課件。推薦教材:《網(wǎng)絡(luò)數(shù)據(jù)庫SQLServer2000》杜佰林主編,清華大學(xué)出版社出版,2007年9月版價格27元前言數(shù)據(jù)庫軟件是應(yīng)用軟件中最基礎(chǔ)、最低層的支持全球數(shù)據(jù)庫目前每年有超過80億美元的市場規(guī)模由于數(shù)據(jù)庫涉及高端技術(shù),門檻很高,使得數(shù)據(jù)庫市場的競爭僅在有限的選手之間進(jìn)行主流的大型數(shù)據(jù)庫產(chǎn)品OracleSQLServerSybaseDB2InformixSQLServer2000簡介MicrosoftSQLServer2000中文版(以后簡稱為SQLServer2000或SQLServer),是基于客戶機(jī)/服務(wù)器(Client/Server)模型的新一代大型關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(DBMS)。SQLServer2000是專為配合.NET體系結(jié)構(gòu)而設(shè)計的。它所提供的工具和支持系統(tǒng)能夠幫助客戶建立活動服務(wù)器頁面和COM+對象,從而實現(xiàn)商務(wù)邏輯并訪問由SQLServer進(jìn)行管理的數(shù)據(jù)。目前的最新版本是SQLServer2005SQLServer的官方網(wǎng)站:/china/sql1.1.1SQLServer2000的體系結(jié)構(gòu)與運(yùn)行環(huán)境
SQLServer2000是一個基于客戶機(jī)/服務(wù)器(C/S)模式的關(guān)系數(shù)據(jù)庫管理系統(tǒng)。客戶端應(yīng)用程序
SQLServer2000
提交SQL語句
查詢結(jié)果返回前臺
客戶端
服務(wù)器端
圖1.1SQLServer2000客戶機(jī)/服務(wù)器結(jié)構(gòu)示意圖
1.2.1SQLServer環(huán)境需求SQLServer2000常見的版本企業(yè)版(EnterpriseEdition)標(biāo)準(zhǔn)版(StandardEdition)個人版(PersonalEdition)開發(fā)版(DeveloperEdition)SQLServer2000各版本簡介企業(yè)版:作為生產(chǎn)數(shù)據(jù)庫服務(wù)器使用。是各個版本中功能最為強(qiáng)大、齊全而又最為復(fù)雜的版本。它包含了SQLServer數(shù)據(jù)庫以及分析服務(wù)的所有功能。標(biāo)準(zhǔn)版:作為小工作組或部門的數(shù)據(jù)庫服務(wù)器使用。對于中小型組織在可擴(kuò)展性、可用性、性能以及分析服務(wù)方面的要求不是特別高的情況下,是一個更好的選擇。個人版:供移動的用戶使用。其功能與標(biāo)準(zhǔn)版相當(dāng),但在某些方面會有所區(qū)別。開發(fā)版:供程序員用來開發(fā)將SQLServer2000用作數(shù)據(jù)存儲的應(yīng)用程序,只能將開發(fā)版作為開發(fā)和測試系統(tǒng)使用,不能作為生產(chǎn)服務(wù)器使用。安裝、運(yùn)行SQLServer2000的硬件需求(1)計算機(jī)Inter及其兼容計算機(jī),Pentium166Mz或者更高處理器或DECAlpha和其兼容系統(tǒng)。(2)內(nèi)存(RAM)企業(yè)版最少64MB內(nèi)存,其他版本最少需要32MB內(nèi)存,建議使用更多的內(nèi)存。(3)硬盤空間完全安裝(Full)需要180MB的空間,典型安裝(Typical)需要170MB的空間,最小安裝(Minimum)需要65MB的空間。2、安裝、運(yùn)行SQLServer2000的軟件需求SQLServer2000企業(yè)版必須運(yùn)行于安裝WindowsNTServerEnterpriseEdition4.0或者Windows2000AdvancedServer以及更高版本的操作系統(tǒng)下。SQLServer2000標(biāo)準(zhǔn)版必須運(yùn)行于安裝WindowsNTServerEnterpriseEdition4.0、WindowsNTServer4.0、Windows2000Server以及更高版本的操作系統(tǒng)下。SQLServer2000個人版可在多種操作系統(tǒng)下運(yùn)行,如可運(yùn)行于Windows9x,WindowsNT4.0或Windows2000的服務(wù)器版或工作站版的操作系統(tǒng)下。SQLServer2000開發(fā)者版可運(yùn)行于上述Windows9x以外的所有操作系統(tǒng)下。1.2.2SQLServer2000的安裝SQLServer2000的安裝過程與其它MicrosoftWindows系列產(chǎn)品類似。用戶可根據(jù)向?qū)崾?,選擇需要的選項一步一步地完成。1.3SQLServer工具和實用程序1.3.1企業(yè)管理器1.3.2服務(wù)管理器1.3.3查詢分析器1.3.1企業(yè)管理器企業(yè)管理器是基于一種新的被稱為微軟管理控制臺(MicrosoftManagementConsole)的公共服務(wù)器管理環(huán)境,它是SQLServer中最重要的一個管理工具。企業(yè)管理器不僅能夠配置系統(tǒng)環(huán)境和管理SQLServer,而且由于它能夠以層疊列表的形式來顯示所有的SQLServer對象,因而所有SQLServer對象的建立與管理都可以通過它來完成。利用企業(yè)管理器可以完成的操作管理SQLServer服務(wù)器;建立與管理數(shù)據(jù)庫;建立與管理表、視圖、存儲過程、觸發(fā)程序、角色、規(guī)則、默認(rèn)值等數(shù)據(jù)庫對象,以及用戶定義的數(shù)據(jù)類型;備份數(shù)據(jù)庫和事務(wù)日志、恢復(fù)數(shù)據(jù)庫;復(fù)制數(shù)據(jù)庫;設(shè)置任務(wù)調(diào)度;設(shè)置警報;提供跨服務(wù)器的拖放控制操作;管理用戶帳戶;建立Transact-SQL命令語句以及管理和控制SQLMail。圖1-20SQLServer企業(yè)管理器(EnterpriseManager)界面1.3.2服務(wù)管理器(ServiceManager)SQLServer服務(wù)管理器是在服務(wù)器端實際工作時最有用的實用程序,其界面如圖1-21所示。服務(wù)管理器用來啟動、暫停、繼續(xù)和停止數(shù)據(jù)庫服務(wù)器的實時服務(wù),其提供的服務(wù)包括:SQLServer、SQLServerAgent、MSDTC(MicrosoftDistributedTransactionCoordinator,微軟分布式事務(wù)協(xié)調(diào)器)。圖1-21SQLServer服務(wù)管理器(ServiceManager)界面1.3.3查詢分析器(QueryAnalyzer)SQLServer2000新的圖形化查詢分析器用于輸入和執(zhí)行Transaction-SQL語句,并且迅速查看這些語句的結(jié)果,以分析和處理數(shù)據(jù)庫中的數(shù)據(jù)。這是一個非常實用的工具,對掌握SQL語言,深入理解SQLServer的管理工作有很大幫助。第2章服務(wù)器管理2.2服務(wù)器注冊2.3服務(wù)器啟動、暫停和停止2.4服務(wù)器連接與斷開2.5服務(wù)器配置選項設(shè)置上一章返回目錄2.2服務(wù)器注冊所謂服務(wù)器注冊是指將網(wǎng)絡(luò)系統(tǒng)中的其它SQLServer服務(wù)器注冊到企業(yè)管理器中,以便于管理。注冊過程1.在企業(yè)管理器中,右鍵單擊“SQLServer組,選擇“新建SQLServer注冊”,就會出現(xiàn)如圖3-3所示的注冊SQLServer向?qū)υ捒?。圖2-3注冊服務(wù)器向?qū)υ捒?/p>
2.在注冊服務(wù)器向?qū)υ捒蛑胁贿x擇復(fù)選框,單擊“下一步”按鈕,就會出現(xiàn)選擇或創(chuàng)建服務(wù)器名稱對話框,如圖3-5所示。在可用服務(wù)器中選擇本機(jī)的服務(wù)器,如“702-12”,或者將本機(jī)右下角的服務(wù)器名稱復(fù)制到可用服務(wù)器中,并添加到右邊的方框中,然后單擊“下一步”。圖3-5選擇或創(chuàng)建服務(wù)器名稱3.出現(xiàn)選擇身份驗證模式對話框,即選擇WindowsNT身份驗證或SQLServer身份驗證。WindowsNT身份驗證可以使用戶只需維護(hù)、使用一個WindowsNT登錄帳戶和口令,而使用SQLServer身份驗證,則必須維護(hù)WindowsNT登錄帳戶和SQLServer登錄帳戶及口令。如圖3-6和圖3-7所示。我們上機(jī)時應(yīng)該選擇WindowsNT身份驗證圖3-6選擇身份驗證模式4.單擊“下一步”按鈕,就會出現(xiàn)選擇服務(wù)器組或創(chuàng)建服務(wù)器組對話框,如圖3-8所示圖3-8選擇服務(wù)器組或創(chuàng)建服務(wù)器組5.服務(wù)器組確定后,單擊“下一步”按鈕,就會出現(xiàn)確定注冊對話框,單擊“完成”按鈕,則企業(yè)管理器將注冊服務(wù)器,如下圖3-9所示。6.接著出現(xiàn)注冊SQLServer消息對話框,注冊成功后,按“關(guān)閉”按鈕結(jié)束設(shè)置。圖3-10注冊SQLServer消息2.3服務(wù)器啟動、暫停和停止啟動服務(wù)器,下面介紹常用的兩種方法:1.自動啟動服務(wù)器2.用企業(yè)管理器(EnterpriseManager)啟動暫停和關(guān)閉服務(wù)器的方法與啟動服務(wù)器的方法類似,只需在相應(yīng)的窗口中選擇“暫停(Pause)”或“停止(Stop)”選項即可。為了保險起見,我們通常會在停止運(yùn)行SQLServer之前先暫停SQLServer。其主要原因在于,一旦暫停SQLServer,將不再允許任何新的上線者,然而原先已聯(lián)機(jī)到SQLServer的用戶仍然能繼續(xù)作業(yè),這樣可以確保原來正在進(jìn)行中的作業(yè)不會中斷,而可以持續(xù)進(jìn)行并加以完成。暫停和關(guān)閉服務(wù)器2.4網(wǎng)絡(luò)服務(wù)器的連接在企業(yè)管理器中,從操作(Action)菜單中選擇新建SQLServer注冊,然后單擊下一步。稍作等待后,出現(xiàn)“注冊SQL向?qū)υ捒颉?。如下圖。2.4網(wǎng)絡(luò)服務(wù)器的連接3、在對話框的左邊列表中選擇需要連接的網(wǎng)絡(luò)服務(wù)器的名稱(也可以輸入其IP地址),然后將其添加到右邊的“添加服務(wù)器”列表中。4、在出現(xiàn)的對話框中選擇“SQL身份驗證登錄”。5、單擊“下一步”,進(jìn)入登錄對話框,并輸入用戶名:sa,密碼為空(機(jī)房的密碼已經(jīng)設(shè)為空),然后單擊“下一步”,“下一步”…直到完成。圖3-12連接SQLServer時的輸入登錄名和口令窗口2.5服務(wù)器配置選項設(shè)置使用SQLServer企業(yè)管理器配置服務(wù)器的操作方法為:在企業(yè)管理器的SQLServer組(Group)中用右鍵單擊所要進(jìn)行配置的服務(wù)器,從快捷菜單中選擇“屬性(Properties)”選項,就會出現(xiàn)如圖3-13所示的對話框,其中可以進(jìn)行服務(wù)器的屬性(配置選項)的設(shè)置。(注意:一般不用對其進(jìn)行配制,按默認(rèn)即可)圖3-13服務(wù)器屬性設(shè)置對話框第3章數(shù)據(jù)庫管理3.1數(shù)據(jù)庫的存儲結(jié)構(gòu)3.2創(chuàng)建、修改和刪除數(shù)據(jù)庫3.3數(shù)據(jù)庫備份3.4恢復(fù)數(shù)據(jù)庫3.5數(shù)據(jù)庫的維護(hù)上一章返回目錄3.2.1創(chuàng)建數(shù)據(jù)庫每個數(shù)據(jù)庫都由以下幾個部分的數(shù)據(jù)庫對象所組成:關(guān)系圖、表、視圖、存儲過程、用戶、角色、規(guī)則、默認(rèn)、用戶自定義數(shù)據(jù)類型和用戶自定義函數(shù)。每個SQLServer實例有四個系統(tǒng)數(shù)據(jù)庫(master、model、tempdb和msdb)以及一個或多個用戶數(shù)據(jù)庫,這些數(shù)據(jù)庫不能隨意刪除。記錄SQLServer系統(tǒng)的所有系統(tǒng)級別信息保存所有的臨時表和臨時存儲過程用作在系統(tǒng)上創(chuàng)建的所有數(shù)據(jù)庫的模板供代理程序調(diào)度警報和作業(yè)以及記錄操作員時使用創(chuàng)建數(shù)據(jù)庫的方法使用企業(yè)管理器(EnterpriseManager)創(chuàng)建數(shù)據(jù)庫使用Transact-SQL語言創(chuàng)建數(shù)據(jù)庫。(2)使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫(1)在企業(yè)管理器中,單擊工具欄中的圖標(biāo),或在數(shù)據(jù)庫文件夾或其下屬任一數(shù)據(jù)庫圖標(biāo)上單擊右鍵,選擇新建數(shù)據(jù)庫選項,就會出現(xiàn)如圖4-9所示的對話框。(2)在常規(guī)(General)頁框中,要求用戶輸入數(shù)據(jù)庫名稱以及排序規(guī)則名稱,上機(jī)時輸入數(shù)據(jù)庫名:Stu_db,排序規(guī)則按默認(rèn)即可。(3)點擊數(shù)據(jù)文件(DataFiles)頁框,從該頁框可以看到數(shù)據(jù)庫文件的邏輯名稱、存儲位置、初始容量大小和所屬文件組名稱,如圖4-10所示。(4)點擊事務(wù)日志(TransactionLog)頁框,該頁框用來設(shè)置事務(wù)日志文件信息,如圖4-11所示。(5)單擊圖4-11中的“確定”按鈕,則開始創(chuàng)建新的數(shù)據(jù)庫。圖4-9創(chuàng)建數(shù)據(jù)庫對話框中的常規(guī)頁框圖4-10創(chuàng)建數(shù)據(jù)庫對話框中的數(shù)據(jù)文件頁框圖4-11創(chuàng)建數(shù)據(jù)庫對話框中的事務(wù)日志頁框(3)使用Transact-SQL語言創(chuàng)建數(shù)據(jù)庫,語法如下:在查詢分析器中輸入以下語句:CREATEDATABASEdatabase_name[設(shè)置日志文件、默認(rèn)規(guī)則等的語句]3.2.2修改數(shù)據(jù)庫利用企業(yè)管理器修改數(shù)據(jù)庫右鍵單擊要修改的數(shù)據(jù)庫,選擇“屬性”,然后在屬性中修改即可。3.2.3刪除數(shù)據(jù)庫1.利用企業(yè)管理器刪除數(shù)據(jù)庫2.利用Drop語句刪除數(shù)據(jù)庫Drop語句可以從SQLServer中一次刪除一個或多個數(shù)據(jù)庫。其語法如下:Dropdatabasedatabase_name[,…n](在查詢分析器中輸入語句)3.3數(shù)據(jù)庫備份與還原右鍵單擊所要備份的數(shù)據(jù)庫選擇“所有任務(wù)”,選擇“備份”或“還原”即可。第4章數(shù)據(jù)庫對象的操作4.1數(shù)據(jù)類型4.2表操作4.3視圖操作4.4索引操作4.5存儲過程4.6觸發(fā)器4.7圖表上一章返回目錄4.1數(shù)據(jù)類型4.1.1系統(tǒng)數(shù)據(jù)類型4.1.2自定義數(shù)據(jù)類型4.1.1系統(tǒng)數(shù)據(jù)類型1.整型數(shù)據(jù)類型2.浮點數(shù)據(jù)類型3.字符數(shù)據(jù)類型4.日期和時間數(shù)據(jù)類型5.文本和圖形數(shù)據(jù)類型6.貨幣數(shù)據(jù)類型7.位數(shù)據(jù)類型8.二進(jìn)制數(shù)據(jù)類型9.特殊數(shù)據(jù)類型10.新增數(shù)據(jù)類型1.整型數(shù)據(jù)類型整型數(shù)據(jù)類型是最常用的數(shù)據(jù)類型之一,它主要用來存儲數(shù)值,可以直接進(jìn)行數(shù)據(jù)運(yùn)算,而不必使用函數(shù)轉(zhuǎn)換。int(integer):int(或integer)數(shù)據(jù)類型可以存儲從-231(-2,147,483,648)到231-1(2,147,483,647)范圍之間的所有正負(fù)整數(shù)。Smallint:可以存儲從-215(-32,768)到215-1范圍之間的所有正負(fù)整數(shù)。Tinyint:可以存儲從0到255范圍之間的所有正整數(shù)。2.浮點數(shù)據(jù)類型浮點數(shù)據(jù)類型用于存儲十進(jìn)制小數(shù)。Real:可以存儲正的或者負(fù)的十進(jìn)制數(shù)值,最大可以有7位精確位數(shù)。Float:可以精確到第15位小數(shù),其范圍從-1.79E-308到1.79E+308。3.字符數(shù)據(jù)類型字符數(shù)據(jù)類型可以用來存儲各種字母、數(shù)字符號和特殊符號。Char:其定義形式為char(n),每個字符和符號占用一個字節(jié)的存儲空間。Varchar:其定義形式為varchar(n)。用char數(shù)據(jù)類型可以存儲長達(dá)255個字符的可變長度字符串。4.日期和時間數(shù)據(jù)類型Datetime:用于存儲日期和時間的結(jié)合體。它可以存儲從公元1753年1月1日零時起到公元9999年12月31日23時59分59秒之間的所有日期和時間。Smalldatetime:與datetime數(shù)據(jù)類型類似,但其日期時間范圍較小,它存儲從1900年1月1日到2079年6月6日內(nèi)的日期。5.文本和圖形數(shù)據(jù)類型
Text:用于存儲大量文本數(shù)據(jù),其容量理論上為1到231-1(2,147,483,647)個字節(jié),但實際應(yīng)用時要根據(jù)硬盤的存儲空間而定。
Ntext:與text數(shù)據(jù)類型類似,存儲在其中的數(shù)據(jù)通常是直接能輸出到顯示設(shè)備上的字符,顯示設(shè)備可以是顯示器、窗口或者打印機(jī)。Image:用于存儲照片、目錄圖片或者圖畫,其理論容量為231-1(2,147,483,647)個字節(jié)。6.貨幣數(shù)據(jù)類型Money:用于存儲貨幣值,存儲在money數(shù)據(jù)類型中的數(shù)值以一個正數(shù)部分和一個小數(shù)部分存儲在兩個4字節(jié)的整型值中,存儲范圍為-922337213685477.5808到922337213685477.5808,精度為貨幣單位的萬分之一。Smallmoney:與money數(shù)據(jù)類型類似,但其存儲的貨幣值范圍比money數(shù)據(jù)類型小,其存儲范圍為-214748.3468到214748.3467。7.位數(shù)據(jù)類型Bit:稱為位數(shù)據(jù)類型,其數(shù)據(jù)有兩種取值:0和1,長度為1字節(jié)。8.二進(jìn)制數(shù)據(jù)類型Binary:其定義形式為binary(n),數(shù)據(jù)的存儲長度是固定的,即n+4字節(jié),當(dāng)輸入的二進(jìn)制數(shù)據(jù)長度小于n時,余下部分填充0。
Varbinary:其定義形式為varbinary(n),數(shù)據(jù)的存儲長度是變化的,它為實際所輸入數(shù)據(jù)的長度加上4字節(jié)。其它含義同binary。4.2表操作4.2.1創(chuàng)建表4.2.2增加、刪除和修改字段4.2.3創(chuàng)建、刪除和修改約束4.2.4查看表格4.2.1創(chuàng)建表在SQLServer2000中,每個數(shù)據(jù)庫中最多可以創(chuàng)建200萬個表,用戶創(chuàng)建數(shù)據(jù)庫表時,最多可以定義1024列,也就是可以定義1024個字段。
SQLServer2000提供了兩種方法創(chuàng)建數(shù)據(jù)庫表,第一種方法是利用企業(yè)管理器(EnterpriseManager)創(chuàng)建表;另一種方法是利用Transact-SQL語句中的create命令創(chuàng)建表。1.利用EnterpriseManager創(chuàng)建表在EnterpriseManager中,展開指定的服務(wù)器和數(shù)據(jù)庫,打開想要創(chuàng)建新表的數(shù)據(jù)庫,用右鍵單擊表對象,從彈出的快捷菜單中選擇新建表選項,或者在工具欄中選擇圖標(biāo),就會出現(xiàn)新建表對話框,在該對話框中,可以定義列的以下屬性:列名稱、數(shù)據(jù)類型、長度、精度、小數(shù)位數(shù)、是否允許為空、缺省值、標(biāo)識列、標(biāo)識列的初始值、標(biāo)識列的增量值和是否有行的標(biāo)識。然后根據(jù)提示進(jìn)行設(shè)置。1.利用EnterpriseManager創(chuàng)建表上機(jī)練習(xí):利用“企業(yè)管理器分別建立表Stu_info、Subject、CJ、SKB注意:表的結(jié)構(gòu)和數(shù)據(jù)均在Excel文件數(shù)據(jù)庫表結(jié)構(gòu).xls中。2.利用CreateTable命令創(chuàng)建表格式:CreateTableTable_Name(字段名1字段類型,(寬度)[Primarykey][notnull],字段名2字段類型,(寬度)[Primarykey][notnull],……)上機(jī)練習(xí):利用命令建立表Jsgl_Hpsx注意:其語句和格式均在Excel文件Jsgl_Hpsx.xls中。4.3查詢分析器的使用SQL的查詢分析器是SQL語句輸入和執(zhí)行的窗口,具有強(qiáng)大的功能,在實際開發(fā)中被廣泛的使用。查詢分析器的打開:在“企業(yè)管理器”中,單擊“工具”--“SQL查詢分析器”即可打開SQL的查詢分析器。4.4、數(shù)據(jù)的導(dǎo)入SQL數(shù)據(jù)庫可以與Access、Excel等文件實現(xiàn)數(shù)據(jù)導(dǎo)入、導(dǎo)出。4.4.1導(dǎo)入Access數(shù)據(jù)庫利用DTS導(dǎo)入、導(dǎo)出向?qū)?dǎo)入Access數(shù)據(jù)庫的步驟如下:(1)打開EnterpriseManager(企業(yè)管理器),選定需導(dǎo)入數(shù)據(jù)的數(shù)據(jù)庫,右鍵單擊,選擇“所有任務(wù)”---導(dǎo)入數(shù)據(jù),啟動數(shù)據(jù)導(dǎo)入向?qū)Чぞ撸蜁霈F(xiàn)歡迎使用向?qū)υ捒?。(2)單擊“下一步”按鈕,則出現(xiàn)選擇數(shù)據(jù)源對話框。(3)按照提示選擇數(shù)據(jù)源,單擊“下一步”,選擇導(dǎo)入的目的地,單擊“下一步”----下一步----完成。4.4.2、導(dǎo)入Excel文件數(shù)據(jù)庫(1)啟動企業(yè)管理器,展開選定的服務(wù)器,用右鍵單擊該服務(wù)器圖標(biāo),從快捷菜單中選擇所有任務(wù)(alltasks),然后再從子菜單中選擇導(dǎo)入數(shù)據(jù),啟動數(shù)據(jù)導(dǎo)入向?qū)Чぞ?,就會出現(xiàn)歡迎使用向?qū)υ捒?,如圖9-1所示。(2)單擊“下一步”按鈕,則出現(xiàn)選擇數(shù)據(jù)源對話框,如圖9-18所示。(3)按照提示進(jìn)行相應(yīng)操作即可。注意:數(shù)據(jù)類型的轉(zhuǎn)換和數(shù)據(jù)的準(zhǔn)確性。4.5、數(shù)據(jù)的導(dǎo)出1.導(dǎo)出數(shù)據(jù)庫至Access(1)打開企業(yè)管理器,展開指定的服務(wù)器,用右鍵單擊該服務(wù)器圖標(biāo),從彈出的快捷菜單中選擇所有任務(wù)(alltasks)選項,然后再從子菜單中選擇導(dǎo)出數(shù)據(jù)選項,則會出現(xiàn)數(shù)據(jù)轉(zhuǎn)換服務(wù)導(dǎo)入和導(dǎo)出向?qū)υ捒颍鐖D9-28所示,它顯示了該導(dǎo)出向?qū)芡瓿傻牟僮鳌?、其他操作跟數(shù)據(jù)的導(dǎo)入類似。注意:導(dǎo)出到Access數(shù)據(jù)庫時,數(shù)據(jù)庫須先建立。3.4附加數(shù)據(jù)庫當(dāng)本機(jī)的某數(shù)據(jù)庫需要“復(fù)制”到另一臺計算機(jī)中,則通常使用“附加數(shù)據(jù)庫”的方法。方法:1、在目的計算機(jī)的企業(yè)管理器中,右鍵單擊“數(shù)據(jù)庫”項,選擇“所有任務(wù)”--“附加數(shù)據(jù)庫”。2、按彈出窗口的提示進(jìn)行操作即可。第5章Transact-SQL語言
Transact-SQL是Microsoft公司對SQL(結(jié)構(gòu)化數(shù)據(jù)查詢語言)最新標(biāo)準(zhǔn)的擴(kuò)展,是SQLServer2000核心組件之一。程序設(shè)計人員要編寫具有實際意義的C/S或B/S模式下的數(shù)據(jù)庫應(yīng)用程序,必須借助于Transact-SQL語言。返回目錄Transact-SQL語言主要組成部分Transact-SQL(T-SQL)是SQLServer的編程語言,是結(jié)構(gòu)化查詢語言SQL的增強(qiáng)版本,它主要包括:數(shù)據(jù)定義語言(DDL,DataDefinitionLanguage)數(shù)據(jù)操縱語言(DML,DataManipularionLanguage)數(shù)據(jù)控制語言(DCL,DataControlLanguage)系統(tǒng)存儲過程(SystemStoredProcedure)一些附加的語言元素5.1數(shù)據(jù)定義語言(DDL)數(shù)據(jù)定義語言是指用來定義和管理數(shù)據(jù)庫以及數(shù)據(jù)庫中的各種對象的語句,這些語句包括CREATE、ALTER和DROP等語句。在SQLServer2000中,數(shù)據(jù)庫對象包括表、視圖、觸發(fā)器、存儲過程、規(guī)則、缺省、用戶自定義的數(shù)據(jù)類型等。這些對象的創(chuàng)建、修改和刪除等都可以通過使用CREATE、ALTER、DROP等語句來完成。程序清單5-1:創(chuàng)建數(shù)據(jù)庫的一個例子CREATEDATABASEJsgl_Hpsx程序清單5-2:修改視圖的一個例子ALTERVIEWyourviewASSELECTtitle,ytd_salesFROMtitlesWHEREtype='mod_cook'GOSELECT*FROMyourviewGO
5.2數(shù)據(jù)操縱語言(DML)數(shù)據(jù)操縱語言是指用來查詢、添加、修改和刪除數(shù)據(jù)庫中數(shù)據(jù)的語句,這些語句包括SELECT、INSERT、UPDATE、DELETE等。這是在實際的開發(fā)中,用得最多的一種語言。一、SELECT語句SELECT語句的語法形式如下:SELECTselect_list
[INTOnew_table]
FROMtable_source
[WHEREsearch_condition]
[GROUPBYgroup_by_expression]
[HAVINGsearch_condition]
[ORDERBYorder_expression[ASC|DESC]]幾種常用語句的用法SELECT子句用于指定所選擇的要查詢的特定表中的列,它可以是星號(*)、表達(dá)式、列表、變量等。INTO子句用于指定所要生成的新表的名稱。FROM子句用于指定要查詢的表或者視圖,最多可以指定16個表或者視圖,用逗號相互隔開。WHERE子句用來限定查詢的范圍和條件。GROUPBY子句是分組查詢子句。HAVING子句用于指定分組子句的條件。Select、From、Into子句的用法SELECT子句用于指定所選擇的要查詢的特定表中的列,它可以是星號(*)、表達(dá)式、列表、變量等。FROM子句用于指定要查詢的表或者視圖,最多可以指定16個表或者視圖,用逗號相互隔開。例1:從Stu_info表中查詢所有同學(xué)的“學(xué)號、姓名、性別和年齡信息。Select學(xué)號,姓名,性別,年齡fromstu_ifnoSelect*fromstu_infoINTO子句用于指定所要生成的新表的名稱。例3:從Stu_info表中查詢所有同學(xué)的“學(xué)號、姓名、性別和年齡信息,并保存到新表stu_part中.Select學(xué)號,姓名,性別,年齡intostu_partfromStu_infoWhere子句的用法
Where子句用來限定查詢的范圍和條件。形式:Select….From….Where條件1、用于表示W(wǎng)here條件的關(guān)系運(yùn)算符號有:=、>、<、>=、<=、<>等例1:從Stu_info表中查詢所有男同學(xué)信息。Select*fromstu_infoWhere性別=‘男’2、用于表示W(wǎng)here條件的邏輯運(yùn)算符號有:OR、AND、NOT例2:從Stu_info表中查詢所有年齡大于20的女同學(xué)。Select*fromstu_infoWhere性別=‘女’and年齡>20例3:從Stu_info表中查詢所有軟件2班和會計1班的同學(xué)。、Select*fromstu_infoWhere所在班級=‘軟件2班’or所在班級=‘會計1班’Where子句的用法
3、用于表示W(wǎng)here條件的特殊運(yùn)算符號有:%(代表任意字符)、Between(介于)、Like(象)等例1:從Stu_info表中查詢所有姓李的同學(xué)信息。Select*fromstu_infoWhere姓名Like‘李%’例2:從CJ表中查詢所有成績介于80到90分之間的同學(xué)信息。Select*fromCJWhere成績Between80and90例3:從Stu_info表中查詢所有1班的同學(xué)信息。Select*fromstu_infoWhere班級名Like‘%1班’Groudby、Having、Orderby子句的用法
GROUPBY子句可以將查詢結(jié)果按照指定的字段分組,它常常與一些統(tǒng)計函數(shù)共用。統(tǒng)計函數(shù):Count(*):計數(shù),Sum(求和字段)求和,Avg(求平均值字段)求平均值。HAVING子句可以實現(xiàn)對分組后的結(jié)果按照某種條件進(jìn)行篩選。例1:統(tǒng)計Stu_info表中男女同學(xué)的人數(shù)和平均年齡。Select性別Count(*)as人數(shù),avg(年齡)as平均年齡fromstu_infoGroupby性別例2:從成績表中篩選出選修了一門以上課程的學(xué)生學(xué)號及其選修門數(shù)。Select學(xué)號,Count(*)as選修門數(shù)FromCJGroupby學(xué)號HavingCount(*)>1注意:as用于重新指定查詢的列標(biāo)題Groudby、Having、Orderby子句的用法
ORDERBY子句可以根據(jù)一個列或者多個列來排序查詢結(jié)果,在該子句中,既可以使用列名,也可以使用相對列號。ASC表示升序排列,DESC表示降序排列,默認(rèn)是升序排列例1:將Stu_info
表中的同學(xué)按照年齡從高到低降序排列。Select*fromStu_infoOrderby年齡Desc在實際的開發(fā)過程中,一個SQL查詢語句一次往往使用到多個表。在關(guān)系型數(shù)據(jù)庫中,一個涉及到多個表的查詢稱為連接查詢,連接查詢是關(guān)系型數(shù)據(jù)庫中最重要的操作。我們主要介紹最簡單的自然連接,為了區(qū)別列來源,可以在連接中對表指定別名。例1、列出所有選修了課程的學(xué)生的學(xué)號、課程名稱、課程號、成績。selecta.學(xué)號,a.課程號,a.成績,b.課程名fromCja,subjectbwhere(a.課程號=b.課程號)(b.課程號=c.課程號)例2:列出所有選修了課程的學(xué)生的學(xué)號、姓名、課程號、成績。selecta.學(xué)號,a.課程號,a.成績,b.姓名fromCja,Stu_infobwhere(a.學(xué)號=b.學(xué)號)二、基于多表的連接查詢。
例3、列出所有學(xué)生的學(xué)習(xí)成績,要求輸出姓名、課程名稱、課程號、成績。selecta.姓名,c.課程名,b.成績,b.課程號fromstu_infoa,cjb,subjectcwhere(a.學(xué)號=b.學(xué)號)and(b.課程號=c.課程號)帶條件的多表查詢:例4、列出選修了“C801”課程且成績在90分以上的所有學(xué)生清單。(包括學(xué)號,姓名,性別,年齡,所在院系,課程號)selecta.學(xué)號,姓名,性別,年齡,所在院系,b.課程號fromstu_infoa,cjbwherea.學(xué)號=b.學(xué)號andb.課程號='C801'and成績>90
在SQL語言中,一個“Select查詢塊”可以嵌套在另一個查詢塊的Where字句中,則稱這種查詢?yōu)榍短撞樵?。嵌套查詢可以用多個簡單查詢構(gòu)成十分復(fù)雜的查詢,從而大大增強(qiáng)SQL的查詢能力。嵌套查詢處理過程:先處理內(nèi)層查詢,在處理外層查詢。例1:查詢“沈香娜”同學(xué)所在班級的所有學(xué)生名單。select學(xué)號,姓名,性別,年齡,所在院系,班級名fromstu_infowhere班級名=(select班級名fromstu_infowhere姓名='沈香娜')三、嵌套查詢。例2:列出與“劉成鍇”同學(xué)在同一個系的所有女學(xué)生的名單。select學(xué)號,姓名,性別,年齡,所在院系,班級名fromstu_infowhere所在院系=(select所在院系fromstu_infowhere姓名=‘劉成鍇’)and性別=‘女’例3:列出年齡最大的學(xué)生信息(在Where字句中使用集合函數(shù))Select*fromstu_infoWhere年齡=(selectmax(年齡)fromstu_info)三、嵌套查詢。
在嵌套查詢中,由于一個子查詢的結(jié)果往往是一個集合,因此IN子句經(jīng)常被用來確定某個列值是否在內(nèi)部查詢的結(jié)果集中。例1:列出學(xué)習(xí)“C801”、“C804”的學(xué)生學(xué)號、姓名、課程名和成績。Selecta.學(xué)號,姓名,b.成績,c.課程名FromStu_infoa,cjb,SubjectcWherea.學(xué)號=b.學(xué)號andb.課程號=c.課程號andc.課程號In('C801','C804')四、帶IN的子查詢
例2:列出所有選修了“高等數(shù)學(xué)”的同學(xué)學(xué)號、姓名和所在院系。Select學(xué)號,姓名,所在院系FromStu_infoWhere學(xué)號In(Select學(xué)號fromCjWhere課程號In(Select課程號fromSubjectWhere課程名='高等數(shù)學(xué)'))四、帶IN的子查詢
在SQL語言中,關(guān)鍵字Exists代表“存在”的含義,它只查找滿足條件的那些記錄,一旦找到一個匹配的記錄則馬上停止查找。例1:列出所有選修了課程“C801”的學(xué)生清單Select學(xué)號,姓名,性別,所在院系FromStu_infoWhereExists(Select*From成績表Where學(xué)號=Stu_info.學(xué)號and課程號=‘C801’)語句處理過程:首先從Stu_info取出第一條記錄,看其學(xué)號是否與內(nèi)循環(huán)的相關(guān)字段(學(xué)號)相匹配,若是則將該記錄放入結(jié)果集,然后繼續(xù)取Stu_info的下一條記錄,重復(fù)這一過程,直到Stu_info表的記錄全部檢查完為止。五、帶Exists的子查詢
[UNION]關(guān)鍵字可以將兩個或多個結(jié)果表進(jìn)行邏輯聯(lián)合,列出在各個結(jié)果表中返回記錄。注意:1、參加[UNION]操作的各個結(jié)果表的字段個數(shù)必須相同,對應(yīng)的數(shù)據(jù)類型也必須相同。2、使用[UNION]將結(jié)果表進(jìn)行邏輯聯(lián)合時,系統(tǒng)將會自動去掉重復(fù)的記錄。例1:顯示計算機(jī)系的學(xué)生以及性別為女的學(xué)生名單。Select*fromstu_infoWhere所在院系=‘計算機(jī)’UNIONSelect*fromstu_infoWhere性別=‘女’六、聯(lián)合查詢
例2:顯示講授了“C801”課程或者講授了“C803”課程的教師的姓名、講授課程號和班級名Select教師名,課程號,班級名fromskbWhere課程號='C801'UNIONSelect教師名,課程號,班級名fromskbWhere課程號='C803'六、聯(lián)合查詢
有些問題使用子查詢解決會更簡單,有些問題使用連接查詢可以變得簡單,因此要根據(jù)實際情況進(jìn)行選擇:1、當(dāng)需要頻繁地計算統(tǒng)計函數(shù)的值并將其用在外查詢中作比較時,應(yīng)該使用子查詢。2、當(dāng)SELECT中的列來自于多于一個表時,則應(yīng)該使用連接查詢。
七、子查詢和連接查詢的選擇1、添加記錄。格式:Insertinto表名(字段列表)values(值列表)如:為stu_info表插入一條新記錄Insertintostu_info(學(xué)號,姓名,性別,年齡,所在院系,班級名)values(‘200203004’,‘陳動’,‘男’,20,‘計算機(jī)’,‘軟件2班’)注意:字段名和它的值必須一一對應(yīng),字符型字段的值必須用單引號引起來。八、更新操作語句。2、修改記錄。格式:Update表名Set字段名1=新值1,字段名2=新值2,……[Where條件]如:將學(xué)號為‘200203001’的同學(xué)所選修的課程號為“C801”的課程成績調(diào)整為95分。UpdateCjset成績=95where學(xué)號='200203001'and課程號='C801'思考:將所有同學(xué)的年齡都增加1,怎么編寫其SQL語言。Updatestu_infoset年齡=年齡+13、刪除記錄。格式:DeleteFrom表名[Where條件]如:刪除表stu_info中學(xué)號為‘200203004’的同學(xué)信息。deletefromstu_infowhere學(xué)號=‘200203004’思考:若要刪除該表的所有記錄,SQL語句該怎樣編寫?deletefromstu_info4、復(fù)制表。方法:insertinto新表名select*from舊表完成數(shù)據(jù)的復(fù)制。例:復(fù)制授課表SKB5、刪除表DropTable表名一、視圖簡介視圖是從一個或多個表導(dǎo)出的虛表。視圖不是實際上的表,它僅僅定義了有關(guān)的數(shù)據(jù)關(guān)系,只是將表中的數(shù)據(jù)按一定的關(guān)系聯(lián)系在一起,并將其顯示出來的一個“虛表”,所以視圖所對應(yīng)的數(shù)據(jù)不進(jìn)行實際存儲,數(shù)據(jù)庫中只存儲視圖的定義。視圖常用于集中、簡化和定制顯示數(shù)據(jù)庫中的信息。視圖象是一個過濾器,對于一個或多個基表中的數(shù)據(jù)進(jìn)行篩選、引用。一般對于視圖的查詢不受任何限制,但要通過視圖來修改基表的數(shù)據(jù)則有一些限制。第六章視圖
視圖的優(yōu)點:為用戶集中信息,簡化用戶的數(shù)據(jù)查詢和處理屏蔽數(shù)據(jù)庫的復(fù)雜性簡化用戶權(quán)限的管理便于數(shù)據(jù)共享可以重新組織數(shù)據(jù)以便輸出到其他應(yīng)用程序中第六章視圖
二、視圖的創(chuàng)建。
在Microsoft
SQLServer2000中創(chuàng)建視圖主要有以下3種方法:使用向?qū)?、使用企業(yè)管理器、使用Transact-SQL命令。1、使用企業(yè)管理器創(chuàng)建視圖。(1)啟動企業(yè)管理器,展開要使用的數(shù)據(jù)庫(如Stu_db)。(2)鼠標(biāo)右擊該數(shù)據(jù)庫中的【視圖】圖標(biāo),在彈出的菜單中選擇【新建視圖】命令,彈出新視圖對話框,右鍵單擊圖標(biāo)窗格打開【添加表】對話框。(3)基表或視圖選擇完成之后,表books的結(jié)構(gòu)出現(xiàn)在視圖創(chuàng)建/修改窗口的數(shù)據(jù)表顯示區(qū)。在表中選擇需要在視圖中顯示的列,此時在窗口下邊的視圖定義列顯示表格中和SQL語句區(qū)中也會相應(yīng)地出現(xiàn)所選擇的列和SQL語句,如需加入限制條件、函數(shù)或計算列,可以手動在SQL語句區(qū)輸入。(4)單擊工具欄按鈕運(yùn)行所定義的視圖,在視圖執(zhí)行結(jié)果顯示區(qū)顯示出這個視圖的查詢結(jié)果。用戶可以發(fā)現(xiàn)當(dāng)定義了WHERE子句時,視圖執(zhí)行之后,在基表相應(yīng)列的右邊會出現(xiàn)一個圖標(biāo),并且在視圖定義列的表格中出現(xiàn)相應(yīng)的列名與準(zhǔn)則,即視圖的查詢條件。2、使用Transact-SQL命令格式:
CREATEVIEWview_name[(column[,…n])[WITHENCRYPTION]ASSelect_statement[WITHCHECKOPTION]命令中的參數(shù)含義如下:WITHENCRYPTION:給系統(tǒng)表syscomments中視圖定義的SELECT命令加密。AS:說明視圖要完成的操作。Select_statement:定義視圖的SELECT命令。
需要特別注意,視圖中的SELECT命令不能包括INTO、ORDERBY等子句。另外,臨時表也不能在查詢中引用。WITHCHECKOPTION:強(qiáng)制所有通過視圖修改的數(shù)據(jù)滿足select_Statement語句中指定的選擇條件。例:使用語句創(chuàng)建視圖VIEW_Student2,查詢學(xué)生的學(xué)號、姓名、性別、年齡、課程號、成績等信息。CREATEVIEWVIEW_Student2ASSELECTStu_Info.學(xué)號,Stu_Info.姓名,Stu_Info.性別,Stu_Info.年齡,CJ.課程號,CJ.成績FROMStu_InfoINNERJOINCJONStu_Info.學(xué)號=CJ.學(xué)號三、使用企業(yè)管理器修改視圖視圖建立之后,由于某種原因(如基表中的列發(fā)生了改變或需要在視圖中增/刪若干列等),需要對視圖進(jìn)行修改。利用企業(yè)管理器修改視圖的步驟如下:(1)展開服務(wù)器,展開數(shù)據(jù)庫。(2)單擊【視圖】圖標(biāo),在窗口右邊顯示出當(dāng)前數(shù)據(jù)庫中的所有視圖。(3)右鍵單擊要修改的視圖名,在彈出的快捷菜單中選擇【設(shè)計視圖】命令,便可進(jìn)入視圖設(shè)計窗口,用戶可以在這個窗口中對視圖進(jìn)行修改。還有一種利用視圖屬性對話框修改視圖的方法,用鼠標(biāo)雙擊要修改的視圖名,彈出視圖屬性對話框,在這個對話框中顯示出定義視圖的Transact-SQL命令,用戶可以直接在這個對話框中修改。四、視圖的使用對于視圖的使用主要包括視圖的檢索、通過視圖對基表進(jìn)行插入、修改、刪除行的操作。對于視圖的檢索幾乎沒有限制,但是對通過視圖實現(xiàn)表的插入、修改、刪除操作則有一定的限制條件。視圖檢索
視圖定義之后,用戶便可以像查詢基本表一樣查詢視圖。視圖的查詢總是轉(zhuǎn)換為對它所依賴的基表的等價查詢。利用Transact-SQL的SELECT命令和企業(yè)管理器都可以對視圖查詢,其使用方法與基本表的查詢完全一樣,這里不再贅述。例:檢索視圖VIEW_Student2中學(xué)號為‘200203001’的學(xué)生信息。五、利用視圖更新表數(shù)據(jù)視圖也可以使用INSERT命令插入行,當(dāng)執(zhí)行更新操作命令時,實際上是向視圖所引用的基表中執(zhí)行了相應(yīng)的更新操作。視圖更新命令與基本表中使用的命令格式完全一樣。注意:如果視圖中有下面所述屬性,則插入、更新或刪除基表將失敗。更新所影響的列來自于兩個以上的表。視圖的列是從集合函數(shù)派生的。視圖中的SElECT命令包含GROUPBY子句或DISTINCT選項。視圖的列是從常量或表達(dá)式派生的。
例1:在視圖View_Student2中插入一條記錄。InsertintoView_Student2(學(xué)號,姓名,性別,年齡)values(‘200203005’,‘陳動’,‘男’,20)執(zhí)行語句后,我們可以在表Stu_info中看到結(jié)果。
六、刪除視圖視圖創(chuàng)建后,隨時都可以刪除。刪除操作很簡單,通過企業(yè)管理器或DROPVIEW命令都可以完成。利用企業(yè)管理器刪除視圖操作步驟如下:(1)在當(dāng)前數(shù)據(jù)庫中單擊視圖圖標(biāo)。(2)在右邊視圖列表窗口內(nèi)單擊需刪除的視圖。(3)單擊工具欄上的刪除圖標(biāo),彈出刪除視圖對話框,如圖5-24所示。(4)單擊【全部除去】按鈕,將選中的視圖刪除。
利用DROPVIEW命令刪除視圖語法格式為DROPVIEW{view}[,...n]DROPVIEW命令可以刪除多個視圖,各視圖名之間用逗號分隔。視圖刪除后,在系統(tǒng)表中存儲的關(guān)于視圖的信息也會被隨之刪除,對視圖的權(quán)限同樣被刪除。刪除視圖View_Student2DropViewView_Student2一、什么是存儲過程?應(yīng)用程序與SQLServer數(shù)據(jù)庫交互執(zhí)行某些操作有兩種方法:一種是存儲在本地的應(yīng)用程序記錄操作命令,應(yīng)用程序向SQLServer發(fā)送每一個命令,并對返回的數(shù)據(jù)進(jìn)行處理;另一種是在SQLServer中定義某個過程,其中記錄了一系列的操作,每次應(yīng)用程序只需調(diào)用該過程就可完成該操作。這種在SQLServer中定義的過程被稱為存儲過程。所以,存儲過程就是T-SQL語句的預(yù)編譯集合,是一組T-SQL語句構(gòu)成的代碼塊。第七章SQL的存儲過程。
二、存儲過程的功能SQLServer中的存儲過程類似于編程語言中的過程和函數(shù),它具有以下功能:接受輸入?yún)?shù)并返回多個輸出值。包含T-SQL語句用以完成特定的SQLServer操作。返回一個指示成功與否及失敗原因的狀態(tài)代碼給調(diào)用它的過程。
第七章SQL的存儲過程。
三、存儲過程的優(yōu)點存儲過程有以下幾個優(yōu)點:允許模塊化編程,增強(qiáng)代碼的重用性和共享性使用存儲過程可以加快運(yùn)行速度使用存儲過程可以減少網(wǎng)絡(luò)流量。存儲過程可以作為安全性機(jī)制。四、存儲過程的種類存儲過程有以下幾種類型:系統(tǒng)存儲過程、用戶存儲過程、臨時存儲過程、擴(kuò)展存儲過程、遠(yuǎn)程存儲過程。
第七章SQL的存儲過程。
系統(tǒng)存儲過程是由系統(tǒng)提供的過程,可以作為命令直接執(zhí)行。系統(tǒng)存儲過程存儲在master數(shù)據(jù)庫中,其前綴為sp_。系統(tǒng)存儲過程可以在任意一個數(shù)據(jù)庫中執(zhí)行。用戶存儲過程是創(chuàng)建在用戶數(shù)據(jù)庫中的存儲過程。其名稱前面一般不加sp_前綴。主要在應(yīng)用程序中使用,以完成特定的任務(wù)。臨時存儲過程屬于用戶存儲過程。如果用戶存儲過程前面加上符號“#”,則該存儲過程稱為局部臨時存儲過程,只能在一個用戶會話中使用;如果用戶存儲過程前面加上符號“##”,則該過程稱為全局存儲過程,可以在所有用戶會話中使用。擴(kuò)展存儲過程是在SQLServer環(huán)境之外執(zhí)行的動態(tài)鏈接庫DLL,其前綴為xp_。盡管這些動態(tài)鏈接庫在SQLServer環(huán)境之外,但它們可以被加載到SQLServer系統(tǒng)中,并且按照存儲過程的方式執(zhí)行。遠(yuǎn)程存儲過程是指從遠(yuǎn)程服務(wù)器上調(diào)用的存儲過程,或者是從連接到另外一個服務(wù)器上的客戶機(jī)上調(diào)用的存儲過程。
在SQLServer中創(chuàng)建存儲過程主要有以下3種方法:使用向?qū)?、使用企業(yè)管理器、使用Transact-SQL命令。使用企業(yè)管理器創(chuàng)建存儲過程1、利用企業(yè)管理器創(chuàng)建存儲過程步驟如下:(1)展開要在其中創(chuàng)建存儲過程的數(shù)據(jù)庫。(2)右擊【存儲過程】圖標(biāo),在快捷菜單中選擇【新建存儲過程...】命令,打開新建存儲過程對話框。(3)在新建存儲過程對話框的文本框中書寫存儲過程定義。【檢查語法】按鈕用于檢查存儲過程語法的正確性。定義完存儲過程后,單擊【確定】按鈕保存存儲過程。注意:[OWNER].[PROCEDURENAME]指存儲過程的所有者和名字,一般所有者可以省略,但名字不能省。例1:創(chuàng)建一個簡單的存儲過程,查詢學(xué)生的相關(guān)信息。
四、創(chuàng)建存儲過程2、利用語句創(chuàng)建存儲過程簡單的語句格式:CreateProc存儲過程名asSQL語句。例1:創(chuàng)建一個簡單的存儲過程,查詢學(xué)生的相關(guān)信息。CREATEPROCEDUREStu_info_Proc2AsSELECT*FROMStu_info
第四章SQL的存儲過程。
1、使用企業(yè)管理器進(jìn)行修改修改存儲過程只需在相應(yīng)數(shù)據(jù)庫的存儲過程對象項中找到要修改的存儲過程,雙擊存儲過程打開存儲過程屬性窗口,在窗口中直接進(jìn)行修改,完成后單擊【確定】按鈕。2、使用查詢分析器進(jìn)行修改打開查詢分析器,按F8鍵(或單擊工具欄上的對象瀏覽器按鈕),在對象瀏覽器窗口中,打開存儲過程所在的數(shù)據(jù)庫,打開[存儲過程]文件夾,右擊要修改的存儲過程名(如test),在彈出的菜單中選擇【編輯】(如圖7-13所示),則存儲過程出現(xiàn)在查詢分析器的編輯窗口中,修改完畢保存即可。
五、存儲過程的修改。
簡單存儲過程的執(zhí)行:Exec存儲過程名
六、存儲過程的執(zhí)行。1、使用企業(yè)管理器刪除存儲過程展開數(shù)據(jù)庫后,單擊存儲過程圖標(biāo),在右邊窗口中出現(xiàn)的存儲過程中選擇要刪除的過程,單擊右鍵,在彈出的快捷菜單中單擊【刪除】選項,即將存儲過程刪除。2、使用T-SQL命令刪除存儲過程利用DROPPROCEDURE命令刪除存儲過程,其語法結(jié)構(gòu)如下:DROPPROCEDURE{procedure}[,...n]例:刪除存儲過程Stu_info_Proc2七、刪除存儲過程。
8.1數(shù)據(jù)庫技術(shù)概述
8.2數(shù)據(jù)模型
8.3數(shù)據(jù)庫設(shè)計
第八章:補(bǔ)充知識(數(shù)據(jù)庫技術(shù)概述)8.1數(shù)據(jù)庫技術(shù)概述8.1.1數(shù)據(jù)庫基本概念1、數(shù)據(jù)(Data)
數(shù)據(jù)是描述現(xiàn)實世界事物的符號記錄,是用物理符號記錄的可以鑒別的信息。2、數(shù)據(jù)庫(DataBase,簡記為DB)數(shù)據(jù)庫是長期存儲在計算機(jī)內(nèi)、有組織的、可共享的數(shù)據(jù)集合。這種集合具有如下特點:最小的冗余度應(yīng)用程序?qū)?shù)據(jù)資源共享數(shù)據(jù)獨(dú)立性高統(tǒng)一管理和控制3、數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡記為DBMS)數(shù)據(jù)庫管理系統(tǒng)的基本功能數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一個數(shù)據(jù)管理軟件,它的基本功能包括以下幾個方面:數(shù)據(jù)定義功能用戶通過數(shù)據(jù)定義語言(DDL,DataDefinitionLanguage)它可以方便地對數(shù)據(jù)庫中的數(shù)據(jù)對象進(jìn)行定義。數(shù)據(jù)操縱功能用戶可以使用數(shù)據(jù)操縱語言(DML,DataManipulationLanguage)操縱數(shù)據(jù),實現(xiàn)對數(shù)據(jù)的基本操作。如查詢、插入、刪除和修改。數(shù)據(jù)庫的運(yùn)行管理功能數(shù)據(jù)庫在建立、運(yùn)行和維護(hù)時由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理和控制,以保證數(shù)據(jù)的安全性、完整性,對并發(fā)操作的控制以及發(fā)生故障后的系統(tǒng)恢復(fù)等。數(shù)據(jù)庫的建立和維護(hù)功能它包括數(shù)據(jù)庫初始數(shù)據(jù)的輸入、轉(zhuǎn)換功能,數(shù)據(jù)庫的轉(zhuǎn)儲、恢復(fù)功能,數(shù)據(jù)庫的重組織功能和性能監(jiān)視、分析功能等。數(shù)據(jù)庫系統(tǒng)(DataBaseSystem,簡記為DBS)
數(shù)據(jù)庫系統(tǒng)一般由數(shù)據(jù)庫、操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員(DBA)和用戶構(gòu)成。4、數(shù)據(jù)庫系統(tǒng)8.1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生與發(fā)展
數(shù)據(jù)管理技術(shù)經(jīng)歷了如下三個階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。1、人工管理階段這一階段是指20世紀(jì)50年代中期以前,計算機(jī)主要用于科學(xué)計算,當(dāng)時的計算機(jī)硬件狀況是:外存只有磁帶、卡片、紙帶,沒有磁盤等直接存取的存儲設(shè)備;軟件狀況是:沒有操作系統(tǒng),沒有管理數(shù)據(jù)的軟件,數(shù)據(jù)處理方式是批處理。人工管理階段的特點是:數(shù)據(jù)不保存、數(shù)據(jù)無專門軟件進(jìn)行管理、數(shù)據(jù)不共享、數(shù)據(jù)不具有獨(dú)立性、數(shù)據(jù)無結(jié)構(gòu)。2、文件系統(tǒng)階段這一階段從20世紀(jì)50年代后期到60年代中期,計算機(jī)硬件和軟件都有了一定的發(fā)展。計算機(jī)不僅用于科學(xué)計算,還大量用于管理。這時硬件方面已經(jīng)有了磁盤、磁鼓等直接存取的存儲設(shè)備。在軟件方面,操作系統(tǒng)中已經(jīng)有了數(shù)據(jù)管理軟件,一般稱為文件系統(tǒng)。處理方式上不僅有了文件批處理,而且能夠聯(lián)機(jī)實時處理
文件階段的數(shù)據(jù)管理特點是:數(shù)據(jù)可以長期保存、由文件系統(tǒng)管理數(shù)據(jù)、程序與數(shù)據(jù)有一定的獨(dú)立性、數(shù)據(jù)共享性差、數(shù)據(jù)獨(dú)立性差、記錄內(nèi)部有結(jié)構(gòu)。3、數(shù)據(jù)庫系統(tǒng)階段從20世紀(jì)60年代后期以來,計算機(jī)硬件和軟件技術(shù)得到了飛速發(fā)展,為了解決多用戶、多應(yīng)用共享數(shù)據(jù),使數(shù)據(jù)為盡可能多的應(yīng)用服務(wù),文件系統(tǒng)已不能滿足應(yīng)用需求,一種新的數(shù)據(jù)管理技術(shù)--數(shù)據(jù)庫技術(shù)應(yīng)運(yùn)而生。數(shù)據(jù)庫系統(tǒng)階段具有以下的特點:數(shù)據(jù)結(jié)構(gòu)化在描述數(shù)據(jù)時不僅描述數(shù)據(jù)本身,還描述數(shù)據(jù)之間的聯(lián)系。數(shù)據(jù)共享性高、冗余度小、易擴(kuò)充數(shù)據(jù)可以被多個應(yīng)用共享。這不僅大大減小了數(shù)據(jù)的冗余度、節(jié)約存儲空間、減少存取時間,而且可以避免數(shù)據(jù)之間的不相容性和不一致性。數(shù)據(jù)獨(dú)立性高數(shù)據(jù)獨(dú)立性包括物理獨(dú)立性和邏輯獨(dú)立性。數(shù)據(jù)的物理獨(dú)立性是指當(dāng)數(shù)據(jù)的物理存儲改變時,應(yīng)用程序不用改變。數(shù)據(jù)的邏輯獨(dú)立性是指當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時,用戶應(yīng)用程序不用改變。統(tǒng)一的數(shù)據(jù)管理和控制數(shù)據(jù)庫對系統(tǒng)中的用戶是共享資源。計算機(jī)的共享一般是并發(fā)的,即多個用戶可以同時存取數(shù)據(jù)庫中的數(shù)據(jù),甚至可以同時存取數(shù)據(jù)庫中同一個數(shù)據(jù)。因此,數(shù)據(jù)庫管理系統(tǒng)必須提供以下幾個方面的數(shù)據(jù)控制保護(hù)功能。數(shù)據(jù)的安全性(security)保護(hù)數(shù)據(jù)的完整性(integrity)控制數(shù)據(jù)庫恢復(fù)(recovery)并發(fā)(concurrency)控制8.1.3數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)1、集中式系統(tǒng)DBMS和應(yīng)用程序以及與用戶終端進(jìn)行通信的軟件等都運(yùn)行在一臺宿主計算機(jī)上,所有的數(shù)據(jù)處理都是在宿主計算機(jī)中進(jìn)行。宿主計算機(jī)一般是大型機(jī)、中型機(jī)或小型機(jī)。應(yīng)用程序和DBMS之間通過操作系統(tǒng)管理的共享內(nèi)存或應(yīng)用任務(wù)區(qū)來進(jìn)行通信,DBMS利用操作系統(tǒng)提供的服務(wù)來訪問數(shù)據(jù)庫。終端通常是非智能的,本身沒有處理能力。集中系統(tǒng)的主要優(yōu)點是:具有集中的安全控制,以及處理大量數(shù)據(jù)和支持大量并發(fā)用戶的能力。集中系統(tǒng)的主要缺點是:購買和維持這樣的系統(tǒng)一次性投資太大,并且不適合分布處理。2、個人計算機(jī)系統(tǒng)與大型系統(tǒng)不同,通常個人計算機(jī)(微機(jī))上的DBMS功能和數(shù)據(jù)庫應(yīng)用功能是結(jié)合在一個應(yīng)用程序中的,這類DBMS(如FoxPro、Acssce)的功能靈活,系統(tǒng)結(jié)構(gòu)簡潔,運(yùn)行速度快,但這類DBMS的數(shù)據(jù)共享性、安全性、完整性等控制功能比較薄弱。3、客戶/服務(wù)器系統(tǒng)
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建師范大學(xué)《中國傳統(tǒng)音樂概論》2022-2023學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《教育史》2023-2024學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《高觀點下的中學(xué)數(shù)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024屆上海市七寶高中高三第一次調(diào)研測數(shù)學(xué)試題
- 景陽岡課件教材幫
- 《機(jī)電一體化技術(shù)基礎(chǔ)》 教案 卓民 第1-3章 機(jī)電一體化概述-傳感與檢測技術(shù)
- 2024年北京客運(yùn)車駕駛員培訓(xùn)資料
- 2024年??诳瓦\(yùn)資格證緊急救護(hù)試題和答案
- 2024年山南從業(yè)資格證模擬考試題庫
- 2024年鄂爾多斯客運(yùn)從業(yè)資格證考試模擬
- 新質(zhì)生產(chǎn)力:復(fù)合概念、發(fā)展基礎(chǔ)與系統(tǒng)創(chuàng)新路徑
- 2024年個人車位租賃合同參考范文(三篇)
- 江西省九江市修水縣2024屆九年級上學(xué)期期中考試數(shù)學(xué)試卷(含答案)
- 2024年山東省濟(jì)南市中考數(shù)學(xué)真題(含答案)
- 二手門市銷售合同范本
- 2024年安全員A證試題庫(附答案)
- 浙江省溫州市蒼南縣2023-2024學(xué)年八年級上學(xué)期期中考試英語試題
- 部編版五年級上冊《交流平臺·初試身手·習(xí)作例文》課件
- 新蘇教版六年級上冊科學(xué)全冊知識點
- 2.2生命活動的主要承擔(dān)者-蛋白質(zhì)(公開課)
- 2024-2030年中國汽摩配行業(yè)運(yùn)營態(tài)勢及重點企業(yè)發(fā)展分析報告
評論
0/150
提交評論