版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章數(shù)據(jù)庫(kù)基礎(chǔ)第1章數(shù)據(jù)庫(kù)基礎(chǔ).pptx第2章SQLServer2008數(shù)據(jù)類(lèi)型.pptx第3章數(shù)據(jù)庫(kù)和表.pptx第4章數(shù)據(jù)庫(kù)的查詢(xún).pptx第5章索引.pptx第6章視圖.pptx第7章Transact-SQL程序設(shè)計(jì).pptx第8章存儲(chǔ)過(guò)程.pptx第9章觸發(fā)器.pptx第10章用戶(hù)自定義函數(shù)與事務(wù).pptx第11章SQLServer2008管理.pptx本章任務(wù)數(shù)據(jù)庫(kù)技術(shù)概述常用數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)崗位需求分析數(shù)據(jù)庫(kù)設(shè)計(jì)SQLServer2008的安裝使用SQLServerManagementStudio(SSMS)配置SQLServer2008服務(wù)學(xué)習(xí)目標(biāo)了解什么是數(shù)據(jù)庫(kù)了解有哪些常用數(shù)據(jù)庫(kù)管理系統(tǒng)了解職業(yè)崗位需求分析掌握數(shù)據(jù)庫(kù)設(shè)計(jì)的原則掌握SQLServer2008的安裝及簡(jiǎn)單使用1.1數(shù)據(jù)庫(kù)技術(shù)概述1.什么是數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)(DataBase,簡(jiǎn)稱(chēng)DB)顧名思義就是存放數(shù)據(jù)的倉(cāng)庫(kù),是數(shù)據(jù)依照某種數(shù)據(jù)模型組織起來(lái)并存放在計(jì)算機(jī)外存儲(chǔ)器中的數(shù)據(jù)集合。2.數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)(DatabaseManagementSystem,簡(jiǎn)稱(chēng)DBMS)是一種操縱和管理數(shù)據(jù)庫(kù)的大型軟件,用于建立、使用和維護(hù)數(shù)據(jù)庫(kù)。3.數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)DBS(DataBaseSystem,簡(jiǎn)稱(chēng)DBS)通常由軟件、數(shù)據(jù)庫(kù)和數(shù)據(jù)管理員(databaseAdministrator,簡(jiǎn)稱(chēng)DBA)組成,是由數(shù)據(jù)庫(kù)及其管理軟件組成的系統(tǒng)。1.2常用數(shù)據(jù)庫(kù)管理系統(tǒng)1.SQLServer簡(jiǎn)介SQLServer是由Microsoft公司開(kāi)發(fā)和推廣的高性能的客戶(hù)端/服務(wù)器結(jié)構(gòu)的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS),最初由Microsoft、Sybase和Ashton-Tate三家公司共同開(kāi)發(fā),1988年推出第一個(gè)版本。SQLServer2008主要分為服務(wù)器版本和專(zhuān)業(yè)版
服務(wù)器版本又分為企業(yè)版和標(biāo)準(zhǔn)版。SQLServer2008專(zhuān)業(yè)版是針對(duì)特定的用戶(hù)群體而設(shè)計(jì)的
開(kāi)發(fā)版
工作組版Web版Express版SQLServerCompact3.5版1.2常用數(shù)據(jù)庫(kù)管理系統(tǒng)2.Oracle簡(jiǎn)介Oracle數(shù)據(jù)庫(kù)系統(tǒng)是美國(guó)ORACLE公司(甲骨文)提供的以分布式數(shù)據(jù)庫(kù)為核心的一組軟件產(chǎn)品,是目前最流行的客戶(hù)/服務(wù)器(C/S)或B/S體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)之一。3.MySQL簡(jiǎn)介MySQL也是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQLAB公司開(kāi)發(fā)。它分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),一般中小型網(wǎng)站的開(kāi)發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。1.3數(shù)據(jù)庫(kù)崗位需求分析1.3.1職業(yè)崗位需求分析1.3.2課程定位1.4數(shù)據(jù)庫(kù)設(shè)計(jì)1.4.1關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)原則數(shù)據(jù)庫(kù)設(shè)計(jì)的方法是首先建立E-R模型,然后將E-R模型轉(zhuǎn)換為關(guān)系模型,最后對(duì)關(guān)系模型進(jìn)行規(guī)范化處理。1.4,2關(guān)系規(guī)范化建立E-R模型E-R圖轉(zhuǎn)換為關(guān)系模型關(guān)系模型的規(guī)范化1.5SQLServer2008的安裝1.5.1系統(tǒng)要求1.5.2安裝SQLServer20081.5.4安裝示例數(shù)據(jù)庫(kù)安裝過(guò)程中可能會(huì)出現(xiàn)的錯(cuò)誤硬件配置達(dá)不到要求多個(gè)版本間SQLServer的兼容問(wèn)題安裝示例數(shù)據(jù)庫(kù)1.6使用SQLServerManagementStudio(SSMS)1.6.1啟動(dòng)和停止SQLSERVER服務(wù)器1.6.2SSMS基本操作查看數(shù)據(jù)庫(kù);對(duì)數(shù)據(jù)表進(jìn)行增、刪、查、改1.7配置SQLServer2008服務(wù)1.7.1SQLServer2008的服務(wù)組件SQLServer數(shù)據(jù)庫(kù)引擎服務(wù)SQLServerAgent服務(wù)SQLServerAnalysisServices服務(wù)SQLServerBrowser服務(wù)SQLServerIntegrationServices服務(wù)SQLServerFullTextSearch服務(wù)SQLServerReportServer服務(wù)SQLServerVSSWriter服務(wù)1.7.2數(shù)據(jù)庫(kù)引擎服務(wù)的控制第2章SQLServer2008數(shù)據(jù)類(lèi)型2.1系統(tǒng)數(shù)據(jù)類(lèi)型2.1.1字符串?dāng)?shù)據(jù)類(lèi)型2.1.2精確數(shù)字類(lèi)型2.1.3近似數(shù)字類(lèi)型2.1.4日期和時(shí)間數(shù)據(jù)類(lèi)型2.1.5Unicode字符串2.1.6二進(jìn)制字符串2.1.7其他數(shù)據(jù)類(lèi)型2.1.8NULL值SQLServer常見(jiàn)的數(shù)據(jù)類(lèi)型_1類(lèi)型保存數(shù)據(jù)數(shù)據(jù)類(lèi)型說(shuō)明字符串字符數(shù)據(jù)包括任意字母、符號(hào)或數(shù)字字符的組合Char固定長(zhǎng)度,1個(gè)字符占1個(gè)字節(jié)Varchar可變長(zhǎng)度,1個(gè)字符占1個(gè)字節(jié)Text存儲(chǔ)長(zhǎng)文本信息Unicode字符串Unicode數(shù)據(jù)Nchar1個(gè)字符2個(gè)字節(jié)NvarcharNtextSQLServer常見(jiàn)的數(shù)據(jù)類(lèi)型_2類(lèi)型保存數(shù)據(jù)數(shù)據(jù)類(lèi)型說(shuō)明精確數(shù)字類(lèi)型整數(shù)Bigint8字節(jié),-263~263-1Int4字節(jié),-231~231-1Smallint2字節(jié),-215~215-1Tinyint1字節(jié),0~255布爾數(shù)據(jù)Bit0,1,或NULL數(shù)字Decimal2~17字節(jié),視精確度而定Numeric2~17字節(jié),視精確度而定Money8字節(jié)Smallmoney4字節(jié)近似數(shù)字類(lèi)型Float8字節(jié)Real4字節(jié)SQLServer常見(jiàn)的數(shù)據(jù)類(lèi)型_3類(lèi)型保存數(shù)據(jù)數(shù)據(jù)類(lèi)型長(zhǎng)度日期和時(shí)間數(shù)據(jù)類(lèi)型日期和時(shí)間Datetime8字節(jié)Smalldatetime4字節(jié)二進(jìn)制字符串Binary1~8000個(gè)字節(jié),Varbinary1~8000個(gè)字節(jié),存儲(chǔ)時(shí)需另外增加2字節(jié)存儲(chǔ)圖像Image0~2×109字節(jié)SQLServer常見(jiàn)的數(shù)據(jù)類(lèi)型_4類(lèi)型數(shù)據(jù)類(lèi)型長(zhǎng)度其他數(shù)據(jù)類(lèi)型Timestamp8字節(jié)Uniqueidentifier16字節(jié)CursorSql_variantTableXml為下列各項(xiàng)選擇最佳的數(shù)據(jù)類(lèi)型,
以便最大程度地節(jié)省內(nèi)存空間:保存信息可能的數(shù)值數(shù)據(jù)類(lèi)型定義變量名你的年齡19你的姓H就讀學(xué)校機(jī)電職業(yè)技術(shù)學(xué)院中國(guó)的人口數(shù)13億體育成績(jī)85.55>4truecompareBitpeScoreDecimalNumericsumOfPeopleDecimalNumericSchoolVarcharfirstNamecharageIntSmallint2.2用戶(hù)自定義數(shù)據(jù)類(lèi)型第3章數(shù)據(jù)庫(kù)和表本章任務(wù)創(chuàng)建和管理數(shù)據(jù)庫(kù)創(chuàng)建和管理表數(shù)據(jù)完整性3.1創(chuàng)建和管理數(shù)據(jù)庫(kù)3.1.1數(shù)據(jù)庫(kù)簡(jiǎn)介1、數(shù)據(jù)庫(kù)文件
數(shù)據(jù)文件——數(shù)據(jù)文件是數(shù)據(jù)庫(kù)對(duì)象的物理存儲(chǔ)器,所有的數(shù)據(jù)庫(kù)數(shù)據(jù)物理上都是存儲(chǔ)在數(shù)據(jù)文件中。
日志文件——日記文件記錄了用戶(hù)對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作的信息。日記文件在恢復(fù)數(shù)據(jù)庫(kù)數(shù)據(jù)、維護(hù)數(shù)據(jù)庫(kù)的一致性方面起著舉足輕重的作用。
文件組——至少要有一個(gè)數(shù)據(jù)文件和一個(gè)日志文件(.ldf)。數(shù)據(jù)文件又分為主文件(.mdf)和次文件(.ndf),只能有一個(gè)主文件,可以有多個(gè)次文件。2、系統(tǒng)數(shù)據(jù)庫(kù) Master Model Msdb Tempdb3.1.2創(chuàng)建數(shù)據(jù)庫(kù)一種是使用圖形化工具——右擊【數(shù)據(jù)庫(kù)】節(jié)點(diǎn)
【創(chuàng)建新的數(shù)據(jù)庫(kù)】另一種是命令行方式——CREATEDATABASE創(chuàng)建數(shù)據(jù)庫(kù)需要說(shuō)明的屬性:數(shù)據(jù)庫(kù)名稱(chēng)主文件和日志文件的邏輯文件名、物理文件名、初始大小、最大尺寸、文件的增量例1創(chuàng)建數(shù)據(jù)庫(kù)Sales各個(gè)屬性要求如下:文件組文件名路徑初始大小最大尺寸文件增量數(shù)據(jù)文件Sales.MdfE:\3MB10MB1MB事務(wù)日志文件Sales_Log.LdfE:\1MB5MB1MB使用命令行方式創(chuàng)建數(shù)據(jù)庫(kù)
Createdatabase
數(shù)據(jù)庫(kù)名
[On{[
primary](name=邏輯文件名,
FileName='操作系統(tǒng)下的文件名和路徑'[,Size=文件初始容量][,MaxSize={文件最大容量|unlimited}][,FileGrowth=文件的增量])}[,...n]][Logon{(Name=邏輯文件名,
FileName='操作系統(tǒng)下的文件名和路徑'[,Size=文件初始容量][,MaxSize={文件最大容量|unlimited}][,FileGrowth=文件的增量])}[,...N]]例2創(chuàng)建數(shù)據(jù)庫(kù)NewSales各個(gè)屬性要求如下:文件組文件名路徑初始大小最大尺寸文件增量數(shù)據(jù)文件NewSales.MdfE:\4MB10MB1MB事務(wù)日志文件NewSales_Log.LdfE:\2MB5MB1MB例3創(chuàng)建包括文件組的數(shù)據(jù)庫(kù)StuInfo各個(gè)屬性要求如下:文件組文件名路徑初始大小最大尺寸文件增量主文件StuInfo
.MdfE:\3MB10MB1MB事務(wù)日志文件StuInfo_Log.LdfE:\1MB5MB1MB數(shù)據(jù)文件組Client1
StudentCourseScoreD:\2MB10MB1MB3.1.3管理數(shù)據(jù)庫(kù)管理數(shù)據(jù)庫(kù)的內(nèi)容通常包括顯示數(shù)據(jù)庫(kù)信息、擴(kuò)充數(shù)據(jù)庫(kù)容量、配置數(shù)據(jù)庫(kù)、重命名數(shù)據(jù)庫(kù)和刪除數(shù)據(jù)庫(kù)。1.顯示數(shù)據(jù)庫(kù)信息使用圖形化工具顯示數(shù)據(jù)庫(kù)信息右擊數(shù)據(jù)庫(kù)
【屬性】命令使用命令行方式顯示數(shù)據(jù)庫(kù)信息使用SP_HELPDBdatabase_name命令2.擴(kuò)充數(shù)據(jù)庫(kù)容量擴(kuò)充數(shù)據(jù)庫(kù)容量可以使用兩種方法來(lái)實(shí)現(xiàn)。方法一:增加數(shù)據(jù)文件和事務(wù)日志文件的容量。方法二:為數(shù)據(jù)庫(kù)增加文件組,而后在文件組中增加數(shù)據(jù)文件和日志文件。2.擴(kuò)充數(shù)據(jù)庫(kù)容量使用圖形化工具擴(kuò)充數(shù)據(jù)文件、日記文件容量的步驟如下:在SSMS中,右鍵單擊所需的數(shù)據(jù)庫(kù)
【屬性】,在“數(shù)據(jù)庫(kù)屬性”對(duì)話(huà)框中的選擇“文件”選項(xiàng),在“數(shù)據(jù)文件”窗口直接修改數(shù)據(jù)文件、日記文件的初始大小。例5擴(kuò)充銷(xiāo)售數(shù)據(jù)庫(kù)Sales的文件容量例6在NewSales數(shù)據(jù)庫(kù)中增加一個(gè)用戶(hù)自定義文件組Client1文件組文件名原來(lái)大小擴(kuò)充后大小主文件Sales.Mdf3MB4MB事務(wù)日志文件Sales_Log.Ldf1MB2MB文件組文件名路徑初始大小最大尺寸文件增量文件組Client1Client1_DataE:\2MB10MB1MBClient1_Log
E:\1MB5MB1MB2.擴(kuò)充數(shù)據(jù)庫(kù)容量修改數(shù)據(jù)庫(kù)文件的大小,命令格式:例7擴(kuò)充數(shù)據(jù)庫(kù)NewSales的容量Alter
DataBase
數(shù)據(jù)庫(kù)名
ModifyFile
(name=邏輯文件名,[,Size=文件初始容量][,MaxSize={文件最大容量|unlimited}][,FileGrowth=文件增長(zhǎng)幅度])文件組文件名原來(lái)大小擴(kuò)充后大小主文件NewSales.Mdf4MB8MB事務(wù)日志文件NewSales_Log.Ldf2MB4MB2.擴(kuò)充數(shù)據(jù)庫(kù)容量在數(shù)據(jù)庫(kù)中建立文件組命令格式:增加文件組到數(shù)據(jù)庫(kù)Alter
Database
數(shù)據(jù)庫(kù)名
AddFileGroup文件組名Alter
database
數(shù)據(jù)庫(kù)名
AddFile(Name=邏輯文件名,FileName='操作系統(tǒng)下的文件名和路徑'[,Size=文件初始容量][,MaxSize={文件最大容量|unlimited}][,FileGrowth=文件增長(zhǎng)幅度])ToFileGroup文件組名2.擴(kuò)充數(shù)據(jù)庫(kù)容量增加事務(wù)日志文件到數(shù)據(jù)庫(kù)中Alter
Database
數(shù)據(jù)庫(kù)名AddLogFile(Name=邏輯文件名,
FileName='操作系統(tǒng)下的文件名和路徑'[,Size=文件初始容量][,MaxSize={文件最大容量|unlimited}][,FileGrowth=文件增長(zhǎng)幅度])例8在NewSales數(shù)據(jù)庫(kù)增加文件組要求如下:文件組文件名路徑初始大小最大尺寸文件增量文件組Client2Client2_DataE:\2MB10MB1MB事務(wù)日志文件Client2_Log.LdfD:\1MB5MB1MB3.配置數(shù)據(jù)庫(kù)使用ManagementStudio圖形化工具在命令行方式下使用系統(tǒng)存儲(chǔ)過(guò)程SP_DBOPTION例9顯示數(shù)據(jù)庫(kù)Sales可以進(jìn)行重新設(shè)置的選項(xiàng);例10使用命令行方式將NewSales數(shù)據(jù)庫(kù)設(shè)置為只讀。例11將NewSales數(shù)據(jù)庫(kù)設(shè)置為單用戶(hù)方式sp_DBoption['數(shù)據(jù)庫(kù)名'][,'選項(xiàng)名'][,'值']功能選項(xiàng)名值只讀readonlyTRUE、FALSE、ON或OFF,默認(rèn)值為NULL。單用戶(hù)singleuser4.重命名數(shù)據(jù)庫(kù)重命名數(shù)據(jù)庫(kù)Sp_RenameDb'數(shù)據(jù)庫(kù)原名','數(shù)據(jù)庫(kù)新名'5.刪除數(shù)據(jù)庫(kù)刪除數(shù)據(jù)庫(kù)刪除數(shù)據(jù)庫(kù)失敗有以下幾種情況:(1)當(dāng)數(shù)據(jù)庫(kù)正在執(zhí)行數(shù)據(jù)復(fù)制時(shí);(2)數(shù)據(jù)庫(kù)正在恢復(fù)時(shí);(3)當(dāng)有用戶(hù)正在對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作時(shí)。DropDataBase數(shù)據(jù)庫(kù)名[,...n]3.1.4分離與附加數(shù)據(jù)庫(kù)使用圖形工具分離與附加數(shù)據(jù)庫(kù):執(zhí)行【任務(wù)】
【分離】/【附加】分離數(shù)據(jù)庫(kù)的命令:附加數(shù)據(jù)庫(kù)的命令:sp_detach_Db'數(shù)據(jù)庫(kù)名'[,[@skipchecks=]'skipchecks']sp_attach_DB'數(shù)據(jù)庫(kù)名','主數(shù)據(jù)文件的路徑'3.2創(chuàng)建和管理表3.2.1表簡(jiǎn)介表是由數(shù)據(jù)記錄按照一定的順序和格式構(gòu)成的數(shù)據(jù)集合,包含數(shù)據(jù)庫(kù)中所有數(shù)據(jù)的數(shù)據(jù)庫(kù)對(duì)象。表中的每一行代表唯一的一條記錄,每一列代表記錄中的一個(gè)域。在設(shè)計(jì)表時(shí),一般應(yīng)考慮以下幾點(diǎn)。(1)表所包含的列數(shù),每一列的數(shù)據(jù)類(lèi)型,列是否允許空值。(2)表是否需要索引,哪些列是主鍵,哪些列是外鍵。(3)表是否需要約束、默認(rèn)設(shè)置或規(guī)則。分析現(xiàn)實(shí)世界,設(shè)計(jì)表銷(xiāo)售人員商品銷(xiāo)售地址電話(huà)部門(mén)性別姓名編號(hào)Employees進(jìn)貨員工編號(hào)進(jìn)貨時(shí)間數(shù)量零售價(jià)進(jìn)貨價(jià)生產(chǎn)廠(chǎng)商商品名稱(chēng)商品編號(hào)Goods售貨員工編號(hào)售出時(shí)間數(shù)量商品編號(hào)銷(xiāo)售編號(hào)Sell3.2.2創(chuàng)建表使用SSMS 圖形化工具創(chuàng)建表展開(kāi)所需的數(shù)據(jù)庫(kù)節(jié)點(diǎn),右擊“表”節(jié)點(diǎn)
【新建表】命令,輸入相關(guān)的“列名”、“數(shù)據(jù)類(lèi)型”,設(shè)置是否允許空。使用命令行方式創(chuàng)建表CreateTable
[[數(shù)據(jù)庫(kù)名.]表所有者.]表名
(列名列的屬性[,…n])3.2.2創(chuàng)建表例18使用圖形化工具在Sales數(shù)據(jù)庫(kù)中創(chuàng)建Employees表。表的結(jié)構(gòu)如下:列名數(shù)據(jù)類(lèi)型是否為空說(shuō)明備注編號(hào)Char(6)No主鍵姓名Char(8)No性別BitNo部門(mén)Varchar(16)Yes電話(huà)Varchar(20)Yes地址Varchar(50)Yes3.2.2創(chuàng)建表例19使用命令行方式在Sales數(shù)據(jù)庫(kù)中創(chuàng)建Goods表。表的結(jié)構(gòu)如下:列名數(shù)據(jù)類(lèi)型是否為空說(shuō)明備注商品編號(hào)int否主鍵商品名稱(chēng)Varchar(20)否生產(chǎn)廠(chǎng)商Varchar(30)否進(jìn)貨價(jià)money否零售價(jià)money否數(shù)量int否進(jìn)貨時(shí)間datetime否進(jìn)貨員工編號(hào)Char(6)否外鍵與employees關(guān)聯(lián)3.2.3設(shè)置約束約束定義了關(guān)于允許什么數(shù)據(jù)進(jìn)入數(shù)據(jù)庫(kù)的規(guī)則。使用約束的目的是為了防止列出現(xiàn)非法數(shù)據(jù),以保證數(shù)據(jù)庫(kù)中數(shù)據(jù)的一致性和完整性。在SQLServer中,有以下類(lèi)型的約束PrimaryKey(主鍵)約束ForeignKey(外鍵)約束Unique(惟一)約束Check(檢查)約束Default(默認(rèn))約束3.2.3設(shè)置約束PrimaryKey(主鍵)約束表中一列或多列的組合的值能惟一標(biāo)識(shí)這個(gè)表的每一行,SQLServer自動(dòng)為主鍵列創(chuàng)建惟一索引。ForeignKey(外鍵)約束實(shí)現(xiàn)兩個(gè)表之間數(shù)據(jù)的相關(guān)性,限制外鍵的取值必須是主表的主鍵值??梢詫⒈碇兄麈I值的一列或多列添加到另一張表中,以創(chuàng)建兩張表之間的鏈接。Unique(惟一)約束使用UNIQUE約束可以確保表中每條記錄的某些字段值不會(huì)重復(fù)。Check(檢查)約束使用一個(gè)邏輯表達(dá)式來(lái)判斷列中數(shù)據(jù)值的合法性。Default(默認(rèn))約束不為字段輸入值使用默認(rèn)值Employees表編號(hào)姓名性別部門(mén)電話(huà)地址1001趙飛燕0采購(gòu)部…………1301馮曉丹
0銷(xiāo)售部…………1003李建國(guó)1采購(gòu)部…………………………………………………………………………Goods表商品編號(hào)商品名稱(chēng)生產(chǎn)廠(chǎng)商進(jìn)貨價(jià)零售價(jià)數(shù)量進(jìn)貨時(shí)間進(jìn)貨員工編號(hào)2打印機(jī)…………………………10013液晶顯示器…………………………10014數(shù)碼相機(jī)…………………………10025掃描儀…………………………1001Sell表銷(xiāo)售編號(hào)商品編號(hào)數(shù)量售出時(shí)間售貨員工編號(hào)1212004-10-1513012212004-10-1613023522004-10-2613034612005-3-2013015722005-1-31301設(shè)計(jì)約束銷(xiāo)售人員商品銷(xiāo)售地址電話(huà)部門(mén)性別姓名編號(hào)Employees進(jìn)貨員工編號(hào)進(jìn)貨時(shí)間數(shù)量零售價(jià)進(jìn)貨價(jià)生產(chǎn)廠(chǎng)商商品名稱(chēng)商品編號(hào)Goods售貨員工編號(hào)售出時(shí)間數(shù)量商品編號(hào)銷(xiāo)售編號(hào)Sell主鍵外鍵1.PrimaryKey約束例20使用圖形化工具在Sales數(shù)據(jù)庫(kù)中為Employees表的“編號(hào)”列創(chuàng)建PrimaryKey約束。例21使用SQL語(yǔ)句為Goods表的“商品編號(hào)”列創(chuàng)建PrimaryKey約束,約束名為pk_GoodsNo。
altertable
表名
addconstraint
主鍵約束名primarykey(列名)2.唯一值約束使用圖形工具建立唯一約束。使用命令建立唯一約束,語(yǔ)法格式:例3.22為Employees表創(chuàng)建名為IX_EmployeesName的Unique約束,以保證“姓名”列的取值不重復(fù)Altertable表名AddConstraint
唯一約束名Unique(列名)3.默認(rèn)值約束使用圖形工具建立默認(rèn)值約束。使用命令建立默認(rèn)值約束,語(yǔ)法格式:例3.23在Sales數(shù)據(jù)庫(kù)中為Goods表創(chuàng)建名為DF_GoodsDate的Default約束,該約束使“進(jìn)貨時(shí)間”列的默認(rèn)值為當(dāng)前的日期。Altertable表名AddConstraint默認(rèn)值約束名Default(默認(rèn)值)For
字段名4.核(檢)查約束使用圖形工具建立核查約束。使用命令建立核查約束,語(yǔ)法格式:例3.24在Sales數(shù)據(jù)庫(kù)中限定Employees表的“部門(mén)”這一列只能從“財(cái)務(wù)部”、“銷(xiāo)售部”、“采購(gòu)部”及“庫(kù)存部”四個(gè)部門(mén)名稱(chēng)中選一個(gè),不能輸入其他名稱(chēng)。Altertable表名AddConstraint核查約束名Check(條件)5.外鍵約束使用圖形工具建立外鍵約束。使用命令建立外鍵約束,語(yǔ)法格式:例3.25為Goods表創(chuàng)建名為FK_Goods_Employees的外鍵約束,該約束限制“進(jìn)貨員工編號(hào)”列的數(shù)據(jù)只能是Employees表“編號(hào)”列中存在的數(shù)據(jù)。AlterTable表名AddConstraint
外鍵約束名ForeignKey(列名)References
主表名(列名)Employees表編號(hào)姓名性別部門(mén)電話(huà)地址1001趙飛燕0采購(gòu)部…………1301馮曉丹
0銷(xiāo)售部…………1003李建國(guó)1采購(gòu)部…………………………………………………………………………Goods表商品編號(hào)商品名稱(chēng)生產(chǎn)廠(chǎng)商進(jìn)貨價(jià)零售價(jià)數(shù)量進(jìn)貨時(shí)間進(jìn)貨員工編號(hào)2打印機(jī)…………………………10013液晶顯示器…………………………10014數(shù)碼相機(jī)…………………………10025掃描儀…………………………1001Sell表銷(xiāo)售編號(hào)商品編號(hào)數(shù)量售出時(shí)間售貨員工編號(hào)1212004-10-1513012212004-10-1613023522004-10-2613034612005-3-2013015722005-1-31301一對(duì)多5.外鍵約束外鍵是子表上的鍵,定義在該鍵中的列(一個(gè)或一組)能正好與主表中的列在信息和數(shù)量上完全匹配。主表主鍵一條記錄子表外鍵多條記錄一對(duì)多外鍵級(jí)聯(lián)更新級(jí)聯(lián)修改onupdatecascade級(jí)聯(lián)刪除ondeletecascade建立表時(shí)創(chuàng)建約束CREATETABLE
表名
{列名數(shù)據(jù)類(lèi)型,
Constraint約束名約束語(yǔ)句}CREATETABLE
表名
{列名數(shù)據(jù)類(lèi)型約束語(yǔ)句}建立表時(shí)創(chuàng)建約束例3.26使用命令行方式在Sales數(shù)據(jù)庫(kù)中創(chuàng)建Sell表,同時(shí)進(jìn)行約束的設(shè)置。Sell表的結(jié)構(gòu)如下表:列名數(shù)據(jù)類(lèi)型是否為空說(shuō)明備注銷(xiāo)售編號(hào)int否主鍵自動(dòng)生成商品編號(hào)int否外鍵與Goods表關(guān)聯(lián)數(shù)量int否售出時(shí)間datetime否售貨員工編號(hào)Char(6)可外鍵與Employees關(guān)聯(lián)6.查看約束使用圖形工具展開(kāi)“約束”節(jié)點(diǎn)查看使用系統(tǒng)存儲(chǔ)過(guò)程sp_helpConstraintsp_helpConstraint
表名7.禁(啟)用約束altertable
表名Check/nocheckconstraint
約束名添加約束
altertable
表名
addconstraint
主鍵約束名primarykey(列名)AlterTable表名AddConstraint
外鍵約束名ForeignKey(列名)References
主表名(列名)Altertable表名AddConstraint
唯一約束名Unique(列名)Altertable表名AddConstraint檢查約束名Check(條件)Altertable表名AddConstraint默認(rèn)值約束名Default(默認(rèn)值)For
字段名3.2.4管理表查看表的屬性sp_help表名修改表的結(jié)構(gòu)重新命名表sp_rename‘舊表名’,’新表名’刪除表droptable表名altertable表名
add
字段名類(lèi)型altertable表名
alter
column字段名類(lèi)型altertable表名
drop
column字段名3.2.5表操作插入數(shù)據(jù)修改數(shù)據(jù)刪除數(shù)據(jù)insert[into]目標(biāo)表名[(字段列表)]{values({default|null|表達(dá)式}[,...n])|執(zhí)行語(yǔ)句}update目標(biāo)表名
set{列名={表達(dá)式|default|null}[,...n]}{[from{<源表名>}[,...n]]}[where<搜索條件>]delete[from]目標(biāo)表名
{[from{<源表名>}[where<搜索條件>]1.插入數(shù)據(jù)【例3.40】在命令行方式下使用INSERT語(yǔ)句向表Employees插入一條記錄?!纠?.41】使用INSERT語(yǔ)句將表Employees中性別=1的記錄插入表Employees1(設(shè)表Employees1的結(jié)構(gòu)與Employees完全相同)。Employees表編號(hào)姓名性別部門(mén)電話(huà)地址1304李明12.修改數(shù)據(jù)【例3.43】使用UPDATE語(yǔ)句將表Employees中編號(hào)為“1304”記錄的電話(huà)更改為07713836386?!纠?.44】在命令行方式下使用UPDAT語(yǔ)句將表Goods中李明2005年5月20日進(jìn)貨的商品零售價(jià)調(diào)整為九五折。Employees表編號(hào)姓名性別部門(mén)電話(huà)地址1304李明1077138363863.刪除數(shù)據(jù)【例3.45】使用DELETE語(yǔ)句刪除表Sell中售出時(shí)間為1995年1月1日以前的記錄。【例3.46】使用DELETE語(yǔ)句刪除表Goods中李明1995年1月1日以前的進(jìn)貨記錄。3.3數(shù)據(jù)完整性域完整性域完整性也稱(chēng)為列完整性,是指定一個(gè)數(shù)據(jù)集對(duì)某個(gè)列是否有效和確定是否允許為空值。實(shí)體完整性實(shí)體完整性也稱(chēng)為行完整性,要求表中的所有行有一個(gè)惟一的標(biāo)識(shí)符,如主鍵標(biāo)識(shí)。引用完整性引用完整性也稱(chēng)為參照完整性,引用完整性禁止用戶(hù)進(jìn)行以下操作:當(dāng)主表中沒(méi)有關(guān)聯(lián)的記錄時(shí),將記錄添加到相關(guān)表中。更改主表中的值并導(dǎo)致相關(guān)表中的記錄不符。從主表中刪除記錄,仍存在與該記錄匹配的相關(guān)記錄。外鍵約束是強(qiáng)制引用完整性的主要方法。數(shù)據(jù)完整性的類(lèi)型及其說(shuō)明完整性類(lèi)型約束類(lèi)型說(shuō)明域完整性default當(dāng)insert語(yǔ)句沒(méi)有明確提供某列的值時(shí),指定為該列提供缺省值check指定某列可接受的值的范圍實(shí)體完整性primary每一行的惟一標(biāo)識(shí)符號(hào),確保用戶(hù)沒(méi)有輸入重復(fù)的值,并且創(chuàng)建索引以提高性能。不允許有空值unique防止每一行的相關(guān)列(非主鍵)出現(xiàn)重復(fù)值,并且創(chuàng)建索引以提高性能。允許有空值引用完整性foreignkey定義一列或者多列,其值與本表或者其他表的主鍵值匹配第4章數(shù)據(jù)庫(kù)的查詢(xún)學(xué)習(xí)目標(biāo)理解查詢(xún)的機(jī)制使用SELECT語(yǔ)句進(jìn)行條件查詢(xún)?cè)诓樵?xún)中返回限制行、進(jìn)行查詢(xún)排序掌握多表連接查詢(xún)掌握在查詢(xún)中使用數(shù)據(jù)匯總函數(shù)什么是查詢(xún)?客戶(hù)程序查詢(xún)請(qǐng)求查詢(xún)結(jié)果集SQLSERVERABCDEFG
select*fromemployees查詢(xún)產(chǎn)生一個(gè)虛擬表,看到的是表形式顯示的結(jié)果,但結(jié)果并不真正存儲(chǔ),每次執(zhí)行查詢(xún)只是現(xiàn)從數(shù)據(jù)表中提取數(shù)據(jù),并按照表的形式顯示出來(lái)。編號(hào)姓名性別部門(mén)電話(huà)地址1001趙飛燕0采購(gòu)部01032198454北京市南京東路55號(hào)1002劉德發(fā)1采購(gòu)部01032298726北京市建國(guó)路101號(hào)1003李建國(guó)1采購(gòu)部01032147588北京市民主路6號(hào)1101李圓圓0財(cái)務(wù)部01032358697北京市仁愛(ài)路一巷41號(hào)1102劉金武1財(cái)務(wù)部01032298726北京市建國(guó)路101號(hào)1103萬(wàn)興國(guó)1財(cái)務(wù)部01032658325北京市南大街南巷250號(hào)1201孟全1庫(kù)存部01058546230北京市南大街南巷115號(hào)1202黎美麗0庫(kù)存部01058964357北京市教育路32號(hào)select*fromemployees
where性別=01001趙飛燕0采購(gòu)部01032198454北京市南京東路55號(hào)1101李圓圓0財(cái)務(wù)部01032358697北京市仁愛(ài)路一巷41號(hào)1202黎美麗0庫(kù)存部01058964357北京市教育路32號(hào)思考題既然查詢(xún)得到的“結(jié)果集”的結(jié)構(gòu)類(lèi)似于一張表,那么可以在“結(jié)果集”上繼續(xù)進(jìn)行查詢(xún)嗎?如在執(zhí)行語(yǔ)句select*fromemployees
where性別=0后,能否進(jìn)一步在結(jié)果集中查詢(xún)庫(kù)存部的雇員?select*from(select*fromemployeeswhere性別=0)astable1where部門(mén)='庫(kù)存部'select列名1[,列名2]...[into新表名]from表名1[,表名2]...[where條件][groupby列名列表][having條件][orderby列名列表[asc|desc]]列名select編號(hào),姓名,性別,部門(mén)select
編號(hào),姓名,性別,部門(mén)fromemployees
where性別=0
orderby
姓名表fromemployees過(guò)濾條件where
性別=0排序條件orderby
姓名4.2.1SELECT子句使用通配符“*”,返回所有列值使用DISTINCT關(guān)鍵字消除重復(fù)記錄使用TOPn指定返回查詢(xún)結(jié)果的前n行記錄使用列別名改變查詢(xún)結(jié)果中的列名select*fromemployeesselectdistinct生產(chǎn)廠(chǎng)商fromgoodsselecttop4商品名稱(chēng),進(jìn)貨價(jià),數(shù)量fromgoodsselecttop20percent商品名稱(chēng),進(jìn)貨價(jià),數(shù)量fromgoodsselect編號(hào)asnumber,name=姓名,電話(huà)telephonefromemployees4.2.1SELECT子句使用列表達(dá)式select
商品名稱(chēng),進(jìn)貨價(jià)*數(shù)量
as
總金額fromgoods4.2.2FROM子句使用FROM子句指定進(jìn)行查詢(xún)的單個(gè)或者多個(gè)表。在Employees表中查詢(xún)姓名為王峰的員工的聯(lián)系電話(huà),程序?yàn)椋簊elect
姓名,電話(huà)fromemployeesas
c
where
c.姓名='王峰'4.2.3WHERE子句where子句用于指定搜索條件,過(guò)濾不符合查詢(xún)條件的數(shù)據(jù)記錄。過(guò)濾類(lèi)型搜索條件比較運(yùn)算符=、>、<、>=、<=、<>、!>、!<、!=邏輯運(yùn)算符not、and、or字符串比較like、notlike值的范圍between、notbetween列的范圍in、notin未知值isnull、isnotnull4.2.3WHERE子句1.算術(shù)表達(dá)式2.邏輯表達(dá)式select*fromgoodswhere商品名稱(chēng)='筆記本電腦'select商品編號(hào),數(shù)量,售出時(shí)間fromsellwhere售出時(shí)間<'2005-1-1'select商品名稱(chēng)fromgoodswhere
進(jìn)貨價(jià)*數(shù)量<10000select商品名稱(chēng)fromgoods
where
進(jìn)貨時(shí)間<'2005-1-1'and
進(jìn)貨價(jià)>10004.2.3WHERE子句3.like關(guān)鍵字可以與like相匹配的符號(hào)的含義如下%代表任意長(zhǎng)度的字符串;_代表任意一個(gè)字符;[]指定某個(gè)字符的取值范圍,例如[a-e]指集合[abcde]內(nèi)的任何單個(gè)字符;[^]指定某個(gè)字符要排除的取值范圍,例如[^a-e]指不在集合[abcde]內(nèi)的任何單個(gè)字符。select*fromemployeeswhere
姓名like'李%'4.2.3WHERE子句4.between關(guān)鍵字5.in關(guān)鍵字6.null關(guān)鍵字select商品名稱(chēng),零售價(jià)fromgoodswhere
零售價(jià)between2000and3000select商品名稱(chēng),進(jìn)貨價(jià)fromgoodswhere
商品名稱(chēng)in('打印機(jī)','攝像機(jī)')select*fromemployeeswhere電話(huà)isnotnull4.2.4ORDERBY子句orderby用于按查詢(xún)結(jié)果中的一列或多列對(duì)查詢(xún)結(jié)果進(jìn)行排序。單列排序多列排序select商品名稱(chēng),進(jìn)貨價(jià)
fromgoodsorderby
進(jìn)貨價(jià)desc
select商品名稱(chēng),進(jìn)貨價(jià),數(shù)量fromgoodsorderby3
,
2desc
4.3數(shù)據(jù)匯總使用聚合函數(shù)使用groupby子句使用having子句使用compute和computeby子句4.3.1使用聚合函數(shù)聚合函數(shù)的功能是對(duì)整個(gè)表或表中的列組進(jìn)行匯總、計(jì)算,求平均值或總和。函數(shù)格式搜索條件count([distinct|all]*)計(jì)算記錄個(gè)數(shù)count([distinct|all]]<列名>)計(jì)算某列值個(gè)數(shù)avg([distinct|all]<列名>)計(jì)算某列值的平均值max([distinct|all]<列名>)計(jì)算某列值的最大值min([distinct|all]<列名>)計(jì)算某列值的最小值sum([distinct|all]<列名>)計(jì)算某列值的和示例查詢(xún)財(cái)務(wù)部的員工人數(shù)selectcount(*)as人數(shù)fromemployeeswhere部門(mén)='財(cái)務(wù)部'查詢(xún)編號(hào)為1301的員工銷(xiāo)售的商品總數(shù)量和最大一次銷(xiāo)售數(shù)量select'1301'as
員工編號(hào),sum(數(shù)量)
as
銷(xiāo)售總數(shù)量,max(數(shù)量)
as
最大一次銷(xiāo)售量fromsellwhere
售貨員工編號(hào)='1301'
4.3.2使用GROUPBY子句groupby子句用來(lái)對(duì)查詢(xún)結(jié)果進(jìn)行分組,其語(yǔ)法格式如下:groupby[all]列名列表[with{cube|rollup}]參數(shù)搜索條件all返回所有的組和結(jié)果,甚至是不滿(mǎn)足where子句搜索條件的組和結(jié)果。不能和cube或rollup同時(shí)使用列名列表執(zhí)行分組的列或表達(dá)式withcube返回由groupby分組的行外,還包含匯總行。在查詢(xún)結(jié)果內(nèi)返回每個(gè)可能的組和子組組合的groupby匯總行withrollup返回由groupby分組的行外,還包含匯總行4.3.2使用GROUPBY子句統(tǒng)計(jì)各個(gè)部門(mén)的人數(shù)select部門(mén),count(*)as人數(shù)fromemployeesgroupby部門(mén)4.3.2使用GROUPBY子句分別統(tǒng)計(jì)各個(gè)部門(mén)男性女性的人數(shù)select性別,部門(mén),count(部門(mén))fromemployeesgroupby性別,部門(mén)4.3.2使用GROUPBY子句
使用withcube匯總使用withrollup匯總select性別,部門(mén),count(部門(mén))as人數(shù)fromemployees
groupby
性別,部門(mén)withcubeselect性別,部門(mén),count(部門(mén))as人數(shù)fromemployeesgroupby
性別,部門(mén)withrollupwithcubewithrollup注意select后面的每一列數(shù)據(jù)除了出現(xiàn)在聚合函數(shù)中的以外,都必須在groupby子句中應(yīng)用。使用withcube和withrollup選項(xiàng)都會(huì)對(duì)分組結(jié)果進(jìn)行匯總,與cube不同的是rollup只返回第一個(gè)分組列的匯總數(shù)據(jù),且更改分組列的順序會(huì)影響結(jié)果集中生成的行數(shù)。4.3.3使用HAVING子句having子句用來(lái)指定分組或集合的搜索條件,通常和groupby子句一起使用,其行為與where子句相似,只是where子句作用于表和視圖,having子句作用于分組。其語(yǔ)法格式如下:當(dāng)having與groupbyall一起使用時(shí),having子句替代all。在having子句中不能使用text、image、ntext數(shù)據(jù)類(lèi)型having指定條件統(tǒng)計(jì)各部門(mén)的男性人數(shù)select性別,部門(mén),count(部門(mén))as人數(shù)fromemployeesgroupby性別,部門(mén)having
性別='1'select性別,部門(mén),count(部門(mén))as人數(shù)fromemployeeswhere
性別='1'groupby性別,部門(mén)統(tǒng)計(jì)男員工人數(shù)少于兩人的部門(mén)及人數(shù)select性別,部門(mén),count(部門(mén))as人數(shù)fromemployeesgroupby性別,部門(mén)having
性別='1’and
count(部門(mén))<2select性別,部門(mén),count(部門(mén))as人數(shù)fromemployeesWhere
性別='1’and
count(部門(mén))<2groupby性別,部門(mén)4.3.3使用HAVING子句where子句從數(shù)據(jù)源中去掉不符合其搜索條件的數(shù)據(jù)groupby子句搜集數(shù)據(jù)行到各個(gè)組中,統(tǒng)計(jì)函數(shù)為各個(gè)組計(jì)算統(tǒng)計(jì)值having子句去掉不符合其組搜索條件的各組數(shù)據(jù)行4.3.4使用compute和computeby子句有時(shí)我們不僅需要知道數(shù)據(jù)的匯總情況,可能還需要知道詳細(xì)的數(shù)據(jù)記錄,此時(shí)可以使用compute或computeby子句生成明細(xì)匯總結(jié)果。compute子句用于對(duì)列進(jìn)行聚合函數(shù)計(jì)算并生成匯總值,匯總的結(jié)果以附加行的形式出現(xiàn),其語(yǔ)法格式如下:compute{{avg|count|max|min|stdev|stdevp|var|varp|sum}(列名1)}[,...n][by列名1[,...n]]4.3.4使用compute和computeby子句統(tǒng)計(jì)銷(xiāo)售總數(shù)量,同時(shí)顯示詳細(xì)的數(shù)據(jù)記錄分別統(tǒng)計(jì)各個(gè)員工的銷(xiāo)售總數(shù)量,同時(shí)顯示詳細(xì)的數(shù)據(jù)記錄select售貨員工編號(hào),商品編號(hào),數(shù)量fromsellcompute
sum(數(shù)量)select售貨員工編號(hào),商品編號(hào),數(shù)量fromsellorderby
售貨員工編號(hào)
computesum(數(shù)量)by
售貨員工編號(hào)4.4多表聯(lián)接查詢(xún)聯(lián)接查詢(xún)分為五種類(lèi)型:內(nèi)聯(lián)接、左外聯(lián)接、右外聯(lián)接、完全外部聯(lián)接和交叉聯(lián)接。數(shù)據(jù)庫(kù)的設(shè)計(jì)原則是精簡(jiǎn),通常是各個(gè)表中存放不同的數(shù)據(jù),最大限度的減少數(shù)據(jù)庫(kù)冗余數(shù)據(jù)。而實(shí)際工作中,往往需要從多個(gè)表中查詢(xún)出用戶(hù)需要的數(shù)據(jù)并生成單個(gè)的結(jié)果集,這就是聯(lián)接查詢(xún)。聯(lián)接查詢(xún)的語(yǔ)法格式ANSI聯(lián)接語(yǔ)法格式如下SQLServer聯(lián)接語(yǔ)法格式如下:select表名.列名1[,...n]from{表名1[聯(lián)接類(lèi)型]join表名2on聯(lián)接條件}[,...n]where查詢(xún)條件select表名.列名1[,...n]from表名1[,...n]where{查詢(xún)條件and|or聯(lián)接條件}[,...n]多表聯(lián)接查詢(xún)注意事項(xiàng)多表聯(lián)接查詢(xún)實(shí)際上是通過(guò)各個(gè)表之間共同列的關(guān)聯(lián)性來(lái)查詢(xún)數(shù)據(jù),使用時(shí)應(yīng)該注意以下幾點(diǎn)。盡可能以表的主鍵和外鍵來(lái)指定聯(lián)接條件,如果以各表共同擁有的列來(lái)指定聯(lián)接,則這些列的數(shù)據(jù)類(lèi)型必須相同或相兼容。如果所要聯(lián)接的表具有相同的列名,則在引用這些列的時(shí)候,必須指定其表名,格式為:表名.列名參與聯(lián)接查詢(xún)的表的個(gè)數(shù)越多,SQLServer處理這個(gè)查詢(xún)所花費(fèi)的時(shí)間就越長(zhǎng),所以應(yīng)該盡量限制表的個(gè)數(shù)。1.內(nèi)聯(lián)接所謂內(nèi)聯(lián)接指的是返回參與聯(lián)接查詢(xún)的表中所有匹配的行,在ANSI聯(lián)接形式中使用關(guān)鍵字INNERJOIN表示。例查詢(xún)銷(xiāo)售商品的編號(hào)、名稱(chēng)和銷(xiāo)售數(shù)量,使用ANSI聯(lián)接形式(INNERJOIN)完成。select銷(xiāo)售編號(hào),商品名稱(chēng),sell.數(shù)量as銷(xiāo)售數(shù)量fromgoodsinnerjoinsellongoods.商品編號(hào)=sell.商品編號(hào)2.左外聯(lián)接所謂左外聯(lián)接指的是返回參與聯(lián)接查詢(xún)的表中所有匹配的行和所有來(lái)自左表的不符合指定條件的行。在右表中對(duì)應(yīng)于左表無(wú)記錄的部分用null值表示。在ANSI聯(lián)接形式中使用關(guān)鍵字left[outer]join表示,而在SQLServer聯(lián)接形式中使用運(yùn)算符“*=”表示。查詢(xún)銷(xiāo)售商品的編號(hào)、名稱(chēng)和銷(xiāo)售數(shù)量,使用左外聯(lián)接(left[outer]join)完成。select銷(xiāo)售編號(hào),商品名稱(chēng),sell.數(shù)量as銷(xiāo)售數(shù)量fromgoodsleftjoinsellongoods
.
商品編號(hào)=
sell
.
商品編號(hào)SQLServer聯(lián)接形式3.右外聯(lián)接所謂右外聯(lián)接指的是返回參與聯(lián)接查詢(xún)的表中所有匹配的行和所有來(lái)自右表的不符合指定條件的行。在左表中對(duì)應(yīng)于右表無(wú)記錄的部分用NULL值表示。在ANSI聯(lián)接形式中使用關(guān)鍵字right[outer]join表示,而在SQLServer聯(lián)接形式中使用運(yùn)算符“=*”表示。select銷(xiāo)售編號(hào),商品名稱(chēng),sell.數(shù)量as銷(xiāo)售數(shù)量fromgoodsright
joinsellongoods
.
商品編號(hào)=
sell
.
商品編號(hào)SQLServer聯(lián)接形式4.完全外部聯(lián)接所謂完全外部聯(lián)接指的是返回聯(lián)接的兩個(gè)表中的所有相應(yīng)記錄,無(wú)對(duì)應(yīng)記錄的部分用NULL值表示。完全外部聯(lián)接的語(yǔ)法只有ANSI語(yǔ)法格式一種,使用關(guān)鍵字full[outer]join表示。select銷(xiāo)售編號(hào),商品名稱(chēng),sell.數(shù)量as銷(xiāo)售數(shù)量fromgoodsfulljoinsellongoods
.
商品編號(hào)=
sell
.
商品編號(hào)5.交叉聯(lián)接所謂交叉聯(lián)接指的是返回兩個(gè)表交叉查詢(xún)的結(jié)果。它返回兩個(gè)表聯(lián)接后的所有行(即返回兩個(gè)表的笛卡爾積),不需要用ON子句來(lái)指定兩個(gè)表之間任何連接的列。select銷(xiāo)售編號(hào),商品名稱(chēng),sell.數(shù)量as銷(xiāo)售數(shù)量fromgoodscrossjoinsell4.5聯(lián)合查詢(xún)聯(lián)合查詢(xún)是指將多個(gè)SELECT語(yǔ)句返回的結(jié)果通過(guò)UNION操作符組合到一個(gè)結(jié)果集中。參與查詢(xún)的SELECT語(yǔ)句中的列數(shù)和列的順序必須相同,數(shù)據(jù)類(lèi)型也必須兼容。其語(yǔ)法格式如下:all是指查詢(xún)結(jié)果包括所有的行,如果不使用all,則系統(tǒng)自動(dòng)刪除重復(fù)行。聯(lián)合查詢(xún)中,查詢(xún)結(jié)果的列標(biāo)題是第一個(gè)查詢(xún)語(yǔ)句中的列標(biāo)題。如果希望結(jié)果集中的行按照一定的順序排列,則必須在最后一個(gè)有union操作符的語(yǔ)句中使用orderby子句指定排列方式,且使用第一個(gè)查詢(xún)語(yǔ)句中的列名、列標(biāo)題或列序號(hào)。select語(yǔ)句1union[all]select語(yǔ)句24.5聯(lián)合查詢(xún)例聯(lián)合查詢(xún)進(jìn)貨員工和銷(xiāo)售員工的編號(hào)select售貨員工編號(hào)as業(yè)務(wù)員fromsellunion
select進(jìn)貨員工編號(hào)fromgoods4.6嵌套查詢(xún)嵌套查詢(xún)是指在一個(gè)select語(yǔ)句的where子句或having子句中,又嵌套有另外一個(gè)select語(yǔ)句的查詢(xún)。嵌套查詢(xún)中上層的select語(yǔ)句塊稱(chēng)為父查詢(xún)或外層查詢(xún),下層的select語(yǔ)句塊稱(chēng)為子查詢(xún)或內(nèi)層查詢(xún)。在嵌套查詢(xún)中可以包含多個(gè)子查詢(xún),即子查詢(xún)中還可以再包含子查詢(xún),嵌套最多可達(dá)32層,查詢(xún)的處理順序是由內(nèi)向外。例查詢(xún)進(jìn)貨員工的基本信息,程序?yàn)椋簊elect*fromemployeeswhere編號(hào)
=
any(select進(jìn)貨員工編號(hào)fromgoods)使用時(shí)應(yīng)該注意以下幾點(diǎn):①子查詢(xún)需要用圓括號(hào)()括起來(lái);②子查詢(xún)的select語(yǔ)句中不能使用image、text或ntext數(shù)據(jù)類(lèi)型;③子查詢(xún)返回的結(jié)果值的數(shù)據(jù)類(lèi)型必須匹配新增列或where子句中的數(shù)據(jù)類(lèi)型;④子查詢(xún)中不能使用compute[by]或into子句;⑤在子查詢(xún)中不能出現(xiàn)orderby子句,orderby子句應(yīng)該放在最外層的父查詢(xún)中。例查詢(xún)進(jìn)貨員工的基本信息。select*fromemployeeswhere編號(hào)
=
any
(select進(jìn)貨員工編號(hào)fromgoods)本章小結(jié)掌握select語(yǔ)句的基本結(jié)構(gòu)。在select語(yǔ)句中,select子句指定查詢(xún)的特定表中的列,from子句指定查詢(xún)的表,where子句指定查詢(xún)的條件;掌握列別名的三種表示方式,表別名的兩種表示方式;學(xué)會(huì)使用into子句生成新的表,使用orderby子句進(jìn)行數(shù)據(jù)排序;使用比較運(yùn)算符、邏輯運(yùn)算符和like、in、between等關(guān)鍵字過(guò)濾查詢(xún)結(jié)果;使用聚合函數(shù),例如count、avg、max、min、sun等匯總數(shù)據(jù);使用分組子句groupby和having,使用分組計(jì)算子句compute和computeby;掌握聯(lián)接查詢(xún)的五種類(lèi)型:內(nèi)聯(lián)接、左外聯(lián)接、右外聯(lián)接、完全外部聯(lián)接和交叉聯(lián)接;使用union操作符進(jìn)行聯(lián)合查詢(xún)的方法,使用嵌套查詢(xún)的方法。第5章索引學(xué)習(xí)目標(biāo)為什么要使用索引,索引的優(yōu)點(diǎn)是什么;索引分類(lèi)的依據(jù)是什么,了解各種索引的區(qū)別;掌握創(chuàng)建索引的2種方法,在創(chuàng)建索引的過(guò)程中如何設(shè)定其屬性和參數(shù);掌握刪除和修改索引的方法;掌握分析與維護(hù)索引的方法。5.1索引數(shù)據(jù)庫(kù)管理系統(tǒng)通常使用索引技術(shù)加快對(duì)表中數(shù)據(jù)的檢索。索引類(lèi)似于圖書(shū)的目錄。目錄允許用戶(hù)不必翻閱整本圖書(shū)就能根據(jù)頁(yè)數(shù)迅速找到所需內(nèi)容。在數(shù)據(jù)庫(kù)中,索引也允許數(shù)據(jù)庫(kù)應(yīng)用程序迅速找到表中特定的數(shù)據(jù),而不必掃描整個(gè)數(shù)據(jù)庫(kù)。在圖書(shū)中,目錄是內(nèi)容和相應(yīng)頁(yè)碼的列表清單。在數(shù)據(jù)庫(kù)中,索引是表中數(shù)據(jù)和相應(yīng)存儲(chǔ)位置的列表。5.1索引在數(shù)據(jù)庫(kù)的管理中,為了迅速地從龐大的數(shù)據(jù)庫(kù)中找到所需要的數(shù)據(jù),提供了類(lèi)似書(shū)籍目錄作用的索引技術(shù)。通過(guò)在數(shù)據(jù)庫(kù)中對(duì)表建立索引,可以大大加快數(shù)據(jù)的檢索速度。在數(shù)據(jù)查詢(xún)時(shí),如果表的數(shù)據(jù)量很大且沒(méi)有建立索引,SQLServer將從第一條記錄開(kāi)始,逐行掃描整個(gè)表,直到找到符合條件的數(shù)據(jù)行。這樣,系統(tǒng)在查詢(xún)上的開(kāi)銷(xiāo)將很大,且效率會(huì)很低。如果建立索引,SQLServer將根據(jù)索引的有序排列,通過(guò)高效的有序查找算法找到索引項(xiàng),然后通過(guò)索引項(xiàng)直接定位數(shù)據(jù),從而加快查找速度。1.索引的概念索引是與表或視圖關(guān)聯(lián)的磁盤(pán)上結(jié)構(gòu),可以加快從表或視圖中檢索行的速度。它由某個(gè)表或視圖中的一列或者若干列的值,以及這些值的記錄在表中存儲(chǔ)位置的物理地址所組成。索引包含由表或視圖中的一列或多列生成的鍵。這些鍵存儲(chǔ)在一個(gè)結(jié)構(gòu)中,使SQLServer可以快速有效地查找與鍵值關(guān)聯(lián)的行。無(wú)索引的表如何掃描?演示:創(chuàng)建了兩張堆結(jié)構(gòu)的表(無(wú)索引的表)。
setstatisticsio選項(xiàng)會(huì)打開(kāi)一個(gè)特性,使SQLServer將語(yǔ)句執(zhí)行期間I/O操作的有關(guān)信息發(fā)回給用戶(hù)。這是一個(gè)用于判斷查詢(xún)I/O開(kāi)銷(xiāo)的極好特性。
在執(zhí)行之前按“Ctrl+M”或在“查詢(xún)”菜單中選擇“包括實(shí)際的執(zhí)行計(jì)劃”來(lái)包括實(shí)際的執(zhí)行計(jì)劃。然后執(zhí)行兩個(gè)查詢(xún):一個(gè)查詢(xún)所有行,一個(gè)查詢(xún)特定的一行數(shù)據(jù)。setstatisticsioon|off索引的分類(lèi)索引類(lèi)別物理順序數(shù)據(jù)排列創(chuàng)建個(gè)數(shù)聚集索引表中各行的物理順序與索引中行的物理順序是相同的數(shù)據(jù)完全重新排列創(chuàng)建主鍵時(shí),自動(dòng)創(chuàng)建每個(gè)表一個(gè)非聚集索引不相同數(shù)據(jù)不重新排列創(chuàng)建前要?jiǎng)?chuàng)建一個(gè)聚集索引每個(gè)表249個(gè)索引的分類(lèi)索引類(lèi)別唯一性創(chuàng)建唯一索引不能有重復(fù)的值(包括空值)創(chuàng)建唯一鍵時(shí),自動(dòng)創(chuàng)建非唯一索引可以重復(fù)索引類(lèi)別字段個(gè)數(shù)單列索引對(duì)表中單個(gè)字段建立復(fù)合索引對(duì)表中的兩個(gè)或兩個(gè)以上的字段的組合建立,最多可由16個(gè)字段組合全文索引及XML索引5.1.2索引的建立使用SSMS圖形工具使用createindex命令創(chuàng)建索引create[unique][clustered|nonclustered]index
索引名on{表名|視圖名}(列名[asc|desc][,…n])[with
[pad_index][[,]fillfactor=填充因子值][[,]sort_in_tempdb][[,]statistics_norecompute][[,]drop_existing]][on
文件組名]索引的優(yōu)勢(shì):通過(guò)創(chuàng)建唯一性索引,可以保證每一行數(shù)據(jù)的唯一性;可以大大的加快數(shù)據(jù)的檢索速度,這正是使用索引的最主要的原因;在使用orderby和groupby子句進(jìn)行數(shù)據(jù)檢索時(shí),可以減少查詢(xún)中分組和排序的時(shí)間;加速表與表之間的連接,特別是在實(shí)現(xiàn)數(shù)據(jù)庫(kù)的參照完整性上很有意義;可以在檢索數(shù)據(jù)的過(guò)程中提高系統(tǒng)性能。索引的限制也許會(huì)有人要問(wèn)增加索引有如此多的優(yōu)點(diǎn),為什么不對(duì)表中的每一個(gè)列創(chuàng)建一個(gè)索引呢?雖然索引有許多優(yōu)點(diǎn),但是為表中的每一個(gè)列都增加索引是非常不明智的做法。這是因?yàn)樵黾铀饕灿衅洳焕囊幻?。?chuàng)建索引和維護(hù)索引要耗費(fèi)時(shí)間。索引需要占物理空間,除了數(shù)據(jù)表占數(shù)據(jù)空間之外,每一個(gè)索引還要占一定的物理空間。如果要建立聚集索引,那么需要的空間就會(huì)更大。當(dāng)對(duì)表中的數(shù)據(jù)進(jìn)行增加、刪除和修改的時(shí)候,索引也要?jiǎng)討B(tài)的維護(hù),這樣就降低了數(shù)據(jù)的維護(hù)速度。建立索引應(yīng)該遵循以下原則:
在主鍵上創(chuàng)建索引;在經(jīng)常需要檢索的字段上創(chuàng)建索引;在外鍵上創(chuàng)建索引;在經(jīng)常需要排序的列上創(chuàng)建索引?!纠?.1】將Employees表中男員工的數(shù)據(jù)存為一個(gè)新表,命名為“男員工表”;在“男員工表”中按姓名創(chuàng)建一個(gè)唯一性聚集索引,并注意查看索引創(chuàng)建前后數(shù)據(jù)排序的變化。select*into
男員工表fromemployeeswhere
性別=1create
unique
clustered
indexi_姓名
on男員工表(姓名)【例5.2】為employees表的“姓名”字段創(chuàng)建一個(gè)名為“i_姓名”的非聚集索引,使用降序排列,填充因子為30。語(yǔ)句如下:create
indexi_姓名
onemployees(姓名desc)with
fillfactor=30【例5.3】為goods表的“商品編號(hào)”和“商品名稱(chēng)”創(chuàng)建一個(gè)復(fù)合索引“i_goods”設(shè)定各相應(yīng)參數(shù)。create
unique
indexi_goods
ongoods(商品編號(hào),商品名稱(chēng))with
pad_index,fillfactor=50,ignore_dup_key,statistics_norecompute5.1.3索引的刪除使用SSMS圖形工具刪除索引使用dropindex命令刪除索引【例5.4】刪除goods中的索引“i_進(jìn)貨時(shí)間”和銷(xiāo)售表中的索引“i_售出時(shí)間”。語(yǔ)句如下:drop
index'table.index|view.index'[,…n]drop
index
goods.i_進(jìn)貨時(shí)間
,
sell.i_售出時(shí)間5.2索引的分析與維護(hù)創(chuàng)建索引后,必須對(duì)索引進(jìn)行維護(hù),確保索引的統(tǒng)計(jì)信息是有效的,才能夠提高查找速度。隨著更新操作不斷的執(zhí)行,數(shù)據(jù)會(huì)變得支離破碎,這些數(shù)據(jù)碎片會(huì)導(dǎo)致額外的頁(yè)讀取,防礙數(shù)據(jù)的并行掃描。應(yīng)該定期整理索引清除數(shù)據(jù)碎片,提高數(shù)據(jù)讀取的性能。進(jìn)行索引維護(hù)的幾種常用方法:1.統(tǒng)計(jì)信息更新2.重新組織或重新生成索引3.使用命令重建和整理索引1.統(tǒng)計(jì)信息更新當(dāng)往表中添加或從表中刪除數(shù)據(jù)行以及索引列的值發(fā)生改變時(shí),sqlserver將調(diào)整索引頁(yè)以維護(hù)索引數(shù)據(jù)的存儲(chǔ)。頁(yè)拆分時(shí)會(huì)產(chǎn)生碎片,使用dbccshowcontig命令,可顯示指定的表或視圖的數(shù)據(jù)和索引的碎片信息?!纠?.5】顯示goods表的pk_goods索引的碎片統(tǒng)計(jì)信息。dbcc
showcontig(goods,pk_goods)2.重新組織或重新生成索引在sqlserver2005中,可以通過(guò)重新組織索引或重新生成索引來(lái)修復(fù)索引碎片。在索引屬性的“碎片”選擇頁(yè)中,可以查看到碎片數(shù)據(jù)。索引碎片不太多時(shí),可以重新組織索引,如果索引碎片非常多,重新生成索引則可以獲得更好的結(jié)果。【例5.6】重新生成goods表的i_goods索引。3.使用命令重建和整理索引(1)使用dbccdbreindex命令重建指定數(shù)據(jù)庫(kù)中表的一個(gè)或多個(gè)索引?!纠?.7】使用填充因子60重建sales數(shù)據(jù)庫(kù)中g(shù)oods表上的pk_goods聚集索引。(2)使用dbccindexdefrag命令整理指定的表或視圖的聚集索引和非聚集索引碎片,不必單獨(dú)重建每個(gè)索引?!纠?.8】整理northwind數(shù)據(jù)庫(kù)中orders表的customersorders索引碎片。dbccdbreindex('sales.dbo.goods',pk_goods,60)dbccindexdefrag(sales,goods,pk_goods)(3)使用createindex的withdrop_existing命令可以對(duì)重建索引工作進(jìn)行優(yōu)化,用一個(gè)步驟重新創(chuàng)建索引,以避免重建兩次非聚集索引的開(kāi)銷(xiāo)?!纠?.9】重新創(chuàng)建goods表的i_goods索引并配置新的填充因子。createindexi_goodsongoods(進(jìn)貨時(shí)間)withdrop_existing,fillfactor=80本章小結(jié)在本章中,主要介紹了索引的概念、特點(diǎn)、分類(lèi)以及創(chuàng)建索引的方法。通過(guò)本章的學(xué)習(xí),讀者應(yīng)該掌握下列一些內(nèi)容:為什么要使用索引,索引的優(yōu)點(diǎn)是什么;索引分類(lèi)的依據(jù)是什么,了解各種索引的區(qū)別;掌握創(chuàng)建索引的2種方法,在創(chuàng)建索引的過(guò)程中如何設(shè)定其屬性和參數(shù);掌握刪除和修改索引的方法;掌握分析與維護(hù)索引的方法。第6章視圖學(xué)習(xí)目標(biāo)了解視圖和數(shù)據(jù)表之間的區(qū)別了解視圖的優(yōu)點(diǎn)掌握創(chuàng)建、修改和刪除視圖的方法掌握通過(guò)視圖管理數(shù)據(jù)表的數(shù)據(jù)方法
6.1視圖的概念視圖是一個(gè)虛擬表,其結(jié)構(gòu)和數(shù)據(jù)是建立在對(duì)表的查詢(xún)基礎(chǔ)上的。和表一樣,視圖也是包括幾個(gè)被定義的數(shù)據(jù)列和多個(gè)數(shù)據(jù)行,但就本質(zhì)而言這些數(shù)據(jù)列和數(shù)據(jù)行來(lái)源于其所引用的表,所以視圖不是真實(shí)存在的基表,而是一張?zhí)摫?。視圖所對(duì)應(yīng)的數(shù)據(jù)并不實(shí)際地以視圖結(jié)構(gòu)存儲(chǔ)在數(shù)據(jù)庫(kù)中,而是基表中數(shù)據(jù)的一個(gè)映射。視圖的優(yōu)點(diǎn):視點(diǎn)集中簡(jiǎn)化操作定制數(shù)據(jù)合并分割數(shù)據(jù)安全性6.2創(chuàng)建視圖使用SSMS圖形工具創(chuàng)建視圖使用createview命令創(chuàng)建視圖createview[<數(shù)據(jù)庫(kù)名>.][<所有者>.]視圖名[(列名[,...n])][with{encryption|schemabinding|view_metadata}]as
select查詢(xún)語(yǔ)句[withcheckoption]【例6.1】創(chuàng)建一個(gè)視圖v_sales1,要求基表選擇goods,sell,employees,來(lái)源字段為sell表中的銷(xiāo)售編號(hào)、商品編號(hào)和數(shù)量;goods表中的商品名稱(chēng);employees表中編號(hào)和姓名,要求查詢(xún)采購(gòu)部的趙飛燕所采購(gòu)商品的銷(xiāo)售情況。createviewv_sales1asselect
銷(xiāo)售編號(hào),sell.商品編號(hào),sell.數(shù)量,商品名稱(chēng),編號(hào),姓名fromsell,goods,employeeswheregoods.商品編號(hào)=sell.商品編號(hào)andgoods.進(jìn)貨員工編號(hào)=employees.編號(hào)andemployees.姓名='趙飛燕'【例6.2】創(chuàng)建一個(gè)新視圖v_sales2,要求基表選擇goods,sell,employees,來(lái)源字段為sell表中的銷(xiāo)售編號(hào)、商品編號(hào)和數(shù)量;goods表中的商品名稱(chēng);employees表中編號(hào)和姓名,要求查詢(xún)銷(xiāo)售部的王峰所銷(xiāo)售商品的情況,并對(duì)視圖的定義進(jìn)行加密,程序?yàn)椋篶reateviewv_sales2withencryptionasselect
銷(xiāo)售編號(hào),sell.商品編號(hào),sell.數(shù)量,商品名稱(chēng),編號(hào),姓名fromsell,goods,employeeswheregoods.商品編號(hào)=sell.商品編號(hào)andsell.售貨員工編號(hào)=employees.編號(hào)andemployees.姓名='王峰'【例6.3】創(chuàng)建一個(gè)新視圖v_sales3,要求基表選擇goods,sell,來(lái)源字段為sell表中的銷(xiāo)售編號(hào)、商品編號(hào)、
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 邵東市2024湖南邵陽(yáng)市邵東市事業(yè)單位招聘80人筆試歷年參考題庫(kù)典型考點(diǎn)附帶答案詳解(3卷合一)
- 洞頭區(qū)2024年浙江溫州市洞頭區(qū)機(jī)關(guān)事業(yè)單位(國(guó)企)編外招聘16人筆試歷年參考題庫(kù)典型考點(diǎn)附帶答案詳解(3卷合一)
- 晉城市2024年山西晉城市5個(gè)縣(市)部分事業(yè)單位招聘工作人員400名筆試歷年參考題庫(kù)典型考點(diǎn)附帶答案詳解(3卷合一)
- 慶元縣2023浙江麗水市慶元縣人力科技發(fā)展有限公司招聘派駐慶元縣應(yīng)急管理局勞務(wù)外筆試歷年參考題庫(kù)典型考點(diǎn)附帶答案詳解(3卷合一)
- 大方縣2024貴州畢節(jié)市大方縣人民政府辦公室招募見(jiàn)習(xí)人員5人筆試歷年參考題庫(kù)典型考點(diǎn)附帶答案詳解(3卷合一)
- 國(guó)家事業(yè)單位招聘2024國(guó)家糧食和物資儲(chǔ)備局河南局事業(yè)單位招聘統(tǒng)一筆試筆試歷年參考題庫(kù)典型考點(diǎn)附帶答案詳解(3卷合一)
- 北京市2024中共北京市委黨史研究室北京市地方志編纂委員會(huì)辦公室所屬事業(yè)單位招聘筆試歷年參考題庫(kù)典型考點(diǎn)附帶答案詳解(3卷合一)
- 福清出入境邊防檢查站2025年警務(wù)輔助人員招聘?jìng)淇碱}庫(kù)及答案詳解1套
- 2025年臺(tái)州市自然資源和規(guī)劃局黃巖分局公開(kāi)招聘編制外工作人員備考題庫(kù)及答案詳解參考
- 醫(yī)學(xué)科研進(jìn)展:突破與趨勢(shì)分析
- 中醫(yī)門(mén)診病歷范文30份
- 《做一個(gè)學(xué)生喜歡的老師》讀書(shū)分享
- DL∕T 5284-2019 碳纖維復(fù)合材料芯架空導(dǎo)線(xiàn)施工工藝導(dǎo)則(代替DLT 5284-2012)
- 03D201-4 10kV及以下變壓器室布置及變配電所常用設(shè)備構(gòu)件安裝
- 牛黃解毒軟膠囊的藥代動(dòng)力學(xué)研究
- 有機(jī)化學(xué)(嘉興學(xué)院)智慧樹(shù)知到期末考試答案2024年
- 注冊(cè)咨詢(xún)師各科重點(diǎn) 5-現(xiàn)代咨詢(xún)方法與實(shí)務(wù)
- 人員密集場(chǎng)所火災(zāi)應(yīng)急預(yù)案
- 鋼板折邊機(jī)完整版本
- 中風(fēng)恢復(fù)期護(hù)理查房的課件
- 工業(yè)建筑構(gòu)造(房屋建筑課件)
評(píng)論
0/150
提交評(píng)論