版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
SQLServer2005案例教程數(shù)計(jì)系目錄第1章SQLServer2005使用基礎(chǔ)第2章數(shù)據(jù)庫(kù)創(chuàng)建與管理第3章表的設(shè)計(jì)與實(shí)現(xiàn)第4章操作數(shù)據(jù)庫(kù)數(shù)據(jù)第5章檢索數(shù)據(jù)庫(kù)數(shù)據(jù)第6章索引與視圖第7章Transact-SQL編程第8章管理事務(wù)和鎖第9章存儲(chǔ)過程和觸發(fā)器第10章安全性管理2/159第1章SQLServer2005使用基礎(chǔ)1.1數(shù)據(jù)庫(kù)技術(shù)概述1.2SQLServer2005概述1.3SQLServer2005主要組件1.4SQLServer服務(wù)器管理3/1591.1數(shù)據(jù)庫(kù)技術(shù)概述1.1.1數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)是為特定目的而組織和表示的信息、表以及其他對(duì)象的集合。數(shù)據(jù)庫(kù)中的數(shù)據(jù)是結(jié)構(gòu)化的,沒有不必要的冗余,并為多種應(yīng)用提供服務(wù);數(shù)據(jù)的存儲(chǔ)獨(dú)立于使用數(shù)據(jù)的應(yīng)用程序;對(duì)數(shù)據(jù)庫(kù)插入新數(shù)據(jù),修改和檢索原有數(shù)據(jù)都能夠按一種可控制的方式進(jìn)行;數(shù)據(jù)庫(kù)可以用于搜索、排序以及重新組合數(shù)據(jù)等目的。數(shù)據(jù)庫(kù)中的數(shù)據(jù)分為系統(tǒng)數(shù)據(jù)和用戶數(shù)據(jù)兩類。數(shù)據(jù)庫(kù)可以包含各種類型的對(duì)象。第1章目錄4/1591.1數(shù)據(jù)庫(kù)技術(shù)概述1.1.2關(guān)系型數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)支持的數(shù)據(jù)模型主要分為3種類型,即層次模型、網(wǎng)狀模型和關(guān)系模型。目前以關(guān)系模型應(yīng)用最為廣泛。支持關(guān)系模型的數(shù)據(jù)庫(kù)通常也稱為關(guān)系型數(shù)據(jù)庫(kù)。關(guān)系型數(shù)據(jù)庫(kù)在表中以數(shù)據(jù)行和數(shù)據(jù)列的形式存儲(chǔ)信息,并通過使用一個(gè)表的指定列中的數(shù)據(jù)在另一個(gè)表中查找其他數(shù)據(jù)來執(zhí)行搜索。在關(guān)系型數(shù)據(jù)庫(kù)中,數(shù)據(jù)是以行和列的形式存儲(chǔ)的,這些行和列組成了表,一組表和其他對(duì)象一起組成了數(shù)據(jù)庫(kù)。在關(guān)系型數(shù)據(jù)庫(kù)中,數(shù)據(jù)分別存儲(chǔ)在不同的表中。每個(gè)表包含某個(gè)特定主題的數(shù)據(jù)。表中的一列通常也稱為字段,每個(gè)字段用于存儲(chǔ)某種特性的數(shù)據(jù)。表中的一行通常也稱為一條記錄,每條記錄包含表中一項(xiàng)的相關(guān)信息。第1章目錄5/1591.1數(shù)據(jù)庫(kù)技術(shù)概述1.1.3數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)是對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理的系統(tǒng)軟件,它提供了用戶與數(shù)據(jù)庫(kù)之間的軟件界面,可以用于創(chuàng)建、管理和維護(hù)數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)管理系統(tǒng)通常具有以下功能。數(shù)據(jù)庫(kù)定義功能。數(shù)據(jù)庫(kù)操作功能。數(shù)據(jù)控制功能。數(shù)據(jù)安全控制數(shù)據(jù)完整性控制數(shù)據(jù)庫(kù)恢復(fù)數(shù)據(jù)庫(kù)并發(fā)控制第1章目錄6/1591.2SQLServer2005概述1.2.1SQLServer2005的版本SQLServer2005企業(yè)版(32位和64位)SQLServer2005標(biāo)準(zhǔn)版(32位和64位)SQLServer2005工作組版(僅適用于32位)SQLServer2005開發(fā)人員版(32位和64位)SQLServer2005免費(fèi)版(僅適用于32位)1.2.2SQLServer2005的新增功能NotificationServices增強(qiáng)功能ReportingServices增強(qiáng)功能新增的ServiceBroker數(shù)據(jù)庫(kù)引擎增強(qiáng)功能數(shù)據(jù)訪問接口方面的增強(qiáng)功能AnalysisServices的增強(qiáng)功能IntegrationServices的增強(qiáng)功能復(fù)制增強(qiáng)工具和實(shí)用工具增強(qiáng)功能第1章目錄7/1591.2SQLServer2005概述1.2.3SQLServer2005的安裝使用SQLServer2005安裝向?qū)Э梢詠戆惭b所有SQLServer組件:包括數(shù)據(jù)庫(kù)引擎、分析服務(wù)、報(bào)表服務(wù)、集成服務(wù)、管理工具以及文檔和教程。選擇要安裝的組件設(shè)置實(shí)例名稱和服務(wù)帳戶設(shè)置身份驗(yàn)證模式和設(shè)置排序規(guī)則設(shè)置報(bào)表服務(wù)器安裝選項(xiàng)1.2.4驗(yàn)證SQLServer安裝“開始”菜單中的MicrosoftSQLServer2005程序組SQLServer系統(tǒng)數(shù)據(jù)庫(kù)和示例數(shù)據(jù)庫(kù)SQLServer服務(wù)的相關(guān)信息第1章目錄8/1591.3SQLServer2005主要組件1.3.1SQLServer服務(wù)器組件數(shù)據(jù)庫(kù)引擎分析服務(wù)報(bào)表服務(wù)集成服務(wù)1.3.2SQLServerManagementStudio集成環(huán)境,用于訪問、配置、控制、管理和開發(fā)SQLServer的所有組件。常用窗口已注冊(cè)的服務(wù)器,對(duì)象資源管理器,查詢編輯器,查詢結(jié)果,模板資源管理器,屬性窗口,解決方案資源管理器 SQLServerManagementStudio常用功能。第1章目錄9/1591.3SQLServer2005主要組件1.3.3SQLServer配置管理器SQLServer配置管理器用于管理與SQLServer相關(guān)聯(lián)的服務(wù)、配置SQLServer使用的網(wǎng)絡(luò)協(xié)議以及從SQLServer客戶端計(jì)算機(jī)管理網(wǎng)絡(luò)連接配置。SQLServer配置管理器是一個(gè)Microsoft管理控制臺(tái)管理單元,可以從“開始”菜單進(jìn)行訪問,也可以將其添加到其他任何Microsoft管理控制臺(tái)顯示中。1.3.4SQLServerProfilerSQLServerProfiler是用于從服務(wù)器捕獲SQLServer2005事件的工具。事件保存在一個(gè)跟蹤文件中,可在以后對(duì)該文件進(jìn)行分析,也可以在試圖診斷某個(gè)問題時(shí),用它來重播某一系列的步驟。1.3.5數(shù)據(jù)庫(kù)引擎優(yōu)化顧問數(shù)據(jù)庫(kù)引擎優(yōu)化顧問用于分析在一個(gè)或多個(gè)數(shù)據(jù)庫(kù)中運(yùn)行的工作負(fù)荷的性能效果。工作負(fù)荷是對(duì)要優(yōu)化的數(shù)據(jù)庫(kù)執(zhí)行的一組Transact-SQL語句。分析數(shù)據(jù)庫(kù)的工作負(fù)荷效果后,數(shù)據(jù)庫(kù)引擎優(yōu)化顧問會(huì)提供在SQLServer數(shù)據(jù)庫(kù)中添加、刪除或修改物理設(shè)計(jì)結(jié)構(gòu)的建議。第1章目錄10/1591.3SQLServer2005主要組件1.3.6BusinessIntelligenceDevelopmentStudioBusinessIntelligenceDevelopmentStudio是包含了專用于SQLServer商業(yè)智能的其他項(xiàng)目類型的MicrosoftVisualStudio2005也是用于開發(fā)商業(yè)解決方案的主要環(huán)境,其中包括AnalysisServices、IntegrationServices和ReportingServices項(xiàng)目。1.3.7命令提示實(shí)用工具SQLServer2005還提供了一組命令提示實(shí)用工具。例如bcp實(shí)用工具、dta實(shí)用工具。第1章目錄11/1591.4SQLServer服務(wù)器管理1.4.1管理服務(wù)器注冊(cè)服務(wù)器基于服務(wù)器創(chuàng)建查詢將對(duì)象資源管理器連接到服務(wù)器編輯服務(wù)器的注冊(cè)信息導(dǎo)出已注冊(cè)的服務(wù)器信息導(dǎo)出更改服務(wù)器的狀態(tài)刪除服務(wù)器的注冊(cè)信息1.4.2管理服務(wù)器組創(chuàng)建服務(wù)器組編輯服務(wù)器組的屬性服務(wù)器組中注冊(cè)新服務(wù)器將注冊(cè)服務(wù)器移動(dòng)到服務(wù)器組中向服務(wù)器組中導(dǎo)入注冊(cè)服務(wù)器刪除服務(wù)器組第1章目錄12/159第2章數(shù)據(jù)庫(kù)創(chuàng)建與管理2.1數(shù)據(jù)庫(kù)概述2.2創(chuàng)建數(shù)據(jù)庫(kù) 2.3修改數(shù)據(jù)庫(kù)2.4備份和還原數(shù)據(jù)庫(kù)13/1592.1數(shù)據(jù)庫(kù)概述第2章目錄2.1.1數(shù)據(jù)庫(kù)基本概念SQLServer數(shù)據(jù)庫(kù)由表的集合組成。表上有幾種類型的控制,例如約束、觸發(fā)器、默認(rèn)值和自定義用戶數(shù)據(jù)類型,用于保證數(shù)據(jù)的有效性。一個(gè)SQLServer實(shí)例可以支持多個(gè)數(shù)據(jù)庫(kù)。每個(gè)數(shù)據(jù)庫(kù)可以存儲(chǔ)來自其他數(shù)據(jù)庫(kù)的相關(guān)數(shù)據(jù)或不相關(guān)數(shù)據(jù)。在SQLServer中,數(shù)據(jù)庫(kù)分為兩種類型:系統(tǒng)數(shù)據(jù)庫(kù)和用戶數(shù)據(jù)庫(kù)。2.1.2文件與文件組1.數(shù)據(jù)庫(kù)文件主要數(shù)據(jù)庫(kù)文件、次要數(shù)據(jù)庫(kù)文件和事務(wù)日志文件。2.文件組每個(gè)數(shù)據(jù)庫(kù)有一個(gè)主要文件組。如果在數(shù)據(jù)庫(kù)中創(chuàng)建對(duì)象時(shí)沒有指定對(duì)象所屬的文件組,對(duì)象將被分配給默認(rèn)文件組。使用文件和文件組時(shí)需要考慮的因素。14/1592.1數(shù)據(jù)庫(kù)概述第2章目錄2.1.3事務(wù)日志事務(wù)日志用于記錄所有事務(wù)以及每個(gè)事務(wù)對(duì)數(shù)據(jù)庫(kù)所做的修改。事務(wù)日志是數(shù)據(jù)庫(kù)的重要組件,如果系統(tǒng)出現(xiàn)故障,則可能需要使用事務(wù)日志將數(shù)據(jù)庫(kù)恢復(fù)到一致狀態(tài)。事務(wù)日志支持的操作。SQLServer數(shù)據(jù)庫(kù)引擎事務(wù)日志的特征。2.1.4系統(tǒng)數(shù)據(jù)庫(kù)mastermsdbmodelResourcetempdbdistribution15/1592.1數(shù)據(jù)庫(kù)概述第2章目錄2.1.5數(shù)據(jù)庫(kù)狀態(tài)和文件狀態(tài)1.數(shù)據(jù)庫(kù)狀態(tài)ONLINEOFFLINERESTORINGRECOVERINGRECOVERYPENDINGSUSPECTEMERGENCY2.文件狀態(tài)ONLINEOFFLINERESTORINGRECOVERYPENDING16/1592.2創(chuàng)建數(shù)據(jù)庫(kù)第2章目錄2.2.1使用SSMS創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù),就是確定數(shù)據(jù)庫(kù)的名稱、所有者、大小、增長(zhǎng)方式以及存儲(chǔ)該數(shù)據(jù)庫(kù)的文件和文件組等信息的過程。在一個(gè)SQLServer實(shí)例中,最多可以創(chuàng)建32767個(gè)數(shù)據(jù)庫(kù)。創(chuàng)建數(shù)據(jù)庫(kù)時(shí),model數(shù)據(jù)庫(kù)中的所有用戶定義對(duì)象都將復(fù)制到所有新創(chuàng)建的數(shù)據(jù)庫(kù)中。使用SQLServerManagementStudio創(chuàng)建數(shù)據(jù)庫(kù)。2.2.2使用SQL語句創(chuàng)建數(shù)據(jù)庫(kù)CREATEDATABASE語法格式Transact-SQL語法約定CREATEDATABASE中的組成部分【案例2.1】使用CREATEDATABASE語句創(chuàng)建數(shù)據(jù)庫(kù)17/1592.3修改數(shù)據(jù)庫(kù)第2章目錄2.3.1設(shè)置數(shù)據(jù)庫(kù)選項(xiàng)自動(dòng)選項(xiàng)AUTO_CLOSEAUTO_CREATE_STATISTICSAUTO_UPDATE_STATISTICSAUTO_SHRINK游標(biāo)選項(xiàng)CURSOR_CLOSE_ON_COMMITCURSOR_DEFAULT數(shù)據(jù)庫(kù)可用性選項(xiàng)OFFLINE|ONLINE|EMERGENCYREAD_ONLY|READ_WRITESINGLE_USER|RESTRICTED_USER|MULTI_USER日期相關(guān)性優(yōu)化選項(xiàng)DATE_CORRELATION_OPTIMIZATION外部訪問選項(xiàng)參數(shù)化選項(xiàng)恢復(fù)選項(xiàng)ServiceBroker選項(xiàng)快照隔離選項(xiàng)SQL選項(xiàng)設(shè)置數(shù)據(jù)庫(kù)選項(xiàng)ALTERDATABASEsp_configure【案例2.3】將MyDB數(shù)據(jù)庫(kù)的恢復(fù)模式由完全模式更改為簡(jiǎn)單模式。18/1592.3修改數(shù)據(jù)庫(kù)第2章目錄2.3.2擴(kuò)展數(shù)據(jù)庫(kù)默認(rèn)情況下,SQLServer根據(jù)創(chuàng)建數(shù)據(jù)庫(kù)時(shí)指定的增長(zhǎng)參數(shù)自動(dòng)擴(kuò)展數(shù)據(jù)庫(kù)。通過為現(xiàn)有數(shù)據(jù)庫(kù)文件分配更多的空間或在創(chuàng)建新文件,還可以通過手動(dòng)方式來擴(kuò)展數(shù)據(jù)庫(kù)。如果現(xiàn)有的文件已滿,則可能需要擴(kuò)展數(shù)據(jù)或事務(wù)日志的空間。如果數(shù)據(jù)庫(kù)已經(jīng)用完分配給它的空間且不能自動(dòng)增長(zhǎng),則會(huì)出現(xiàn)錯(cuò)誤。增加數(shù)據(jù)庫(kù)的大小使用SQLServerManagementStudioALTERDATABASE語句【案例2.4】19/1592.3修改數(shù)據(jù)庫(kù)第2章目錄2.3.3收縮數(shù)據(jù)庫(kù)1.自動(dòng)收縮數(shù)據(jù)庫(kù)2.使用DBCC
SHRINKDATABASE收縮數(shù)據(jù)庫(kù)3.使用DBCC
SHRINKFILE收縮數(shù)據(jù)庫(kù)4.使用SQLServerManagementStudio收縮文件2.3.4擴(kuò)展事務(wù)日志當(dāng)一個(gè)數(shù)據(jù)庫(kù)增長(zhǎng)或數(shù)據(jù)庫(kù)修改活動(dòng)增加時(shí),可能需要對(duì)事務(wù)日志進(jìn)行擴(kuò)展。如果事務(wù)日志使用完了空間,SQLServer便不能記錄事務(wù),在這種情況下不允許對(duì)數(shù)據(jù)進(jìn)行修改。事務(wù)日志進(jìn)行擴(kuò)展使用SQLServerManagementStudioALTERDATABASE語句【案例2.5】20/1592.3修改數(shù)據(jù)庫(kù)第2章目錄2.3.5創(chuàng)建文件組文件組是在數(shù)據(jù)庫(kù)中對(duì)文件進(jìn)行分組的一種管理機(jī)制。文件組不能獨(dú)立于數(shù)據(jù)庫(kù)文件創(chuàng)建。在首次創(chuàng)建數(shù)據(jù)庫(kù)或者以后將更多文件添加到數(shù)據(jù)庫(kù)時(shí),可以創(chuàng)建文件組。但是,一旦將文件添加到數(shù)據(jù)庫(kù),就不可能再將這些文件移到其他文件組。一個(gè)文件不能是多個(gè)文件組的成員。文件組只能包含數(shù)據(jù)文件。事務(wù)日志文件不能是文件組的一部分。創(chuàng)建文件組使用SQLServerManagementStudio對(duì)象資源管理器ALTERDATABASE語句【案例2.6】21/1592.3修改數(shù)據(jù)庫(kù)第2章目錄2.3.6分離和附加數(shù)據(jù)庫(kù)1.分離數(shù)據(jù)庫(kù)使用對(duì)象資源管理器使用sp_detach_db2.附加數(shù)據(jù)庫(kù)使用對(duì)象資源管理器使用CREATEDATABASE語句【案例2.7】2.3.7重命名數(shù)據(jù)庫(kù)使用對(duì)象資源管理器ALTERDATABASE【案例2.8】使用ALTERDATABASE語句重命名數(shù)據(jù)庫(kù)22/1592.3修改數(shù)據(jù)庫(kù)第2章目錄2.3.8更改數(shù)據(jù)庫(kù)所有者sp_changedbowner'login',remap_alias_flag2.3.9刪除數(shù)據(jù)庫(kù)使用對(duì)象資源管理器使用DROPDATABASE23/1592.4備份和還原數(shù)據(jù)庫(kù)第2章目錄2.4.1備份數(shù)據(jù)庫(kù)使用對(duì)象資源管理器使用BACKUPDATABASE【案例2.9】2.4.2還原數(shù)據(jù)庫(kù)使用對(duì)象資源管理器RESTOREDATABASE24/159第3章表的設(shè)計(jì)與實(shí)現(xiàn)3.1表的設(shè)計(jì)
3.2數(shù)據(jù)類型3.3創(chuàng)建和修改表25/1593.1表的設(shè)計(jì)第3章目錄3.1.1制訂表規(guī)劃確定表的下列特征表要存儲(chǔ)什么對(duì)象表中每一列的數(shù)據(jù)類型和長(zhǎng)度表中哪些列允許空值是否要使用以及在何處使用約束、默認(rèn)值和規(guī)則使用何種索引以及在何處使用索引哪些列是主鍵或外鍵繪制數(shù)據(jù)庫(kù)模型圖26/1593.1表的設(shè)計(jì)第3章目錄3.1.2規(guī)范化邏輯設(shè)計(jì)規(guī)范化的好處和缺點(diǎn)數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)則表應(yīng)該有一個(gè)標(biāo)識(shí)符表應(yīng)只存儲(chǔ)單一類型實(shí)體的數(shù)據(jù)表應(yīng)避免可為空的列表不應(yīng)有重復(fù)的值或列3.1.3聯(lián)機(jī)事務(wù)處理與決策支持?jǐn)?shù)據(jù)庫(kù)應(yīng)用程序分為兩種主要類型聯(lián)機(jī)事務(wù)處理(OLTP)注意事項(xiàng)聯(lián)機(jī)分析處理(OLAP)注意事項(xiàng)27/1593.1表的設(shè)計(jì)第3章目錄3.1.4表的類型標(biāo)準(zhǔn)表已分區(qū)表臨時(shí)表本地臨時(shí)表全局得時(shí)表系統(tǒng)表28/1593.1表的設(shè)計(jì)第3章目錄3.1.4表的類型標(biāo)準(zhǔn)表已分區(qū)表臨時(shí)表本地臨時(shí)表全局得時(shí)表系統(tǒng)表29/1593.2數(shù)據(jù)類型第3章目錄3.2.1數(shù)據(jù)類型概述SQLServer2005提供了28種系統(tǒng)數(shù)據(jù)類型,分為以下類別。數(shù)字?jǐn)?shù)據(jù)類型日期和時(shí)間數(shù)據(jù)類型字符串?dāng)?shù)據(jù)類型其他數(shù)據(jù)類型3.2.2數(shù)字?jǐn)?shù)據(jù)類型整數(shù)類型bigint、int、smallint、tinyint和bit小數(shù)類型float(n)和real、decimal(p,s)和numeric(p,s)以及money和smallmoney30/1593.2數(shù)據(jù)類型第3章目錄3.2.3字符串?dāng)?shù)據(jù)類型普通字符串char(n)、varchar(n)和textUnicode字符串nchar(n)、nvarchar(n)和ntext二進(jìn)制數(shù)據(jù)類型binary(n)、varbinary(n)和image3.2.4日期和時(shí)間數(shù)據(jù)類型datetimesmalldatetime日期數(shù)據(jù)的輸入格式時(shí)間數(shù)據(jù)的輸入格式31/1593.2數(shù)據(jù)類型第3章目錄3.2.5其他數(shù)據(jù)類型cursorsql_varianttabletimestampuniqueidetifierxml3.2.6別名數(shù)據(jù)類型什么是別名數(shù)據(jù)類型創(chuàng)建別名數(shù)據(jù)類型CREATETYPE在對(duì)象資源管理器中創(chuàng)建刪除別名數(shù)據(jù)類型DROPTYPE在對(duì)象資源管理器中刪除32/1593.3創(chuàng)建和修改表第3章目錄3.3.1創(chuàng)建表使用表設(shè)計(jì)器創(chuàng)建表使用CREATETABLE語句創(chuàng)建表【案例3.1】創(chuàng)建StudentInfo數(shù)據(jù)庫(kù),創(chuàng)建別名數(shù)據(jù)類型class_number,創(chuàng)建表Class。3.3.2添加和刪除列使用表設(shè)計(jì)器使用ALTERTABLE語句【案例3.2】創(chuàng)建表Course,添加列。33/1593.3創(chuàng)建和修改表第3章目錄3.3.3修改列的屬性表中的每一列都有一組屬性,例如名稱、數(shù)據(jù)類型、為空性以及數(shù)據(jù)長(zhǎng)度等。列的所有屬性構(gòu)成表中列的定義。創(chuàng)建表之后,還可以根據(jù)需要對(duì)列的屬性進(jìn)行修改。設(shè)置列屬性使用表設(shè)計(jì)器使用ALTERTABLE語句【案例3.3】修改Course表。3.3.4創(chuàng)建和修改標(biāo)識(shí)符列使用IDENTITY屬性實(shí)現(xiàn)標(biāo)識(shí)符列。使用ROWGUIDCOL屬性定義GUID列注意事項(xiàng)【案例3.4】將Course表中CourseID列設(shè)置為該表的標(biāo)識(shí)符列。34/1593.3創(chuàng)建和修改表第3章目錄3.3.5創(chuàng)建和修改主鍵什么是主鍵創(chuàng)建主鍵在創(chuàng)建表時(shí)可以創(chuàng)建單個(gè)PRIMARYKEY約束作為表定義的一部分。如果表已存在,并且沒有PRIMARYKEY約束,則可以在該表中添加PRIMARYKEY約束。當(dāng)使用表設(shè)計(jì)器創(chuàng)建或修改表時(shí)創(chuàng)建PRIMARYKEY約束使用CREATETABLE語句在創(chuàng)建新表時(shí)設(shè)置主鍵使用帶有ADD子句的ALTERTABLE語句為現(xiàn)有表設(shè)置主鍵【案例3.5】創(chuàng)建表CourseAssignation,主鍵是由3個(gè)列組成?!景咐?.6】將Class表中的ClassID列設(shè)置為該表的主鍵,將Course表中CourseID列設(shè)置為該表的標(biāo)識(shí)符列兼用作主鍵。35/1593.3創(chuàng)建和修改表第3章目錄3.3.6創(chuàng)建和修改惟一約束惟一約束即UNIQUE約束。通過創(chuàng)建惟一約束可以確保在非主鍵列中不輸入重復(fù)的值。UNIQUE約束和PRIMARYKEY約束的比較創(chuàng)建惟一約束創(chuàng)建表時(shí),可以創(chuàng)建UNIQUE約束作為表定義的一部分。如果表已經(jīng)存在,可以添加UNIQUE約束(假設(shè)組成UNIQUE約束的列或列組合僅包含惟一的值)。使用CREATETABLE語句創(chuàng)建表時(shí)創(chuàng)建UNIQUE約束使用帶有ADD子句的ALTERTABLE語句在現(xiàn)有表中創(chuàng)建UNIQUE約束使用ALTERTABLE還可以從表中刪除UNIQUE約束【案例3.7】在Course表的CourseName列上創(chuàng)建UNIQUE約束。36/1593.3創(chuàng)建和修改表第3章目錄3.3.7創(chuàng)建和修改檢查約束檢查約束即CHECK約束。檢查約束通過限制列可接受的值以強(qiáng)制域的完整性。CHECK約束通過不基于其他列中的數(shù)據(jù)的邏輯表達(dá)式確定有效值。創(chuàng)建表時(shí)可以創(chuàng)建CHECK約束作為表定義的一部分。如果表已經(jīng)存在,則可以添加CHECK約束。使用表設(shè)計(jì)器創(chuàng)建或修改表時(shí),可以在表中創(chuàng)建CHECK約束或從表中刪除CHECK約束。使用CREATETABLE語句創(chuàng)建表時(shí)創(chuàng)建CHECK約束使用帶有ADD子句的ALTERTABLE語句在現(xiàn)有的表中創(chuàng)建CHECK約束【案例3.8】創(chuàng)建Student表,創(chuàng)建創(chuàng)建CHECK約束。37/1593.3創(chuàng)建和修改表第3章目錄3.3.8創(chuàng)建和修改列的默認(rèn)值在數(shù)據(jù)庫(kù)中,記錄中的每列均必須有值,即使該值是NULL。在實(shí)際應(yīng)用中可能會(huì)有這種情況:必須向表中加載一行數(shù)據(jù)但不知道某一列的值,或該值尚不存在。如果列允許空值,就可以為行加載空值。由于可能不希望有可為空的列,因此最好是為列定義DEFAULT定義(如果合適)。創(chuàng)建表時(shí),可以創(chuàng)建DEFAULT定義作為表定義的一部分。如果某個(gè)表已經(jīng)存在,則可以為其添加DEFAULT定義。表中的每一列都可以包含一個(gè)DEFAULT定義。如果某個(gè)DEFAULT定義已經(jīng)存在,則可以修改或刪除該定義?!景咐?.9】創(chuàng)建Teacher表,設(shè)置DEFAULT定義。38/1593.3創(chuàng)建和修改表第3章目錄3.3.9創(chuàng)建和修改外鍵外鍵(FK)是用于建立和加強(qiáng)兩個(gè)表數(shù)據(jù)之間的鏈接的一列或多列。在外鍵引用中,當(dāng)A表的列引用作為B表的主鍵值的列時(shí),便在兩表之間創(chuàng)建了鏈接,該列就成為A表的外鍵。創(chuàng)建外鍵當(dāng)創(chuàng)建或修改表時(shí)可以通過定義FOREIGNKEY約束來創(chuàng)建外鍵。創(chuàng)建表時(shí),可以創(chuàng)建FOREIGNKEY約束作為表定義的一部分。如果表已經(jīng)存在,則可以添加FOREIGNKEY約束?!景咐?.10】創(chuàng)建名稱為Score表,創(chuàng)建外鍵約束。【案例3.11】在CourseAssignation表中創(chuàng)建外鍵約束。39/1593.3創(chuàng)建和修改表第3章目錄3.3.10創(chuàng)建數(shù)據(jù)庫(kù)關(guān)系圖數(shù)據(jù)庫(kù)關(guān)系圖是數(shù)據(jù)庫(kù)中對(duì)象的圖形表示形式。數(shù)據(jù)庫(kù)關(guān)系圖既可以是整個(gè)數(shù)據(jù)庫(kù)結(jié)構(gòu)的圖片,也可以是部分?jǐn)?shù)據(jù)庫(kù)結(jié)構(gòu)的圖片,包括表對(duì)象、表中所包含的列以及各個(gè)表之間的關(guān)系。使用數(shù)據(jù)庫(kù)關(guān)系圖可以創(chuàng)建和修改表、列、關(guān)系和鍵,也可以修改索引和約束。使用對(duì)象資源管理器創(chuàng)建數(shù)據(jù)庫(kù)關(guān)系圖【案例3.12】創(chuàng)建數(shù)據(jù)庫(kù)關(guān)系圖。40/1593.3創(chuàng)建和修改表第3章目錄3.3.11查看表查看表的定義:使用sp_help系統(tǒng)存儲(chǔ)過程。查看表中的數(shù)據(jù):使用SELECT語句。獲取有關(guān)表的信息:使用sys.tables目錄視圖。獲取有關(guān)表列的信息:使用sys.columns目錄視圖。查看表的依賴關(guān)系:使用sys.sql_dependencies目錄視圖。3.3.12重命名表使用對(duì)象資源管理器使用sp_rename系統(tǒng)存儲(chǔ)過程3.1.13刪除表使用對(duì)象資源管理器使用DROPTABLE語句使用TRUNCATETABLE語句來截?cái)嘣摫?1/159第4章操作數(shù)據(jù)庫(kù)數(shù)據(jù)4.3從表中刪除數(shù)據(jù)4.4導(dǎo)入和導(dǎo)出數(shù)據(jù)4.1向表中插入數(shù)據(jù)4.2更新表中的數(shù)據(jù)42/1594.1向表中插入數(shù)據(jù)第4章目錄4.1.1在結(jié)果窗格中插入數(shù)據(jù)“結(jié)果”窗格是查詢?cè)O(shè)計(jì)器的一個(gè)組成部分,用于顯示最近執(zhí)行的SELECT查詢的結(jié)果。其他查詢類型的結(jié)果將在消息框中顯示。若要打開“結(jié)果”窗格,可打開或創(chuàng)建一個(gè)查詢或視圖,或者返回某個(gè)表的數(shù)據(jù)。如果默認(rèn)情況下不顯示“結(jié)果”窗格,可選擇“查詢?cè)O(shè)計(jì)器”→“窗格”→“結(jié)果”命令。打開“結(jié)果”窗格后,可以在該窗格中執(zhí)行以下操作。查看執(zhí)行的SELECT查詢的結(jié)果集。對(duì)于顯示單個(gè)表或視圖中的數(shù)據(jù)的查詢或視圖,可以編輯結(jié)果集中各個(gè)列的值、添加新行以及刪除現(xiàn)有的行?!景咐?.1】在SQLServer2005對(duì)象資源管理器中,使用“結(jié)果”窗格向StudentInfo數(shù)據(jù)庫(kù)的Class表中添加一些班級(jí)數(shù)據(jù)。43/1594.1向表中插入數(shù)據(jù)4.1.2使用INSERT插入數(shù)據(jù)INSERT[INTO][server_name.database_name.schema_name.|database_name.[schema_name].|schema_name.]
table_name{[(column_list)]
VALUES({DEFAULT|NULL|expression}[,...n])}|DEFAULTVALUES[;]【案例4.2】編寫一個(gè)腳本文件,使用INSERT語句分別向StudentInfo數(shù)據(jù)庫(kù)的Coruse表、Teacher表和CourseAssignation表插入一些數(shù)據(jù)。第4章目錄44/1594.1向表中插入數(shù)據(jù)4.1.3使用BULKINSERT復(fù)制數(shù)據(jù)BULKINSERT[database_name.[schema_name].|schema_name.][table_name]FROM'data_file'WITH(
FIELDTERMINATOR='field_terminator',
ROWTERMINATOR='row_terminator');【案例4.3】用記事本編寫一個(gè)用于存儲(chǔ)學(xué)生信息的數(shù)據(jù)文件,然后使用BULKINSERT語句將數(shù)據(jù)文件加載到Student表中。第4章目錄45/1594.1向表中插入數(shù)據(jù)4.1.4使用INSERT...SELECT插入數(shù)據(jù)在INSERT語句中,可以使用SELECT子查詢將一個(gè)或多個(gè)表或視圖中的值添加到另一個(gè)表中。使用SELECT子查詢可以同時(shí)在表中插入多行。子查詢的選擇列表必須與INSERT語句的列列表匹配。如果沒有指定列列表,則選擇列表必須與正在其中執(zhí)行插入操作的表或視圖的列匹配?!景咐?.4】在StudentInfo數(shù)據(jù)庫(kù)中,從Student表中選擇學(xué)號(hào)、從CourseAssignation表中選擇課程編號(hào),并將學(xué)號(hào)和課程編號(hào)填寫到Score表中。第4章目錄46/1594.2更新表中的數(shù)據(jù)4.2.1在結(jié)果窗格中編輯數(shù)據(jù)在許多情況下,都可以在“結(jié)果”窗格中編輯數(shù)據(jù),這就像在電子表格中編輯數(shù)據(jù)一樣,操作起來非常方便。若要在“結(jié)果”窗格中編輯數(shù)據(jù),可執(zhí)行以下操作。(1)在對(duì)象資源管理器中右鍵單擊數(shù)據(jù)表,然后選擇“打開表”命令,這將運(yùn)行一個(gè)SELECT*FROMtable_name查詢,在網(wǎng)格中顯示該表中的數(shù)據(jù)。(2)定位到要更改的數(shù)據(jù)所在的單元格,然后鍵入新數(shù)據(jù)。(3)若要保存更改,將鼠標(biāo)移出該行即可。【案例4.5】使用“結(jié)果”窗格在Score表中填寫部分記錄的Grade列的值。第4章目錄47/1594.2更新表中的數(shù)據(jù)4.2.2使用UPDATE更新數(shù)據(jù)UPDATE{[server_name.database_name.schema_name.|database_name.[schema_name].|schema_name.]
table_or_view_name}SET{column_name={expression|DEFAULT|NULL}[,...n][FROM{<table_source>}[,...n]][WHERE{<search_condition>}]【案例4.6】使用UPDATE語句對(duì)Score表部分記錄中的Grade列進(jìn)行更新。第4章目錄48/1594.2更新表中的數(shù)據(jù)4.2.3使用FROM子句更改數(shù)據(jù)UPDATEtable_nameSET{column_name={expression|DEFAULT|NULL}[,...n]FROM{<table_source>}[,...n][WHERE{<search_condition>}]【案例4.7】根據(jù)學(xué)生姓名和課程名稱,用UPDATE語句對(duì)Score表部分記錄中的Grade列進(jìn)行更新。第4章目錄49/1594.2更新表中的數(shù)據(jù)4.2.4使用TOP限制更新的數(shù)據(jù)在UPDATE語句中,可以使用TOP子句來限制修改的行數(shù)。當(dāng)在UPDATE語句中使用TOP(n)子句時(shí),將基于隨機(jī)選擇n行來執(zhí)行更新操作。語法格式如下:UPDATEtable_name[TOP(expression)[PERCENT]]SET{column_name={expression|DEFAULT|NULL}[,...n]FROM{<table_source>}[,...n][WHERE{<search_condition>}]第4章目錄50/1594.3從表中刪除數(shù)據(jù)4.3.1在結(jié)果窗格中刪除數(shù)據(jù)如果希望刪除數(shù)據(jù)庫(kù)中的記錄,可在“結(jié)果”窗格中刪除相應(yīng)的行。如果希望刪除所有行,則可以使用“刪除”查詢。若要在“結(jié)果”窗格中刪除行,可執(zhí)行以下操作。(1)在對(duì)象資源管理器中,右鍵單擊數(shù)據(jù)表并選擇“打開表”。(2)在“結(jié)果”窗格中選中要?jiǎng)h除的行左側(cè)的選擇框。(3)按Delete鍵。(4)在要求確認(rèn)的消息框中單擊“是”。第4章目錄51/1594.3從表中刪除數(shù)據(jù)4.3.2使用DELETE刪除數(shù)據(jù)DELETE[FROM]{[server_name.database_name.schema_name.|database_name.[schema_name].|schema_name.]
table_or_view_name}[FROM<table_source>[,...n]][WHERE<search_condition>][;]例如:USEStudentInfo;DELETEFROMScoreFROMStudentWHEREStudent.StudentName='左文舉'ANDStudent.StudentID=Score.StudentID;第4章目錄52/1594.3從表中刪除數(shù)據(jù)4.3.3使用TOP限制刪除的行在DELETE語句中,可以使用TOP子句來限制刪除的行數(shù)。當(dāng)在DELETE語句中使用TOP(n)子句時(shí),刪除操作將基于隨機(jī)選擇n行而執(zhí)行。例如,下面的語句從PurchaseOrderDetail表中刪除了其到期日期早于2002年7月1日的20個(gè)隨機(jī)行。USEAdventureWorks;GODELETETOP(20)FROMPurchasing.PurchaseOrderDetailWHEREDueDate<'20020701';GO第4章目錄53/1594.3從表中刪除數(shù)據(jù)4.3.4使用TRUNCATETABLE刪除所有行使用TRUNCATETABLE語句可以從表中刪除所有行,而不記錄單個(gè)行刪除操作。該語句在功能上與沒有WHERE子句的DELETE語句相同;但是,TRUNCATETABLE速度更快,使用的系統(tǒng)資源和事務(wù)日志資源更少。TRUNCATETABLE的語法格式如下:TRUNCATETABLE[{database_name.[schema_name].|schema_name.}]
table_name[;]例如,下面的語句用于刪除JobCandidate表中的所有數(shù)據(jù)。USEAdventureWorks;GOTRUNCATETABLEHumanResources.JobCandidate;GO第4章目錄54/1594.4
導(dǎo)入和導(dǎo)出數(shù)據(jù)4.4.1導(dǎo)入數(shù)據(jù)導(dǎo)入數(shù)據(jù)是指將外部數(shù)據(jù)源中的數(shù)據(jù)復(fù)制到SQLServer數(shù)據(jù)庫(kù)中。導(dǎo)入數(shù)據(jù)的整個(gè)過程可以在向?qū)У奶崾鞠峦瓿?,包括選擇提供數(shù)據(jù)的數(shù)據(jù)源和接受數(shù)據(jù)的SQLServer目標(biāo)數(shù)據(jù)庫(kù)、指定表復(fù)制或查詢選項(xiàng)、選擇源表和源視圖以及設(shè)置是否保存SSIS包等?!景咐?.8】在SQLServer2005中創(chuàng)建一個(gè)名為NW的數(shù)據(jù)庫(kù),然后將Access示例數(shù)據(jù)庫(kù)文件Northwind.mdb中的數(shù)據(jù)導(dǎo)入到NW數(shù)據(jù)庫(kù)中。第4章目錄55/1594.4
導(dǎo)入和導(dǎo)出數(shù)據(jù)4.4.2導(dǎo)出數(shù)據(jù)導(dǎo)出數(shù)據(jù)是指將存儲(chǔ)在SQLServer數(shù)據(jù)庫(kù)中的數(shù)據(jù)復(fù)制到其他數(shù)據(jù)庫(kù)、電子表格或文本文件中。導(dǎo)出數(shù)據(jù)的整個(gè)操作過程可以在向?qū)崾鞠峦瓿?,主要步驟包括選擇提供數(shù)據(jù)的數(shù)據(jù)源和接受數(shù)據(jù)的目標(biāo)數(shù)據(jù)庫(kù)或文件、指定表復(fù)制或查詢選項(xiàng)、選擇源表和源視圖以及設(shè)置是否保存SSIS包等。下面結(jié)合案例說明如何將SQLServer數(shù)據(jù)庫(kù)中的數(shù)據(jù)導(dǎo)出到Access數(shù)據(jù)庫(kù)中?!景咐?.9】在F:\MSSQL\chapter04目錄中創(chuàng)建一個(gè)Access數(shù)據(jù)庫(kù)并命名為StudentInfo.mdb,然后將SQLServer數(shù)據(jù)庫(kù)StudentInfo中的數(shù)據(jù)導(dǎo)入到這個(gè)Access數(shù)據(jù)庫(kù)文件中。第4章目錄56/159第5章檢索數(shù)據(jù)庫(kù)數(shù)據(jù)5.1SELECT語句概述5.2使用SELECT定義選擇列表5.3使用FROM指定數(shù)據(jù)源5.4使用WHERE篩選數(shù)據(jù)5.5使用ORDERBY對(duì)數(shù)據(jù)排序5.6使用GROUPBY對(duì)數(shù)據(jù)分組5.7操作結(jié)果集5.8使用子查詢57/1595.1SELECT語句概述5.1.1SELECT語句的組成SELECTselect_listINTOnew_table_nameFROMtable_list[WHEREsearch_conditions[GROUPBYgroup_by_list][HAVINGsearch_conditions][ORDERBYorder_list[ASC|DESC]]第5章目錄58/1595.1SELECT語句概述5.1.2查詢工具介紹查詢編輯器用戶界面介紹sqlcmd實(shí)用工具命令語法介紹bcp實(shí)用工具【案例5.1】使用sqlcmd實(shí)用工具執(zhí)行SELECT語句,以顯示StudentInfo數(shù)據(jù)庫(kù)的Class表中的數(shù)據(jù)。第5章目錄59/1595.2使用SELECT定義選擇列表5.2.1從表中選擇所有列在SELECT語句中,使用星號(hào)(*)可選擇表或視圖中的所有列。如果沒有使用限定符指定,則星號(hào)將被解析為對(duì)FROM子句中指定的所有表或視圖中的所有列的引用。如果使用表或視圖名稱進(jìn)行限定,則星號(hào)將被解析為對(duì)指定表或視圖中的所有列的引用。當(dāng)在SELECT語句中使用星號(hào)時(shí),結(jié)果集中的列的順序與創(chuàng)建表或視圖時(shí)所指定的列順序相同。由于SELECT*將查找表中當(dāng)前存在的所有列,因此每次執(zhí)行SELECT*語句時(shí),表結(jié)構(gòu)的更改(通過添加、刪除或重命名列)都會(huì)自動(dòng)反映出來。【案例5.2】在StudentInfo數(shù)據(jù)庫(kù)中,使用SELECT語句檢索Course表中的全部數(shù)據(jù)。第5章目錄60/1595.2使用SELECT定義選擇列表5.2.2從表中選擇特定列若要選擇表中的特定列作為SELECT查詢的輸出列,則應(yīng)當(dāng)在選擇列表中明確地列出每一列,各列之間用逗號(hào)分隔。如果創(chuàng)建表時(shí)在表名或列名中使用了空格(不符合標(biāo)識(shí)符命名規(guī)則),則編寫SELECT語句時(shí)需要使用方括號(hào)將表名或列名括起來,否則會(huì)出現(xiàn)錯(cuò)誤信息。如果在FROM子句中指定了多個(gè)表,而這些表中又有同名的列,則在使用這些列時(shí)需要在列名前面冠以表名,以指明該列屬于哪個(gè)表。【案例5.3】在StudentInfo數(shù)據(jù)庫(kù)中,使用SELECT語句從Student表中檢索學(xué)生數(shù)據(jù),要求結(jié)果集中包括學(xué)號(hào)、姓名、性別和班級(jí)編號(hào)信息。第5章目錄61/1595.2使用SELECT定義選擇列表5.2.3從表中選擇特殊列對(duì)于表中的標(biāo)識(shí)符列,可使用$IDENTITY關(guān)鍵字來引用。對(duì)于具有ROWGUIDCOL屬性的列,可使用$ROWGUID關(guān)鍵字來引用?!景咐?.4】在StudentInfo數(shù)據(jù)庫(kù)中,使用SELECT語句從Teacher表中檢索教師數(shù)據(jù),要求在結(jié)果集包含教師編號(hào)、姓名、性別和參加工作時(shí)間信息。5.2.4設(shè)置結(jié)果集列的名稱column_nameAScolumn_aliasresult_column_expressionASderived_column_namecolumn_alias=column_namederived_column_name=result_column_expression【案例5.5】在StudentInfo數(shù)據(jù)庫(kù)中,使用SELECT語句從Class表中檢索班級(jí)數(shù)據(jù),要求使用中文表示結(jié)果集的列名。第5章目錄62/1595.2使用SELECT定義選擇列表5.2.5在選擇列表中進(jìn)行計(jì)算在選擇列表中,可以包含通過對(duì)一個(gè)或多個(gè)簡(jiǎn)單表達(dá)式應(yīng)用運(yùn)算符而生成的表達(dá)式。這使結(jié)果集中得以包含基表中不存在,但是根據(jù)基表中存儲(chǔ)的值計(jì)算得到的值,這些結(jié)果集列被稱為派生列。在派生列中,可以對(duì)數(shù)值列或常量使用算術(shù)運(yùn)算符或函數(shù)進(jìn)行的計(jì)算和運(yùn)算,也可以進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換,還可以使用子查詢。通過在帶有算術(shù)運(yùn)算符、函數(shù)、轉(zhuǎn)換或嵌套查詢的選擇列表中使用數(shù)值列或數(shù)值常量,可以對(duì)數(shù)據(jù)進(jìn)行計(jì)算和運(yùn)算。【案例5.6】計(jì)算年齡,使用中文表示結(jié)果集的列名。第5章目錄63/1595.2使用SELECT定義選擇列表5.2.6使用DISTINCT消除重復(fù)項(xiàng)使用DISTINCT關(guān)鍵字可以從SELECT語句的結(jié)果集中消除重復(fù)的行。如果沒有指定DISTINCT,將返回包括重復(fù)行在內(nèi)的所有行。對(duì)于DISTINCT關(guān)鍵字來說,空值將被認(rèn)為是相互重復(fù)的內(nèi)容。當(dāng)SELECT語句中包括DISTINCT時(shí),不論遇到多少個(gè)空值,結(jié)果中只返回一個(gè)NULL?!景咐?.7】從Score表中檢索所有不重復(fù)的學(xué)號(hào)。5.2.7使用TOP限制結(jié)果集
TOP(expression)[PERCENT][WITHTIES]【案例5.8】檢索前6名學(xué)生的信息。第5章目錄64/1595.3使用FROM指定數(shù)據(jù)源5.3.1沒有FROM子句的SELECT語句在SELECT語句中,F(xiàn)ROM子句是一個(gè)可選項(xiàng)。如果要使用SELECT語句從數(shù)據(jù)庫(kù)內(nèi)的表或視圖中選擇數(shù)據(jù),就必須使用FROM子句。但是,如果要從局部變量或者從不對(duì)列進(jìn)行操作的Transact-SQL函數(shù)中選擇數(shù)據(jù),而不是從數(shù)據(jù)庫(kù)內(nèi)的任何表或視圖中選擇數(shù)據(jù),則可以使用沒有FROM子句的SELECT語句?!景咐?.9】使用SELECT語句顯示以下信息:一條歡迎信息、系統(tǒng)當(dāng)前日期和時(shí)間、SQLServer服務(wù)器名稱以及SQLServer版本號(hào)。5.3.2使用內(nèi)部聯(lián)接FROMtable1[[AS]table_alias1][INNER]JOINtable2[[AS]table_alias2]ONsearch_condition【案例5.10】從Student表、Course表和Score表中檢索學(xué)生的課程成績(jī),要求在結(jié)果集中包含學(xué)號(hào)、姓名、課程名稱以及成績(jī)信息。第5章目錄65/1595.3使用FROM指定數(shù)據(jù)源5.3.3使用外部聯(lián)接FROMtable1[[AS]table_alias1]{LEFT|RIGHT|FULL}[OUTER]JOINtable2[[AS]table_alias2]ONsearch_condition【案例5.11】從Score表和Course表中檢索數(shù)據(jù),要求列出Course表的所有行。5.3.4使用交叉聯(lián)接
FROMtable1CROSSJOINtable2【案例5.12】在StudentInfo數(shù)據(jù)庫(kù)中,通過交叉聯(lián)接從Student表和Class表中檢索數(shù)據(jù)。第5章目錄66/1595.4使用WHERE篩選數(shù)據(jù)5.4.1WHERE子句的語法格式
[WHERE<search_condition>]其中<search_condition>定義要返回的行應(yīng)滿足的條件,該條件是用運(yùn)算符連接列名、常量、變量、函數(shù)等而得到的表達(dá)式,其取值為TRUE、FALSE或UNKNOWN。通過WHERE子句可以指定一系列搜索條件,只有那些滿足搜索條件的行才用于生成結(jié)果集,此時(shí)稱滿足搜索條件的行包含在結(jié)果集內(nèi)。5.4.2使用比較搜索條件在SQLServer2005中,可以使用下列比較運(yùn)算符:=(等于)、>(大于)、<(小于)、>=(大于或等于)、<=(小于或等于)、<>(不等于,SQL-92兼容)、!>(不大于)、!<(不小于)、!=(不等于)。這些運(yùn)算符是在兩個(gè)表達(dá)式之間進(jìn)行比較的?!景咐?.13】從Teacher表中檢索學(xué)歷為研究生的教師信息,要求在結(jié)果集包含教師編號(hào)、姓名、性別和學(xué)歷。第5章目錄67/1595.4使用WHERE篩選數(shù)據(jù)5.4.3使用范圍搜索條件test_expression[NOT]BETWEENbegin_expressionANDend_expression【案例5.14】檢索成績(jī)?cè)?6~93之間的學(xué)生課程成績(jī),要求在結(jié)果集包含學(xué)號(hào)、姓名、課程名稱和成績(jī)信息。5.4.4使用列表搜索條件
test_expression[NOT]IN(subquery|expression[,...n])【案例5.15】從Student表中檢索張王李趙4個(gè)姓氏的學(xué)生記錄,要求在結(jié)果集包含學(xué)號(hào)、姓名、性別第5章目錄68/1595.4使用WHERE篩選數(shù)據(jù)5.4.5搜索條件中的模式匹配
match_expression[NOT]LIKEpattern[ESCAPEescape_character]【案例5.16】從Student表中檢索張王李趙4個(gè)姓氏的學(xué)生記錄,要求使用LIKE運(yùn)算符實(shí)現(xiàn)查詢。【案例5.17】從Student表中檢索姓名中包含一個(gè)“偉”字的學(xué)生記錄。5.4.6使用邏輯運(yùn)算符在SQLServer2005中,邏輯運(yùn)算符包括AND、OR和NOT。AND和OR用于連接WHERE子句中的搜索條件。NOT用于反轉(zhuǎn)搜索條件的結(jié)果。AND運(yùn)算符連接兩個(gè)條件,只有當(dāng)兩個(gè)條件都符合時(shí)才返回TRUE。只要有任何一個(gè)條件為FALSE,則結(jié)果也為FALSE。OR運(yùn)算符也用于連接兩個(gè)條件,但只要有一個(gè)條件符合便返回TRUE。只有當(dāng)兩個(gè)條件均為FALSE時(shí),結(jié)果才是FALSE。NOT是單目運(yùn)算符,用于對(duì)條件進(jìn)行反轉(zhuǎn)。若條件為TRUE,則變成FALSE;若條件為FALSE,則變成TRUE?!景咐?.18】從Teacher表中檢索政治面貌為黨員或團(tuán)員的女教師記錄。第5章目錄69/1595.5使用ORDER
BY對(duì)數(shù)據(jù)排序5.5.1ORDERBY子句的語法格式[ORDERBY{order_by_expression[COLLATEcollation_name][ASC|DESC]},...n]]【案例5.19】檢索學(xué)生的會(huì)計(jì)電算化課程成績(jī),要求對(duì)結(jié)果集中的行按成績(jī)降序排序,若成績(jī)相同,則按姓名升序排序。5.5.2將TOP...WITHTIES與ORDERBY子句聯(lián)用當(dāng)TOP與ORDERBY一起使用時(shí),如果要使排序列值相等的那些行一并顯示出來,可以在SELECT子句中添加WITHTIES選項(xiàng)。WITHTIES選項(xiàng)指定從基本結(jié)果集中返回附加的行,這些行包含與出現(xiàn)在TOPn(PERCENT)行最后的ORDERBY列中的值相同的值?!景咐?.20】使并列第3名的記錄也包含在結(jié)果集內(nèi)。第5章目錄70/1595.6使用GROUP
BY對(duì)數(shù)據(jù)分組5.6.1GROUPBY子句的組件[GROUPBY[ALL]group_by_expression[,...n][WITH{CUBE|ROLLUP}]]【案例5.21】從Student表中檢索各班的人數(shù)。5.6.2在分組操作中應(yīng)用搜索條件可以使用HAVING子句對(duì)GROUPBY子句設(shè)置搜索條件。HAVING語法與WHERE語法類似,兩者的區(qū)別在于:WHERE搜索條件在進(jìn)行分組之前應(yīng)用,而HAVING搜索條件在進(jìn)行分組之后應(yīng)用,而且HAVING可以包含聚合函數(shù),也可以引用選擇列表中顯示的任意項(xiàng)?!景咐?.22】查詢平均分高于85的男生記錄,要求按平均分對(duì)結(jié)果集中的行降序排序。第5章目錄71/1595.6使用GROUP
BY對(duì)數(shù)據(jù)分組5.6.3使用聚合函數(shù)匯總數(shù)據(jù)AVG函數(shù):返回組中各值的平均值COUNT函數(shù):返回組中的項(xiàng)數(shù)。GROUPING函數(shù):當(dāng)行由CUBE或ROLLUP運(yùn)算符添加時(shí),該函數(shù)將導(dǎo)致附加列的輸出值為1;當(dāng)行不由CUBE或ROLLUP運(yùn)算符添加時(shí),該函數(shù)將導(dǎo)致附加列的輸出值為0。MAX函數(shù):返回表達(dá)式的最大值。MIN函數(shù):返回表達(dá)式中的最小值。SUM函數(shù):返回表達(dá)式中所有值的和或僅非重復(fù)值的和。STDEV函數(shù):返回指定表達(dá)式中所有值的標(biāo)準(zhǔn)偏差。STDEVP函數(shù):返回指定表達(dá)式中所有值的總體標(biāo)準(zhǔn)偏差。VAR函數(shù):返回指定表達(dá)式中所有值的方差。VARP函數(shù):返回指定表達(dá)式中所有值的總體方差?!景咐?.23】統(tǒng)計(jì)每個(gè)班學(xué)生的總?cè)藬?shù)、平均分、最高分以及最低分并按照平均分降序排序。第5章目錄72/1595.6使用GROUP
BY對(duì)數(shù)據(jù)分組5.6.4使用CUBE和ROLLUP匯總數(shù)據(jù)使用WITHCUBE匯總數(shù)據(jù)【案例5.24】統(tǒng)計(jì)每個(gè)學(xué)生、每個(gè)班級(jí)的平均分以及所有班級(jí)的總平均分。使用WITHROLLUP匯總數(shù)據(jù)【案例5.25】統(tǒng)計(jì)每個(gè)學(xué)生、每個(gè)班級(jí)的平均分以及所有班級(jí)的總平均分。5.6.5使用COMPUTE和COMPUTEBY匯總數(shù)據(jù)使用COMPUTE匯總數(shù)據(jù)【案例5.26】使用COMPUTEBY匯總數(shù)據(jù)COMPUTE{AVG|COUNT|MAX|MIN|STDEV|STDEVP|VAR|VARP|SUM}(expression)[,...n]BYexpression[,...n]【案例5.27】第5章目錄73/1595.7
操作結(jié)果集5.7.1使用UNION組合結(jié)果集
select_statementUNION[ALL]select_statement【案例5.28】從StudentInfo數(shù)據(jù)庫(kù)中檢索電子工程系的教師和學(xué)生信息。5.7.2使用公用表表達(dá)式WITHexpression_name[(column_name[,...n])]AS(CTE_query_definition)【案例5.29】從StudentInfo數(shù)據(jù)庫(kù)中查詢學(xué)生課程成績(jī),要求在結(jié)果集中列出任課教師姓名、班級(jí)、學(xué)生姓名、課程名稱和成績(jī)信息。第5章目錄74/1595.7
操作結(jié)果集5.7.3使用PIVOT運(yùn)算符[WITH<common_table_expression>]SELECT*FROMtable_sourcePIVOT(
aggregate_function(value_column)FORpivot_columnIN(<column_list>))table_alias【案例5.30】查詢計(jì)算機(jī)科學(xué)系學(xué)生的課程成績(jī),要求以學(xué)生姓名和3門課程名稱作為結(jié)果集中的列(交叉表查詢)。第5章目錄75/1595.7
操作結(jié)果集5.7.4將結(jié)果集保存到表中
[INTOnew_table]【案例5.31】從StudentInfo數(shù)據(jù)庫(kù)中查詢計(jì)算機(jī)科學(xué)系的學(xué)生,并將結(jié)果集保存到一個(gè)名為computer_science_department的新表中,然后列出這個(gè)新表中的數(shù)據(jù)。第5章目錄76/1595.8使用子查詢5.8.1使用子查詢進(jìn)行集成員測(cè)試子查詢可以通過IN或NOTIN引入,其結(jié)果集是包含零個(gè)值或多個(gè)值的列表。通過IN運(yùn)算符可以使用子查詢進(jìn)行集成員測(cè)試,也就是將一個(gè)表達(dá)式的值與子查詢返回的一列值進(jìn)行比較,如果該表達(dá)式的值與此列中的任何一個(gè)值相等,則集成員測(cè)試返回TRUE;如果該表達(dá)式的值與此列中的所有值都不相等,則集成員測(cè)試返回FALSE。使用NOTIN時(shí)對(duì)集成員測(cè)試的結(jié)果取反。在集成員測(cè)試中,由子查詢返回的結(jié)果集是單個(gè)列值的一個(gè)列表,該列必須與測(cè)試表達(dá)式的數(shù)據(jù)類型相同。當(dāng)子查詢返回結(jié)果之后,外層查詢將使用這些結(jié)果。【案例5.32】第5章目錄77/1595.8使用子查詢5.8.3使用子查詢進(jìn)行比較測(cè)試通過使用ANY、SOME和ALL對(duì)比較運(yùn)算符進(jìn)行修改,可以引入子查詢并進(jìn)行批量比較測(cè)試。SOME是與ANY等效的SQL-92標(biāo)準(zhǔn)。使用ANY修改比較運(yùn)算符時(shí),將通過比較運(yùn)算符對(duì)一個(gè)表達(dá)式的值與子查詢返回的一列值中的每一個(gè)進(jìn)行比較。如果在某次比較中運(yùn)算結(jié)果為TURE,則返回TRUE。ANY運(yùn)算符的語法格式如下:<比較運(yùn)算符>ANY(subquery)例如,>ANY(子查詢)表示至少大于子查詢所返回的一個(gè)值,也就是大于最小值。例如,>ANY(1,2,3)表示大于1。=ANY則與IN等效。使用ALL修改比較運(yùn)算符時(shí),將通過比較運(yùn)算符對(duì)一個(gè)表達(dá)式的值與子查詢返回的一列值中的每一個(gè)進(jìn)行比較。如果在每次比較中運(yùn)算結(jié)果均為TRUE,則返回TRUE。只要有一次比較的結(jié)果為FALSE,則ALL測(cè)試返回FALSE。ALL運(yùn)算符的語法格式如下:<比較運(yùn)算符>ALL(subquery)例如,>ALL(子查詢)表示大于子查詢所返回的每一個(gè)值,也就是大于最大值。例如,>ALL(1,2,3)表示大于3。<>ALL與NOTIN作用相同?!景咐?.34】第5章目錄78/1595.8使用子查詢5.8.4使用子查詢進(jìn)行存在性測(cè)試當(dāng)使用EXISTS運(yùn)算符引入一個(gè)子查詢時(shí),就相當(dāng)于進(jìn)行一次存在性測(cè)試。外部查詢的WHERE子句測(cè)試子查詢返回的行是否存在。子查詢實(shí)際上不產(chǎn)生任何數(shù)據(jù),它只返回TRUE或FALSE值。使用EXISTS引入的子查詢的語法如下:
WHERE[NOT]EXISTS(subquery)如果在EXISTS前面加上NOT時(shí),將對(duì)存在性測(cè)試結(jié)果取反?!景咐?.34】從StudentInfo數(shù)據(jù)庫(kù)中查詢包含在課程表但尚未包含在課程安排表中的課程的編號(hào)和名稱。5.8.5使用子查詢替代表達(dá)式在Transact-SQL中,除了在ORDERBY列表中以外,在SELECT、UPDATE、INSERT和DELETE語句中任何能夠使用表達(dá)式的地方都可以用子查詢替代?!景咐?.35】從StudentInfo數(shù)據(jù)庫(kù)中查詢每個(gè)學(xué)生的平均分并按平均分降序排序,若平均分相同則按姓名升序排序。第5章目錄79/159第6章索引與視圖6.1索引概述6.2設(shè)計(jì)索引6.3實(shí)現(xiàn)索引6.4視圖概述6.5實(shí)現(xiàn)視圖6.6管理和應(yīng)用視圖80/1596.1索引概述6.1.1索引的基本概念索引是與表或視圖關(guān)聯(lián)的磁盤上結(jié)構(gòu),可以加快從表或視圖中檢索行的速度。索引包含由表或視圖中的一列或多列生成的鍵,這些鍵存儲(chǔ)在一個(gè)B樹結(jié)構(gòu)中,使SQLServer可以快速有效地查找與鍵值關(guān)聯(lián)的行。SQLServer數(shù)據(jù)訪問方式掃描表使用索引當(dāng)在一個(gè)列上創(chuàng)建索引時(shí),該列稱為索引列或索引鍵;索引列中的值稱為鍵值。索引鍵可以是表中的單個(gè)列,也可以由多個(gè)列的組合而成。一個(gè)索引就是一組鍵值的列表,這些值來自于表中的各個(gè)行。鍵值可以是惟一的,例如選擇表中的主鍵作為索引鍵時(shí)就屬于這種情況,但索引鍵也可以具有重復(fù)的值。第6章目錄81/1596.1索引概述6.1.2索引的類型聚集索引非聚集索引其他索引類型惟一索引包含性列索引索引視圖全文索引XML索引第6章目錄82/1596.2設(shè)計(jì)索引6.2.1索引設(shè)計(jì)準(zhǔn)則設(shè)計(jì)索引時(shí)的數(shù)據(jù)庫(kù)準(zhǔn)則設(shè)計(jì)索引時(shí)的查詢準(zhǔn)則設(shè)計(jì)索引時(shí)的列準(zhǔn)則。6.2.2設(shè)計(jì)聚集索引聚集索引基于數(shù)據(jù)行的鍵值在表內(nèi)排序和存儲(chǔ)這些數(shù)據(jù)行。每個(gè)表只能有一個(gè)聚集索引,因?yàn)閿?shù)據(jù)行本身只能按一個(gè)順序存儲(chǔ)。每個(gè)表幾乎都對(duì)列定義聚集索引來實(shí)現(xiàn)下列功能:可用于經(jīng)常使用的查詢;提供高度惟一性;可用于范圍查詢。創(chuàng)建PRIMARYKEY約束時(shí),將在列上自動(dòng)創(chuàng)建惟一索引。第6章目錄83/1596.2設(shè)計(jì)索引6.2.3設(shè)計(jì)非聚集索引非聚集索引包含索引鍵值和指向表數(shù)據(jù)存儲(chǔ)位置的行定位器。通常情況下,設(shè)計(jì)非聚集索引是為了改善經(jīng)常使用的、沒有建立聚集索引的查詢的性能??梢詫?duì)表或索引視圖創(chuàng)建多個(gè)非聚集索引。與使用書中索引的方式相似,查詢優(yōu)化器在搜索數(shù)據(jù)值時(shí),先搜索非聚集索引以找到數(shù)據(jù)值在表中的位置,然后直接從該位置檢索數(shù)據(jù)。這使非聚集索引成為完全匹配查詢的最佳選擇,因?yàn)樗饕f明查詢所搜索的數(shù)據(jù)值在表中的精確位置的項(xiàng)。每個(gè)索引項(xiàng)都指向表或聚集索引中準(zhǔn)確的頁和行,其中可以找到相應(yīng)的數(shù)據(jù)。在查詢優(yōu)化器在索引中找到所有項(xiàng)之后,它可以直接轉(zhuǎn)到準(zhǔn)確的頁和行進(jìn)行數(shù)據(jù)檢索。設(shè)計(jì)非聚集索引時(shí)應(yīng)注意數(shù)據(jù)庫(kù)的特征。第6章目錄84/1596.2設(shè)計(jì)索引6.2.4設(shè)計(jì)惟一索引惟一索引能夠保證索引鍵中不包含重復(fù)的值,從而使表中的每一行從某種方式上具有惟一性。只有當(dāng)惟一性是數(shù)據(jù)本身的特征時(shí),指定惟一索引才有意義。使用多列惟一索引,索引能夠保證索引鍵中值的每個(gè)組合都是惟一的。例如,若為Score表中的StudentID和CourseID列的組合創(chuàng)建了惟一索引,則表中的任意兩行都不會(huì)有這些列值的相同組合。惟一索引具有以下優(yōu)點(diǎn):能夠確保定義的列的數(shù)據(jù)完整性;提供了對(duì)查詢優(yōu)化器有用的附加信息。聚集索引和非聚集索引都可以是惟一的。只要列中的數(shù)據(jù)是惟一的,就可以為同一個(gè)表創(chuàng)建一個(gè)惟一聚集索引和多個(gè)惟一非聚集索引。創(chuàng)建PRIMARYKEY或UNIQUE約束會(huì)自動(dòng)為指定的列創(chuàng)建惟一索引。第6章目錄85/1596.3實(shí)現(xiàn)索引6.3.1使用對(duì)象資源管理器創(chuàng)建索引(1)在對(duì)象資源管理器連接到SQLServer數(shù)據(jù)庫(kù)引擎,然后展開該實(shí)例。(2)在樹目錄中展開要在其中創(chuàng)建索引的表,右鍵單擊“索引”并選擇“新建索引”。(3)在“新建索引”對(duì)話框的“常規(guī)”頁中指定索引名稱,選擇索引類型,指定索引是否具有惟一性,添加包含在索引鍵列中的表列并設(shè)置其排序順序。(4)若要設(shè)置索引的選項(xiàng),可以選擇“選項(xiàng)”頁并對(duì)相關(guān)選項(xiàng)進(jìn)行設(shè)置。(5)若要在索引中包含其他表列,可以選擇“包含性列”頁,然后添加要包含在索引中的一列或多列。(6)單擊“確定”按鈕。第6章目錄86/1596.3實(shí)現(xiàn)索引6.3.2使用CREATEINDEX語句創(chuàng)建索引CREATE[UNIQUE][CLUSTERED|NONCLUSTERED]INDEXindex_nameON[database_name.[schema_name].|schema_name.]table_or_view_name(column[ASC|DESC][,...n])[INCLUDE(column_name[,...n])][WITH(
PAD_INDEX={ON|OFF}|FILLFACTOR=fillfactor|SORT_IN_TEMPDB={ON|OFF}|IGNORE_DUP_KEY={ON|OFF}|STATISTICS_NORECOMPUTE={ON|OFF}|DROP_EXISTING={ON|OFF}|ONLINE={ON|OFF}|ALLOW_ROW_LOCKS={ON|OFF}|ALLOW_PAGE_LOCKS={ON|OFF}|MAXDOP=max_degree_of_parallelism[,...n])][ON{partition_scheme_name(column_name)|filegroup_name|default}][;]第6章目錄87/1596.3實(shí)現(xiàn)索引6.3.3查看索引信息使用sp_helpindex查看索引信息使用sp_spaceused查看索引使用的空間使用INDEXPROPERTY函數(shù)查看索引屬性6.3.4刪除索引使用對(duì)象資源管理器來刪除索引使用DROPINDEX語句從當(dāng)前數(shù)據(jù)庫(kù)中刪除一個(gè)或多個(gè)索引第6章目錄88/1596.4視圖概述6.4.1視圖的基本概念視圖是一個(gè)虛擬表,其內(nèi)容由選擇查詢定義。與真實(shí)的表一樣,視圖也包含一系列帶有名稱的列和行數(shù)據(jù),但這些列和行數(shù)據(jù)來自由定義視圖的查詢所引用的表,并且是在引用視圖時(shí)動(dòng)態(tài)生成的,而不是以數(shù)據(jù)值存儲(chǔ)集形式存在于數(shù)據(jù)庫(kù)中(索引視圖除外)。視圖中引用的表稱為基礎(chǔ)表。對(duì)基礎(chǔ)表而言,視圖的作用類似于篩選。定義視圖的篩選可以來自當(dāng)前或其他數(shù)據(jù)庫(kù)的一個(gè)或多個(gè)表,也可以來自其他視圖。分布式查詢也可以用于定義使用多個(gè)異類源數(shù)據(jù)的視圖。視圖的類型標(biāo)準(zhǔn)視圖索引視圖分區(qū)視圖第6章目錄89/1596.4視圖概述6.4.2視圖的用途和限制視圖的用途簡(jiǎn)化數(shù)據(jù)操作自定義數(shù)據(jù)提高數(shù)據(jù)庫(kù)的安全性創(chuàng)建視圖的注意事項(xiàng)第6章目錄90/1596.5
實(shí)現(xiàn)視圖6.5.1使用對(duì)象資源管理器創(chuàng)建視圖(1)在對(duì)象資源管理器中連接到SQLServer數(shù)據(jù)庫(kù)引擎,然后展開該實(shí)例。(2)展開要在其中創(chuàng)建視圖的數(shù)據(jù)庫(kù),右鍵單擊“視圖”節(jié)點(diǎn)并選擇“新建視圖”。(3)當(dāng)出現(xiàn)如圖6.6所示的“添加表”對(duì)話框時(shí),選擇要在視圖中引用的一個(gè)或多個(gè)基礎(chǔ)表,然后單擊“添加”。若要在視圖中引用已有的視圖,可選擇“視圖”選項(xiàng)卡。選擇并添加表或視圖后,單擊“關(guān)閉”。(4)在視圖設(shè)計(jì)器中,通過定義選擇列表、設(shè)置篩選條件以及指定排序順序等,生成用于定義視圖的SELECT語句?!景咐?.4】創(chuàng)建一個(gè)視圖,用于從Student表、Score表和Course表中獲取學(xué)生成績(jī),然后創(chuàng)建一個(gè)查詢并通過引用該視圖來檢索080201班所有男生的電工基礎(chǔ)成績(jī)。第6章目錄91/1596.5
實(shí)現(xiàn)視圖6.5.2使用CREATEVIEW語句創(chuàng)建視圖CREATEVIEW[schema_name.]view_name[(column[,...n])][WITH<view_attribute>[,...n]]ASselect_statement[;][WITHCHECKOPTION]<view_attribute>::={[ENCRYPTION][SCHEMABINDING][VIEW_METADATA]}【案例6.5】在StudentInfo數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)視圖,用于檢索學(xué)生的學(xué)號(hào)、姓名、性別、入學(xué)時(shí)間、班級(jí)以及系別信息,要求使用中文列名來代替基礎(chǔ)表中的英文列名;然后在SELECT語句中引用該視圖,以查詢電子工程系所有男同學(xué)的記錄。第6章目錄92/1596.6管理和應(yīng)用視圖6.6.1修改視圖使用對(duì)象資源管理器修改視圖使用ALTERVIEW語句修改視圖ALTERVIEW[schema_name.]view_name[(column[,...n])][WITH<view_attribute>[,...n]]ASselect_statement[;][WITHCHECKOPTION]<view_attribute>::={[ENCRYPTION][SCH
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 云計(jì)算在水文模型中的應(yīng)用-洞察分析
- 旋臂內(nèi)暗物質(zhì)分布-洞察分析
- 體育俱樂部法律與政策研究-洞察分析
- 2023-2024年項(xiàng)目管理人員安全培訓(xùn)考試題及答案(典優(yōu))
- 2023年-2024年新員工入職前安全教育培訓(xùn)試題基礎(chǔ)題
- 2023年-2024年員工三級(jí)安全培訓(xùn)考試題附完整答案(奪冠系列)
- 網(wǎng)絡(luò)心理咨詢?cè)谖C(jī)干預(yù)中的實(shí)踐-洞察分析
- 2023年-2024年安全管理人員安全教育培訓(xùn)試題及答案(必刷)
- 同態(tài)加密與機(jī)器學(xué)習(xí)融合-洞察分析
- 2025年進(jìn)出口貿(mào)易公司發(fā)展戰(zhàn)略和經(jīng)營(yíng)計(jì)劃
- GB/T 32491-2016玻璃纖維增強(qiáng)熱固性樹脂管及管件長(zhǎng)期靜水壓試驗(yàn)方法
- 書名號(hào)測(cè)試的文檔
- 交大醫(yī)學(xué)院研究生現(xiàn)代免疫學(xué)基礎(chǔ)和進(jìn)展《免疫學(xué)原理》考試重點(diǎn)
- 全文解讀改革開放簡(jiǎn)史專題解讀
- 熱電廠工程燃煤系統(tǒng)施工方案
- 福建省南平市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細(xì)及行政區(qū)劃代碼
- 金融科技課件(完整版)
- 中國(guó)建筑史經(jīng)典題型
- 計(jì)算機(jī)信息系統(tǒng)分級(jí)保護(hù)方案
- 頂管施工技術(shù)全面詳解
- 公路工程質(zhì)量檢驗(yàn)評(píng)定標(biāo)準(zhǔn)(交安部分)
評(píng)論
0/150
提交評(píng)論