SQL Server 2005數(shù)據(jù)及應(yīng)用現(xiàn)_第1頁(yè)
SQL Server 2005數(shù)據(jù)及應(yīng)用現(xiàn)_第2頁(yè)
SQL Server 2005數(shù)據(jù)及應(yīng)用現(xiàn)_第3頁(yè)
SQL Server 2005數(shù)據(jù)及應(yīng)用現(xiàn)_第4頁(yè)
SQL Server 2005數(shù)據(jù)及應(yīng)用現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩59頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)據(jù)庫(kù)課程組深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組2|項(xiàng)目名稱:數(shù)據(jù)庫(kù)的實(shí)現(xiàn)|項(xiàng)目介紹:數(shù)據(jù)庫(kù)的實(shí)現(xiàn)主要包括四個(gè)方面:z創(chuàng)建與管理數(shù)據(jù)庫(kù)z創(chuàng)建和管理數(shù)據(jù)庫(kù)表z數(shù)據(jù)完整性的實(shí)現(xiàn)z優(yōu)化查詢速度|項(xiàng)目分析:在完成了數(shù)據(jù)庫(kù)設(shè)計(jì)的基礎(chǔ)上,需要在sql server 2005中實(shí)現(xiàn)出來(lái)。數(shù)據(jù)庫(kù)的實(shí)現(xiàn)包括:創(chuàng)建數(shù)據(jù)庫(kù);在數(shù)據(jù)庫(kù)中創(chuàng)建表格;為了保證數(shù)據(jù)完整性,增加約束、默認(rèn)值和規(guī)則;為了加快檢索和方便查詢,創(chuàng)建索引和視圖。深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組3|相關(guān)知識(shí):創(chuàng)建和管理數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)表;增加約束、

2、默認(rèn)值和規(guī)則的方法;創(chuàng)建索引和視圖的方法。|項(xiàng)目教學(xué)單元:z任務(wù)1:創(chuàng)建與管理數(shù)據(jù)庫(kù)z任務(wù)2:創(chuàng)建和管理數(shù)據(jù)庫(kù)表z任務(wù)3:數(shù)據(jù)完整性的實(shí)現(xiàn)z任務(wù)4:優(yōu)化查詢速度深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組4 4任務(wù)1:創(chuàng)建與管理數(shù)據(jù)庫(kù)深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組5深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組6|系統(tǒng)數(shù)據(jù)庫(kù)zmaster數(shù)據(jù)庫(kù):記錄系統(tǒng)的所有系統(tǒng)級(jí)的信息zmodel數(shù)據(jù)庫(kù):模板數(shù)據(jù)庫(kù)zmsdb數(shù)據(jù)庫(kù):記錄了有關(guān)sql server a

3、gent服務(wù)的信息ztempdb數(shù)據(jù)庫(kù):臨時(shí)數(shù)據(jù)庫(kù),用于保存中間數(shù)據(jù)深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組7|數(shù)據(jù)庫(kù)文件z主數(shù)據(jù)文件:包含數(shù)據(jù)庫(kù)的啟動(dòng)信息、數(shù)據(jù)信息唯一的z事務(wù)日志:包含恢復(fù)數(shù)據(jù)庫(kù)的所有日志信息至少一個(gè)z次數(shù)據(jù)文件:包含除了主文件外的所有數(shù)據(jù)信息零個(gè)、一個(gè)或多個(gè)|物理文件(操作系統(tǒng)中實(shí)際存在的文件)和邏輯文件(數(shù)據(jù)庫(kù)中的標(biāo)志)深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組8|數(shù)據(jù)庫(kù)文件組z主文件組、次文件組、用戶定義文件組z可以提高數(shù)據(jù)庫(kù)的查詢性能|設(shè)計(jì)文件和文件組的規(guī)則z一個(gè)文件或文件

4、組不能用于多個(gè)數(shù)據(jù)庫(kù),只能用于一個(gè)數(shù)據(jù)庫(kù)z一個(gè)文件只能是一個(gè)文件組的成員z一個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)信息和事務(wù)日志信息總是分開(kāi)存放的z事務(wù)日志文件不能成為任何文件組的成員深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組9|使用management studio創(chuàng)建|使用向?qū)?chuàng)建(簡(jiǎn)略)|使用sql語(yǔ)句創(chuàng)建(重點(diǎn))名稱newdb數(shù)據(jù)文件:保存在c: 3mb-10mb 按1mb增長(zhǎng)事務(wù)日志:保存在c: 2mb-10mb 按10增長(zhǎng)|顯示數(shù)據(jù)庫(kù)信息 sp_helpdb 數(shù)據(jù)庫(kù)名深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組10|

5、擴(kuò)充數(shù)據(jù)庫(kù)和事務(wù)日志的容量|增加次要文件和事務(wù)日志文件【練習(xí)】為newdb數(shù)據(jù)庫(kù)增加一個(gè)次要文件newdb_data2 保存在c: 2mb-10mb 按2mb增長(zhǎng)|配置數(shù)據(jù)庫(kù)(sp_dboption)|縮小數(shù)據(jù)文件和數(shù)據(jù)庫(kù)|重命名數(shù)據(jù)庫(kù)(sp_renamedb)|刪除數(shù)據(jù)庫(kù)深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組11|創(chuàng)建數(shù)據(jù)庫(kù)名稱newxk數(shù)據(jù)文件newxk_data.mdf,保存在c:中,5mb-10mb,按1mb增長(zhǎng)事務(wù)日志newxk_log.ldf,保存在c:中,2mb-5mb,按10增長(zhǎng)|完成實(shí)訓(xùn)任務(wù)單4-1深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)

6、學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組12|理解數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)(物理文件和邏輯文件)|熟練掌握創(chuàng)建、刪除和修改數(shù)據(jù)庫(kù)的方法(重點(diǎn))深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組1313任務(wù)2:創(chuàng)建與管理數(shù)據(jù)庫(kù)表深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組14|數(shù)據(jù)庫(kù)中的表的概念|sql server的數(shù)據(jù)類型z數(shù)據(jù)類別z長(zhǎng)度z精度z小數(shù)位數(shù)|空值:沒(méi)有輸入的值,未知或未定義z避免用空值直接參與運(yùn)算z盡量不要允許用空值(用默認(rèn)值解決沒(méi)有輸入的問(wèn)題)深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)

7、工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組15|使用management studio創(chuàng)建表【演示】創(chuàng)建department表【練習(xí)】創(chuàng)建course表|使用transact-sql語(yǔ)句創(chuàng)建表【演示】創(chuàng)建class表【練習(xí)】創(chuàng)建student、stucou表|【注意】int、smallint的后面無(wú)需寫精度和小數(shù)位數(shù)深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組16alter table classadd tempcl char(8) null -增加列alter column tempcl char(10) null -修改列drop colu

8、mn tempcl -刪除列 sp_rename 表名.舊列名, 新列名, column -修改列名 深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組17|顯示表結(jié)構(gòu)zsp_help 表名|重命名表zsp_rename 舊表名, 新表名|刪除表zdrop table 表名深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組18|完成實(shí)訓(xùn)任務(wù)單4-2深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組19|掌握sql server中常見(jiàn)的數(shù)據(jù)類型|理解空值的概念|能使用manageme

9、nt studio和sql語(yǔ)句創(chuàng)建、修改、刪除表(重點(diǎn))深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組2020任務(wù)3:數(shù)據(jù)完整性的實(shí)現(xiàn)深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組21約束默認(rèn)值規(guī)則數(shù)據(jù)完整性保證深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組22|何為約束(constraint)?限制用戶可以輸入到表或字段中的值,防止數(shù)據(jù)庫(kù)中出現(xiàn)不正確或不一致的數(shù)據(jù)深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組23|設(shè)置表格的主

10、鍵alter table table_nameadd constraint constraint_name primary key clustered(column_name)【例子】為class表創(chuàng)建基于classno、名為pk_class的主鍵約束。【練習(xí)】為department表創(chuàng)建主鍵約束。刪除主鍵約束:alter table table_namedrop constraint constraint_name深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組24|設(shè)置表格的外鍵alter table table_nameadd constraint

11、 constraint_name foreign key (column1_name)references table2_name(column2_name)注意:必須先設(shè)置主表的主鍵【例子】先為department表創(chuàng)建基于departno、名為pk_department的主鍵約束,再為class表創(chuàng)建名為fk_class的外鍵約束,該約束限制departno列的數(shù)據(jù)只能是department表中departno列存在的數(shù)據(jù)刪除外鍵約束:alter table table_namedrop constraint constraint_name深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)

12、算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組25【練習(xí)】為stucou表創(chuàng)建名為fk_stucou的外鍵約束,該約束限制stuno列的數(shù)據(jù)只能是student表的stuno列中存在的數(shù)據(jù)。提示:必須先為student表(主表)建立主鍵約束深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組26|設(shè)置cheak約束alter table table_nameadd constraint constraint_name check (check_expression)【例子】為class表創(chuàng)建check約束,該約束限制classno列中只允許8位數(shù)字刪除check約束

13、:alter table table_namedrop constraint constraint_name深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組27|【練習(xí)】為stucou表創(chuàng)建check約束,使得state只能是報(bào)名或選中。深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組28|約束的作用:保證了數(shù)據(jù)的完整性(復(fù)習(xí):數(shù)據(jù)完整性分為哪幾種?)z思考:主鍵約束、外鍵約束、check約束分別是保證了哪種數(shù)據(jù)完整性?|約束的種類:z課本p172深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)

14、庫(kù)課程組數(shù)據(jù)庫(kù)課程組29|一個(gè)表只能創(chuàng)建一個(gè)主鍵約束,但可以同時(shí)創(chuàng)建多個(gè)外鍵約束|主鍵約束的列中的值不能為空、不能重復(fù)|外鍵約束、check約束都是限制存放在列中的數(shù)據(jù)值。它們之間有何區(qū)別?(思考)深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組30|unique約束要求字段的值不能重復(fù),同時(shí)允許字段的值為空【例子】為student表創(chuàng)建基于pwd列,名為un_student的惟一約束|說(shuō)明:一個(gè)表格可以創(chuàng)建多個(gè)unique約束,它主要用于不是主鍵但又要求不能有重復(fù)值的字段深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)

15、課程組31|如果用戶沒(méi)有為定義了default約束的列如果沒(méi)有輸入數(shù)據(jù),則由該約束提供默認(rèn)的數(shù)據(jù)(避免空值的有效方法之一)【例子】為stucou表的state字段建立default約束,提供“報(bào)名”的默認(rèn)值|說(shuō)明:一個(gè)列只能建立一個(gè)default約束深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組321.為class表創(chuàng)建基于classno列,名為un_class的惟一約束2.為course表創(chuàng)建default約束,讓teacher列的默認(rèn)值為“待定”深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組33|格式:al

16、ter table table_namedrop constraint constraint_name深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組34|默認(rèn)值是一種獨(dú)立存儲(chǔ)的數(shù)據(jù)庫(kù)對(duì)象,其作用和默認(rèn)約束是一樣的。在創(chuàng)建之后,可以用到表中的一列或多列上,也可以用到用戶自定義的數(shù)據(jù)類型。|實(shí)現(xiàn)方法z先創(chuàng)建(create default),再綁定(sp_bindefault)到列或用戶自定義數(shù)據(jù)類型深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組35|刪除方法z先解除綁定(sp_unbindefault),再刪除|思

17、考:z這里的默認(rèn)值和我們前面學(xué)習(xí)的默認(rèn)約束(default約束)有什么區(qū)別?|【練習(xí)】課本page1901深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組36|注意:z先創(chuàng)建規(guī)則,再綁定到列或用戶自定義數(shù)據(jù)類型上z先解除綁定,再刪除規(guī)則|思考:z規(guī)則和我們前面學(xué)習(xí)的的check約束的區(qū)別|【練習(xí)】課本page1902深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組37|完成實(shí)訓(xùn)任務(wù)單4-3深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組38|理解:各種約束分別用在什么情況下|

18、掌握創(chuàng)建各種約束的方法(重點(diǎn))|理解默認(rèn)值和規(guī)則的使用方法深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組3939任務(wù)4:優(yōu)化查詢速度深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組40|索引(index):z加快查詢速度|視圖(view):z方便查詢、提高安全性深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組41|概念:z索引是一個(gè)表中所包含的值以及相應(yīng)的存儲(chǔ)位置的列表|分類:z聚集索引z非聚集索引z注意:一個(gè)表格中可以建立的索引的數(shù)量z復(fù)合索引z惟一索引深圳職業(yè)技術(shù)學(xué)院深

19、圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組42【例】在student表上創(chuàng)建基于stuname列,名為ix_stuname的索引【例】在student表上創(chuàng)建基于stuno列,名為ix_stuno的索引深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組43|在那些經(jīng)常被用來(lái)查詢的列上建立索引,以提高查找效率【討論】下面兩個(gè)查詢分別使用上面的哪個(gè)索引?select stuname from student where select stuname from student where stuno = 00000001stuno =

20、 00000001select stuno from student where select stuno from student where stuname = stuname = 林斌林斌 |索引將占用磁盤空間,并且降低添加、刪除和更新行的速度,所以要慎用!深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組44|使用sql語(yǔ)句格式:createuniqueclustered| nonclusteredindex index_nameon table_name(column_name,.)【例】使用sql語(yǔ)句在stucou表上創(chuàng)建名為ix_stunoc

21、ouno的聚集、惟一、復(fù)合索引,該索引基于stuno列和couno列創(chuàng)建深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組45|注意:創(chuàng)建主鍵約束和惟一約束時(shí),會(huì)自動(dòng)在這些列上創(chuàng)建惟一索引深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組46|在(字段1,字段2)上創(chuàng)建的復(fù)合索引和在(字段2,字段1)上創(chuàng)建的復(fù)合索引是不同的|查找數(shù)據(jù)時(shí),只有在where子句中指定了索引的第一個(gè)字段時(shí)才使用該復(fù)合索引|復(fù)合索引中字段的順序很重要:在次序上首先定義最具惟一性的字段列(略)深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算

22、機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組47|使用management studio|使用sql語(yǔ)句格式:drop index table_name.index_name【例】刪除stucou表中的ix_stunocouno索引思考:student表中的索引pk_student可以刪除嗎?深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組48|顯示索引信息 sp_helpindex table_name|重命名索引 sp_rename table_name.old_index_name, new_index_name【復(fù)習(xí)】l顯示數(shù)據(jù)庫(kù)信息、表信息分別使用哪個(gè)

23、系統(tǒng)存儲(chǔ)過(guò)程?l修改數(shù)據(jù)庫(kù)名、表名、列名分別使用哪個(gè)系統(tǒng)存儲(chǔ)過(guò)程? 深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組49|為class表建立基于classno的主鍵約束pk_class,建立基于classname的惟一、非聚集索引ix_class。 而后,使用系統(tǒng)存儲(chǔ)過(guò)程sp_helpindex查看class表的索引信息(注意看總共有幾個(gè)索引?),并使用系統(tǒng)存儲(chǔ)過(guò)程sp_rename將索引ix_class改為ix_classname。深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組50|什么是視圖?z基表(base

24、 table):獨(dú)立存在的表z視圖虛擬表。在sql中只存儲(chǔ)視圖的定義,不存放視圖所對(duì)應(yīng)的記錄深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組51|視圖的作用z使用戶只關(guān)注所關(guān)心的數(shù)據(jù)z提高了數(shù)據(jù)的安全性z提高客戶端的查詢效率|視圖常見(jiàn)的應(yīng)用 p213-215深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組52|視圖為基表的行的子集【例】創(chuàng)建視圖v_student,只顯示student表中班級(jí)編碼為20000001的班級(jí)的學(xué)生信息|特點(diǎn):zselect *z用where子句指明選擇哪些行深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)

25、院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組53|視圖為基表的列的子集【例】創(chuàng)建視圖v_course,只顯示course表中的couname列和schooltime列|特點(diǎn):zselect子句中指明選擇哪些列z沒(méi)有where子句深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組541.創(chuàng)建視圖v_class,只顯示class表中系部編碼為01的系部的班級(jí)信息2.創(chuàng)建視圖v_substucou,只顯示stucou表中的stuno列和couno列深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組55|視圖為多

26、個(gè)表、視圖連接組成的復(fù)雜查詢最常用的情況【例】創(chuàng)建視圖v_stucou,顯示學(xué)生的學(xué)號(hào)、姓名和所選的課程名稱|特點(diǎn):z多表查詢(其實(shí)只需要在正確的select語(yǔ)句前加上create viewas即可必要而非充分條件)深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組56|創(chuàng)建視圖v_coubycmpt,顯示計(jì)算機(jī)應(yīng)用工程系承擔(dān)的選修課程的信息(課程名稱、授課老師、上課時(shí)間)深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)工程學(xué)院 數(shù)據(jù)庫(kù)課程組數(shù)據(jù)庫(kù)課程組57|視圖為基表的統(tǒng)計(jì)匯總【例】將課本p48圖2-2-27的查詢結(jié)果作為視圖v_coubykind|特點(diǎn):z視圖定義中使用了group by子句|注意:在下面的情況下必須明確指明視圖每一列的列名:1.視圖中的某一列是算術(shù)表達(dá)式、

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論