物流信息系統(tǒng)課程設(shè)計(jì).ppt
《物流信息系統(tǒng)課程設(shè)計(jì).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《物流信息系統(tǒng)課程設(shè)計(jì).ppt(52頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
SQLServer,,,SQLServer,1SQLServer介紹2SQLServer安裝3SQLServer使用4SQLServer開發(fā),1SQLServer介紹,1.1SQLServer的發(fā)展歷程1.2SQLServer的版本1.3SQLServer的特點(diǎn),1.1SQLServer的發(fā)展歷程,C/S體系結(jié)構(gòu)的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)1988年推出了第一個(gè)OS/2版本1992年,SQLServer移植到NT上后,Microsoft成為這個(gè)項(xiàng)目的主導(dǎo)者1994年以后,Microsoft專注于開發(fā)、推廣SQLServer的WindowsNT版本1996年,Microsoft公司推出了SQLServer6.5版本1998年,推出了SQLServer7.0版本2000年推出了SQLServer2000,1.2SQLServer2000的版本,企業(yè)版(EnterpriseEdition)一般作為數(shù)據(jù)庫服務(wù)器使用標(biāo)準(zhǔn)版(StandardEdition)一般用于小型的工作組或部門個(gè)人版(PersonalEdition)主要適用于移動(dòng)用戶開發(fā)人員版(DeveloperEdition)適用于應(yīng)用程序開發(fā),1.3SQLServer2000的特點(diǎn),真正的客戶機(jī)/服務(wù)器體系結(jié)構(gòu)圖形化用戶界面豐富的編程接口工具SQLServer與Windows操作系統(tǒng)完全集成具有很好的伸縮性對(duì)Web技術(shù)的支持SQLServer提供數(shù)據(jù)倉庫工具,2SQLServer安裝,2.1SQLServer2000的環(huán)境需求2.2SQLServer的系統(tǒng)數(shù)據(jù)庫,2.1SQLServer2000的環(huán)境需求,硬件需求計(jì)算機(jī):Intel及其兼容計(jì)算機(jī),Pentium166Mz或者更高處理器或DECAlpha及其兼容系統(tǒng)。內(nèi)存(RAM):企業(yè)版最少64MB內(nèi)存,其它版本最少需要32MB內(nèi)存,建議使用更多的內(nèi)存。硬盤空間:完全安裝(Full)需要180MB的空間,典型安裝(Typical)需要170MB的空間,最小安裝(Minimum)需要65MB的空間。,2.1SQLServer2000的環(huán)境需求,軟件需求,2.2SQLServer2000的系統(tǒng)數(shù)據(jù)庫,SQLServer2000系統(tǒng)數(shù)據(jù)庫安裝成功,系統(tǒng)自動(dòng)創(chuàng)建6個(gè)系統(tǒng)數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫的文件存儲(chǔ)在安裝目錄下的MSSQL\Data文件夾中,數(shù)據(jù)庫文件的擴(kuò)展名為.mdf,數(shù)據(jù)庫日志文件的擴(kuò)展名為.ldf。Master數(shù)據(jù)庫記錄SQLServer系統(tǒng)的所有系統(tǒng)信息。這些系統(tǒng)信息包括所有的登錄信息、系統(tǒng)設(shè)置信息、SQLServer的初始化信息和其它系統(tǒng)數(shù)據(jù)庫及用戶數(shù)據(jù)庫的相關(guān)信息。Model數(shù)據(jù)庫是所有用戶數(shù)據(jù)庫和Tempdb數(shù)據(jù)庫的模板數(shù)據(jù)庫。它含有Master數(shù)據(jù)庫的所有系統(tǒng)表子集,這些系統(tǒng)數(shù)據(jù)庫是每個(gè)用戶定義數(shù)據(jù)庫時(shí)都需要的。,2.2SQLServer2000的系統(tǒng)數(shù)據(jù)庫,Msdb數(shù)據(jù)庫是代理服務(wù)數(shù)據(jù)庫。Tempdb數(shù)據(jù)庫是一個(gè)臨時(shí)數(shù)據(jù)庫。Tempdb數(shù)據(jù)庫由整個(gè)系統(tǒng)的所有數(shù)據(jù)庫使用。SQLServer每次啟動(dòng)時(shí),tempdb數(shù)據(jù)庫被重新建立。當(dāng)用戶與SQLServer斷開連接時(shí),其臨時(shí)表被自動(dòng)刪除。Pubs和Northwind數(shù)據(jù)庫是SQLServer自帶的兩個(gè)實(shí)例數(shù)據(jù)庫。,Northwind數(shù)據(jù)庫,3SQLServer使用,3.1SQLServer的系統(tǒng)表3.2SQLServer的系統(tǒng)存儲(chǔ)過程3.3Transact–SQL語言介紹3.4SQLServer的常用工具3.5SQLServer的安全性管理3.6SQLServer數(shù)據(jù)庫的創(chuàng)建和管理3.7SQLServer數(shù)據(jù)庫的對(duì)象,3.1SQLServer2000的系統(tǒng)表,Sysobjects表SQLServer的主系統(tǒng)表,出現(xiàn)在每個(gè)數(shù)據(jù)庫中。它對(duì)每個(gè)數(shù)據(jù)庫對(duì)象含有一行記錄。Syscolumns表出現(xiàn)在master數(shù)據(jù)庫和每個(gè)用戶自定義的數(shù)據(jù)庫中,它對(duì)基表或者視圖的每個(gè)列和存儲(chǔ)過程中的每個(gè)參數(shù)含有一行記錄。Sysindexes表出現(xiàn)在master數(shù)據(jù)庫和每個(gè)用戶自定義的數(shù)據(jù)庫中,它對(duì)每個(gè)索引和沒有聚簇索引的每個(gè)表含有一行記錄,它還對(duì)包括文本/圖像數(shù)據(jù)的每個(gè)表含有一行記錄。,3.1SQLServer2000的系統(tǒng)表,Sysusers表出現(xiàn)在master數(shù)據(jù)庫和每個(gè)用戶自定義的數(shù)據(jù)庫中,它對(duì)整個(gè)數(shù)據(jù)庫中的每個(gè)WindowsNT用戶、WindowsNT用戶組、SQLServer用戶或者SQLServer角色含有一行記錄。Sysdatabases表對(duì)SQLServer系統(tǒng)上的每個(gè)系統(tǒng)數(shù)據(jù)庫和用戶自定義的數(shù)據(jù)庫含有一行記錄,只出現(xiàn)在master數(shù)據(jù)庫中。Sysdepends表對(duì)表、視圖和存儲(chǔ)過程之間的每個(gè)依賴關(guān)系含有一行記錄,出現(xiàn)在master數(shù)據(jù)庫和每個(gè)用戶自定義的數(shù)據(jù)庫中。,3.2SQLServer2000的系統(tǒng)存儲(chǔ)過程,系統(tǒng)存儲(chǔ)過程是由SQLServer2000系統(tǒng)自動(dòng)創(chuàng)建的存儲(chǔ)過程系統(tǒng)存儲(chǔ)過程創(chuàng)建并存放于系統(tǒng)數(shù)據(jù)庫master中,并且名稱以sp_或者xp_開頭??梢詮娜魏螖?shù)據(jù)庫中執(zhí)行系統(tǒng)存儲(chǔ)過程。,3.3Transact-SQL語言簡介,結(jié)構(gòu)化查詢語言SQL(StructuredQueryLanguage)SQL語言是關(guān)系型數(shù)據(jù)庫環(huán)境下的標(biāo)準(zhǔn)查詢語言目前,最新的SQL標(biāo)準(zhǔn)是1992年制定的SQL-92微軟公司在SQL標(biāo)準(zhǔn)的基礎(chǔ)上做了大幅度擴(kuò)充SQLServer使用的SQL語言稱為Transact-SQL語言,3.3Transact-SQL語言簡介,在Transact-SQL語言的命令格式中:用[]括起來的內(nèi)容表示是可選的[,…n]表示重復(fù)前面的內(nèi)容用括起來表示在實(shí)際編寫語句時(shí),用相應(yīng)的內(nèi)容替代用{}括起來表示是必選的類似A|B的格式,表示A和B只能選擇一個(gè),不能同時(shí)都選示例SELECTselect_list[INTOnew_table]FROMtable_source[WHEREsearch_condition][GROUPBYgroup_by_expression][HAVINGsearch_condition][ORDERBYorder_expression[ASC|DESC]],3.4SQLServer2000常用工具,常用工具為了管理SQLServer2000的服務(wù)器和客戶機(jī),使用SQLServer2000開發(fā)數(shù)據(jù)庫和應(yīng)用程序,SQLServer2000提供了一套常用的管理工具和實(shí)用程序。主要的管理工具和實(shí)用程序如下:服務(wù)管理器企業(yè)管理器查詢分析器服務(wù)器網(wǎng)絡(luò)實(shí)用工具客戶端網(wǎng)絡(luò)實(shí)用工具導(dǎo)入和導(dǎo)出數(shù)據(jù)聯(lián)機(jī)幫助文檔,3.5SQLServer2000的安全性管理,SQLServer2000登錄身份驗(yàn)證模式SQLServer身份驗(yàn)證Windows身份驗(yàn)證SQLServer數(shù)據(jù)庫的安全性用戶成功登錄SQLServer服務(wù)器后,并不自動(dòng)擁有對(duì)所有數(shù)據(jù)庫的訪問權(quán)限。用戶必須在想要訪問的數(shù)據(jù)庫中也有一個(gè)帳戶。當(dāng)需要訪問某個(gè)數(shù)據(jù)庫時(shí),SQLServer的安全系統(tǒng)會(huì)根據(jù)這個(gè)帳戶的權(quán)限決定是否允許用戶訪問該數(shù)據(jù)庫。,3.5SQLServer2000的安全性管理,SQLServer數(shù)據(jù)庫對(duì)象的安全性在創(chuàng)建一個(gè)數(shù)據(jù)庫對(duì)象時(shí),創(chuàng)建者將自動(dòng)擁有對(duì)該數(shù)據(jù)庫對(duì)象的所有權(quán),即可以完全控制該對(duì)象。當(dāng)一個(gè)非數(shù)據(jù)庫擁有者想要訪問數(shù)據(jù)庫中的對(duì)象時(shí),必須事先由數(shù)據(jù)庫擁有者賦予該用戶對(duì)指定對(duì)象的操作權(quán)限。管理服務(wù)器的安全性服務(wù)器角色登陸數(shù)據(jù)庫角色用戶特殊帳戶sa,3.6SQLServer2000數(shù)據(jù)庫的創(chuàng)建和管理,數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)分為邏輯存儲(chǔ)結(jié)構(gòu)和物理存儲(chǔ)結(jié)構(gòu)。數(shù)據(jù)庫的邏輯存儲(chǔ)結(jié)構(gòu)指的是數(shù)據(jù)庫是由哪些性質(zhì)的信息所組成。實(shí)際上,SQLServer的數(shù)據(jù)庫是由諸如表、視圖、索引等各種不同的數(shù)據(jù)庫對(duì)象所組成。數(shù)據(jù)庫的物理存儲(chǔ)結(jié)構(gòu)是指數(shù)據(jù)庫文件是如何在磁盤上存儲(chǔ)的。SQLServer的數(shù)據(jù)庫在磁盤上是以文件為單位存儲(chǔ)的,由數(shù)據(jù)庫文件和事務(wù)日志文件組成,一個(gè)數(shù)據(jù)庫至少應(yīng)該包含一個(gè)數(shù)據(jù)庫文件和一個(gè)事務(wù)日志文件。,3.6SQLServer2000數(shù)據(jù)庫的創(chuàng)建和管理,數(shù)據(jù)庫的創(chuàng)建創(chuàng)建數(shù)據(jù)庫需要一定許可,在默認(rèn)情況下,只有系統(tǒng)管理員和數(shù)據(jù)庫擁有者可以創(chuàng)建數(shù)據(jù)庫。數(shù)據(jù)庫被創(chuàng)建后,創(chuàng)建數(shù)據(jù)庫的用戶自動(dòng)成為該數(shù)據(jù)庫的所有者。創(chuàng)建數(shù)據(jù)庫的過程實(shí)際上就是為數(shù)據(jù)庫設(shè)計(jì)名稱、設(shè)計(jì)所占用的存儲(chǔ)空間和存放文件位置的過程等??梢允褂闷髽I(yè)管理器和Transact-SQL語言創(chuàng)建數(shù)據(jù)庫。數(shù)據(jù)庫的修改、刪除數(shù)據(jù)庫的備份,3.7SQLServer2000數(shù)據(jù)庫的對(duì)象,3.7.1表3.7.2約束3.7.3數(shù)據(jù)類型3.7.4視圖3.7.5索引3.7.6存儲(chǔ)過程3.7.7觸發(fā)器,3.7.1表,基本概念表是包含數(shù)據(jù)庫中所有數(shù)據(jù)的數(shù)據(jù)庫對(duì)象,用來存儲(chǔ)各種信息。在SQLServer2000中,一個(gè)數(shù)據(jù)庫中最多可以創(chuàng)建200萬個(gè)表,用戶創(chuàng)建數(shù)據(jù)庫表時(shí),最多可以定義1024列。在同一數(shù)據(jù)庫的不同表中,可以有相同的字段,但在同一個(gè)表中不允許有相同的字段,而且每個(gè)字段都要求數(shù)據(jù)類型相同。,3.7.1表,表的創(chuàng)建默認(rèn)值。指定列的默認(rèn)值。定義為timestamp或帶IDENTITY屬性的列不能指定。只有常量值(如字符串)、SQLServer內(nèi)部函數(shù)(如SYSTEM_USER())或NULL值可以用作默認(rèn)值。精度和小數(shù)位數(shù)。精度是列的總長度,包括整數(shù)部分和小數(shù)部分的長度之和,但不包括小數(shù)點(diǎn);小數(shù)位數(shù)指定小數(shù)點(diǎn)后面的長度。標(biāo)識(shí)。指定列是否是標(biāo)識(shí)列。一個(gè)表只能創(chuàng)建一個(gè)標(biāo)識(shí)列。必須同時(shí)指定種子和增量,或者兩者都不指定,默認(rèn)值(1,1)。能夠成為標(biāo)識(shí)列的數(shù)據(jù)類型有int、smallint、tinyint、numeric和decimal等系統(tǒng)數(shù)據(jù)類型;如果其數(shù)據(jù)類型為numeric和decimal,不允許出現(xiàn)小數(shù)位數(shù)。公式。用于指定計(jì)算列的列值表達(dá)式。排序規(guī)則。指定列的排序規(guī)則。在數(shù)據(jù)庫中表名必須是唯一的,但是如果為表指定了不同的用戶,就可以創(chuàng)建多個(gè)相同名稱的表。,3.7.1表,表中數(shù)據(jù)的操作在企業(yè)管理器中操作表中的數(shù)據(jù)使用SELECT語句查詢數(shù)據(jù)使用INSERT語句插入數(shù)據(jù)使用UPDATE語句更新數(shù)據(jù)使用DELETE語句刪除數(shù)據(jù),SELECT語法,SELECTselect_list[INTOnew_table]FROMtable_source[WHEREsearch_condition][GROUPBYgroup_by_expression][HAVINGsearch_condition][ORDERBYorder_expression[ASC|DESC]],INSERT語法,INSERT[INTO]{table_nameWITH([...n])|view_name|rowset_function_limited}{[(column_list)]{VALUES({DEFAULT|NULL|expression}[,...n])|derived_table|execute_statement}}|DEFAULTVALUES,UPDATE語法,UPDATE{table_nameWITH([...n])|view_name|rowset_function_limited}SET{column_name={expression|DEFAULT|NULL}|@variable=expression|@variable=column=expression}[,...n]{{[FROM{}[,...n]][WHERE]}|[WHERECURRENTOF{{[GLOBAL]cursor_name}|cursor_variable_name}]}[OPTION([,...n])]},DELETE語法,DELETE[FROM]{table_nameWITH([...n])|view_name|rowset_function_limited}[FROM{}[,...n]][WHERE{|{[CURRENTOF{{[GLOBAL]cursor_name}|cursor_variable_name}]}}],3.7.2約束,約束是SQLServer提供的自動(dòng)保持?jǐn)?shù)據(jù)庫完整性的一種方法列級(jí)約束。列級(jí)約束是列定義的一部分,只能夠應(yīng)用在一列上。表級(jí)約束。表級(jí)約束獨(dú)立于列的定義,可以應(yīng)用在一個(gè)表的多列上。主鍵約束主鍵能唯一地確定表中的每一條記錄,可以保證實(shí)體的完整性。不能取空值。唯一性約束唯一性約束用于指定一個(gè)或多個(gè)列的組合值具有唯一性,以防止在列中輸入重復(fù)的值使用唯一性約束的字段允許為空值一個(gè)表中可以允許有多個(gè)唯一性約束可以把唯一性約束定義在多個(gè)字段上唯一性約束用于強(qiáng)制在指定字段上創(chuàng)建一個(gè)唯一性索引默認(rèn)情況下,創(chuàng)建的索引類型為非聚集索引,3.7.2約束,檢查約束保證數(shù)據(jù)庫數(shù)據(jù)的完整性一個(gè)列級(jí)檢查約束只能與限制的字段有關(guān);一個(gè)表級(jí)檢查約束只能與限制的表中字段有關(guān)一個(gè)表中可以定義多個(gè)檢查約束每個(gè)CREATETABLE語句中每個(gè)字段只能定義一個(gè)檢查約束在多個(gè)字段上定義檢查約束,必須將檢查約束定義為表級(jí)約束當(dāng)執(zhí)行INSERT語句或者UPDATE語句時(shí),檢查約束將驗(yàn)證數(shù)據(jù)檢查約束中不能包含子查詢默認(rèn)約束每個(gè)字段只能定義一個(gè)默認(rèn)約束如果定義的默認(rèn)值長于其對(duì)應(yīng)字段的允許長度,那么輸入到表中的默認(rèn)值將被截?cái)嗖荒芗尤氲綆в蠭DENTITY屬性或者數(shù)據(jù)類型為timestamp的字段上,3.7.2約束,外鍵約束外鍵約束主要用來維護(hù)兩個(gè)表之間數(shù)據(jù)的一致性外鍵約束提供了字段參照完整性外鍵約束不能自動(dòng)創(chuàng)建索引,需要用戶手動(dòng)創(chuàng)建用戶想要修改外鍵約束的數(shù)據(jù),必須有對(duì)外鍵約束所參考表的SELECT權(quán)限或者REFERENCES權(quán)限參考同一表中的字段時(shí),必須只使用REFERENCES子句,不能使用外鍵子句一個(gè)表中最多可以有31個(gè)外鍵約束在臨時(shí)表中,不能使用外鍵約束主鍵和外鍵的數(shù)據(jù)類型必須嚴(yán)格匹配,3.7.3數(shù)據(jù)類型,整型數(shù)據(jù)類型Bigint、Int、Smallint、Tinyint浮點(diǎn)數(shù)據(jù)類型Real:4個(gè)字節(jié)的,最大7位精確位數(shù)。Float:可以精確到第15位小數(shù),默認(rèn)占用8個(gè)字節(jié)的存儲(chǔ)空間。Float數(shù)據(jù)類型也可以寫為float(n)的形式,n為1~15之間的整數(shù)值。當(dāng)n取1~7時(shí),系統(tǒng)用4個(gè)字節(jié)存儲(chǔ)它;當(dāng)n取8~15時(shí),用8個(gè)字節(jié)存儲(chǔ)它。Decimal和numeric:可以提供小數(shù)所需要的實(shí)際存儲(chǔ)空間,可以用2~17個(gè)字節(jié)來存儲(chǔ)。也可以將其寫為decimal(p,s)的形式。例如:decimal(10,5),表示共有10位數(shù),其中整數(shù)5位,小數(shù)5位。,3.7.3數(shù)據(jù)類型,字符數(shù)據(jù)類型用來存儲(chǔ)各種字母、數(shù)字符號(hào)和特殊符號(hào)。在使用時(shí)需要在其前后加上英文單引號(hào)或者雙引號(hào)。Char:其定義形式為:char(n)n的取值為1~8000。默認(rèn)n的值為1。Varchar:可以存儲(chǔ)長達(dá)8000個(gè)字符的可變長度字符串,和char類型不同varchar類型根據(jù)輸入數(shù)據(jù)的實(shí)際長度而變化。其定義形式為:varchar(n)。Nchar:采用Unicode(統(tǒng)一字符編碼標(biāo)準(zhǔn))字符集每個(gè)Unicode字符用兩個(gè)字節(jié)為一個(gè)存儲(chǔ)單位。其定義形式為:nchar(n)。Nvarchar:使用Unicode字符集的Varchar數(shù)據(jù)類型。其定義形式為:nvarchar(n)。,3.7.3數(shù)據(jù)類型,日期和時(shí)間數(shù)據(jù)類型Datetime:占用8個(gè)字節(jié)。用于存儲(chǔ)日期和時(shí)間的結(jié)合體,可以存儲(chǔ)從公元1753年1月1日零時(shí)起~公元9999年12月31日23時(shí)59分59秒之間的所有日期和時(shí)間,其精確度可達(dá)三百分之一秒。當(dāng)存儲(chǔ)datetime數(shù)據(jù)類型時(shí),默認(rèn)的格式是:MMDDYYYYhh:mmA.M./P.M。當(dāng)插入數(shù)據(jù)或者在其它地方使用datetime類型時(shí),需要用單引號(hào)把它括起來。默認(rèn)January1,190012:00A.M??梢越邮艿妮斎敫袷饺缦拢篔an41999、JAN41999、January41999、Jan19994、19994Jan和1999Jan4。datetime數(shù)據(jù)類型允許使用/、-和.作為不同時(shí)間單位間的分隔符。Smalldatetime:4個(gè)字節(jié)。存儲(chǔ)從1900年1月1日~2079年6月6日內(nèi)的日期。,3.7.3數(shù)據(jù)類型,文本和圖形數(shù)據(jù)類型Text:容量可以在1~231-1個(gè)字節(jié)。在定義Text數(shù)據(jù)類型時(shí),不需要指定數(shù)據(jù)長度,SQLServer會(huì)根據(jù)數(shù)據(jù)的長度自動(dòng)為其分配空間。Ntext:采用unicode標(biāo)準(zhǔn)字符集,用于存儲(chǔ)大容量文本數(shù)據(jù)。其理論上的容量為230-1(1,073,741,823)個(gè)字節(jié)。Image:用于存儲(chǔ)照片、目錄圖片或者圖畫,其理論容量為231-1(2,147,483,647)個(gè)字節(jié)。貨幣數(shù)據(jù)類型Money:用于存儲(chǔ)貨幣值,數(shù)值以一個(gè)正數(shù)部分和一個(gè)小數(shù)部分存儲(chǔ)在兩個(gè)4字節(jié)的整型值中,存儲(chǔ)范圍為-922337213685477.5808~922337213685477.5808,精度為貨幣單位的萬分之一。Smallmoney:其存儲(chǔ)范圍為-214748.3468~214748.3467。當(dāng)為money或smallmoney的表輸入數(shù)據(jù)時(shí),必須在有效位置前面加一個(gè)貨幣單位符號(hào)(如$或其它貨幣單位的記號(hào))。,3.7.3數(shù)據(jù)類型,位數(shù)據(jù)類型Bit稱為位數(shù)據(jù)類型,有兩種取值:0和1。在輸入0以外的其它值時(shí),系統(tǒng)均把它們當(dāng)1看待。特殊數(shù)據(jù)類型Timestamp:也稱作時(shí)間戳數(shù)據(jù)類型。是一種自動(dòng)記錄時(shí)間的數(shù)據(jù)類型,主要用于在數(shù)據(jù)表中記錄其數(shù)據(jù)的修改時(shí)間。它提供數(shù)據(jù)庫范圍內(nèi)的唯一值。Uniqueidentifier:也稱作唯一標(biāo)識(shí)符數(shù)據(jù)類型。Uniqueidentifier用于存儲(chǔ)一個(gè)16字節(jié)長的二進(jìn)制數(shù)據(jù)類型,它是SQLServer根據(jù)計(jì)算機(jī)網(wǎng)絡(luò)適配器地址和CPU時(shí)鐘產(chǎn)生的全局唯一標(biāo)識(shí)符代碼(GloballyUniqueIdentifier,簡寫為GUID)。,3.7.4視圖,視圖的概念視圖是是從一個(gè)或者多個(gè)數(shù)據(jù)表或視圖中導(dǎo)出的虛表,視圖的結(jié)構(gòu)和數(shù)據(jù)是對(duì)數(shù)據(jù)表進(jìn)行查詢的結(jié)果。視圖被定義后便存儲(chǔ)在數(shù)據(jù)庫中,通過視圖看到的數(shù)據(jù)只是存放在基表中的數(shù)據(jù)。當(dāng)對(duì)通過視圖看到的數(shù)據(jù)進(jìn)行修改時(shí),相應(yīng)的基表的數(shù)據(jù)也會(huì)發(fā)生變化,同時(shí),若基表的數(shù)據(jù)發(fā)生變化,這種變化也會(huì)自動(dòng)地反映到視圖中。視圖可以是一個(gè)數(shù)據(jù)表的一部分,也可以是多個(gè)基表的聯(lián)合。視圖的優(yōu)點(diǎn)視圖可以屏蔽數(shù)據(jù)的復(fù)雜性,簡化用戶對(duì)數(shù)據(jù)庫的操作。視圖可以讓不同的用戶以不同的方式看到不同或者相同的數(shù)據(jù)集??梢允褂靡晥D重新組織數(shù)據(jù)。視圖可以定制不同用戶對(duì)數(shù)據(jù)的訪問權(quán)限。,3.7.4視圖,創(chuàng)建視圖視圖的名稱只能在當(dāng)前數(shù)據(jù)庫中創(chuàng)建視圖。一個(gè)視圖中行、列的限制。如果視圖中某一列是函數(shù)、數(shù)學(xué)表達(dá)式、常量或者來自多個(gè)表的列名相同,則必須為列定義名稱。不能在視圖上創(chuàng)建索引,不能在規(guī)則、默認(rèn)的定義中引用視圖。,3.7.4視圖,使用視圖修改視圖中的數(shù)據(jù)時(shí)每次修改都只能影響一個(gè)基表。不能修改那些通過計(jì)算得到的字段。如果在創(chuàng)建視圖時(shí)指定了WITHCHECKOPTION選項(xiàng),那么所有使用視圖修改數(shù)據(jù)庫信息時(shí),必須保證修改后的數(shù)據(jù)滿足視圖定義的范圍。執(zhí)行UPDATE、DELETE命令時(shí),所刪除與更新的數(shù)據(jù)必須包含在視圖的結(jié)果集中。如果視圖引用多個(gè)表時(shí),無法用DELETE命令刪除數(shù)據(jù),若使用UPDATE命令則應(yīng)與INSERT操作一樣,被更新的列必須屬于同一個(gè)表。,3.7.5索引,索引的概念數(shù)據(jù)庫中的索引是一個(gè)列表,在這個(gè)列表中包含了某個(gè)表中一列或者若干列值的集合,以及這些值的記錄在數(shù)據(jù)表中的存儲(chǔ)位置的物理地址。索引的優(yōu)點(diǎn)可以大大加快數(shù)據(jù)檢索速度。通過創(chuàng)建唯一索引,可以保證數(shù)據(jù)記錄的唯一性。在使用ORDERBY和GROUPBY子句進(jìn)行檢索數(shù)據(jù)時(shí),可以顯著減少查詢中分組和排序的時(shí)間。使用索引可以在檢索數(shù)據(jù)的過程中提高系統(tǒng)性能。可以加速表與表之間的連接,這一點(diǎn)在實(shí)現(xiàn)數(shù)據(jù)的參照完整性方面有特別的意義。,3.7.5索引,索引的分類聚集索引和非聚集索引復(fù)合索引唯一索引,3.7.6存儲(chǔ)過程,存儲(chǔ)過程的概念SQLServer的存儲(chǔ)過程類似于編程語言中的過程。在使用Transact-SQL語言編程的過程中,可以將某些需要多次調(diào)用的實(shí)現(xiàn)某個(gè)特定任務(wù)的代碼段編寫成一個(gè)過程,將其保存在數(shù)據(jù)庫中,并由SQLServer服務(wù)器通過過程名來調(diào)用它們,這些過程就叫做存儲(chǔ)過程。存儲(chǔ)過程在創(chuàng)建時(shí)就被編譯和優(yōu)化,調(diào)用一次以后,相關(guān)信息就保存在內(nèi)存中,下次調(diào)用時(shí)可以直接執(zhí)行。存儲(chǔ)過程的優(yōu)點(diǎn)實(shí)現(xiàn)了模塊化編程。存儲(chǔ)過程具有對(duì)數(shù)據(jù)庫立即訪問的功能。使用存儲(chǔ)過程可以加快程序的運(yùn)行速度。使用存儲(chǔ)過程可以減少網(wǎng)絡(luò)流量。使用存儲(chǔ)過程可以提高數(shù)據(jù)庫的安全性。,存儲(chǔ)過程示例,CREATEPROCEDUREfindproduct@articlechar(11)ASSELECT*FROMproductWHEREarticlelike@articleGO,存儲(chǔ)過程執(zhí)行,EXECUTEfindproduct‘電阻’EXECUTEfindproduct@article=‘電阻’EXECfindproduct‘電阻’EXECfindproduct@article=‘電阻’,3.7.7觸發(fā)器,觸發(fā)器的概念觸發(fā)器是一種特殊類型的存儲(chǔ)過程。一般的存儲(chǔ)過程通過存儲(chǔ)過程名稱被直接調(diào)用,而觸發(fā)器主要是通過事件進(jìn)行觸發(fā)而被執(zhí)行觸發(fā)器是一個(gè)功能強(qiáng)大的工具,在表中數(shù)據(jù)發(fā)生變化時(shí)自動(dòng)強(qiáng)制執(zhí)行。觸發(fā)器可以用于SQLServer約束、默認(rèn)值和規(guī)則的完整性檢查,還可以完成難以用普通約束實(shí)現(xiàn)的復(fù)雜功能。觸發(fā)器的優(yōu)點(diǎn)觸發(fā)器是自動(dòng)的執(zhí)行的。觸發(fā)器可以通過數(shù)據(jù)庫中的相關(guān)表進(jìn)行層疊更改。,觸發(fā)器示例一,CREATETRIGGERtrg_d_statitemON[dbo].[itemfield]FORDELETEASdeletestatitemfromstatitem,deletedwherestatitem.fieldid=deleted.fieldid,觸發(fā)器示例二,CREATETRIGGERtrg_i_statitemON[dbo].[itemfield]FORINSERTASinsertintostatitemselectfieldid,itemid,fieldsn,fieldsn,sequences,type,inputtype,0,Y,Y,Yfrominserted,觸發(fā)器示例三,CREATETRIGGERtrg_u_statitemON[dbo].[itemfield]FORUPDATEASifupdate(fieldid)orupdate(itemid)orupdate(fieldsn)orupdate(sequences)orupdate(type)orupdate(inputtype)updatestatitemsetfieldid=inserted.fieldid,itemid=inserted.itemid,fieldsn=inserted.fieldsn,sequences=inserted.sequences,type=inserted.type,inputtype=inserted.inputtypefrominserted,deletedwherestatitem.fieldid=deleted.fieldid,4Transact-SQL程序設(shè)計(jì),概述注釋變量運(yùn)算符函數(shù)流程控制語句,- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 物流 信息系統(tǒng) 課程設(shè)計(jì)
鏈接地址:http://m.appdesigncorp.com/p-3423696.html