




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
梁文娟目錄實驗1用E-R圖設計數(shù)據(jù)庫3實驗2熟悉SQLServer2000環(huán)境4實驗3創(chuàng)建數(shù)據(jù)庫及表19實驗4數(shù)據(jù)查詢34實驗5視圖的定義和操作36實驗6實現(xiàn)數(shù)據(jù)完整性38實驗7實現(xiàn)數(shù)據(jù)庫安全管理41實驗8實現(xiàn)觸發(fā)器45實驗9數(shù)據(jù)庫備份與恢復47實驗10數(shù)據(jù)庫設計綜合應用48實驗1用E-R圖設計數(shù)據(jù)庫實驗目的與要求:掌握E-R模型的基本概念和圖形的表示方法。掌握將現(xiàn)實世界的事物轉化成E-R圖的基本技巧熟悉關系數(shù)據(jù)模型的基本概念。掌握E-R圖轉化成關系表的基本方法實驗環(huán)境:Windows2000/XPSQLServer2000實驗內容:根據(jù)需求確定實體、屬性和聯(lián)系。將實體、屬性和聯(lián)系轉化為E-R圖。將E-R圖轉化為表。實驗步驟:設計能夠表示學生、課程關系的數(shù)據(jù)庫。確定學生、課程實體的屬性。確定學生、課程實體的聯(lián)系以及聯(lián)系類型。畫出學生、課程關系的E-R圖。設計能夠表示商品、顧客和商品生產廠家關系的數(shù)據(jù)庫。確定商品、顧客和商品生產廠家實體的屬性。確定商品、顧客和商品生產廠家的聯(lián)系以及聯(lián)系類型。畫出商品、顧客和商品生產廠家關系的E-R圖。討論:E-R圖和關系表之間的關系。實驗2熟悉SQLServer2000環(huán)境一、實驗目的掌握SQLServer2000的安裝了解SQLServer2000的組織結構和操作環(huán)境熟悉SQLServer2000的基本使用方法二、背景知識SQLServer2000是Microsoft公司推出的高性能的客戶端/服務器結構的關系數(shù)據(jù)庫管理系統(tǒng),它繼承了SQLServer7.0版本的高性能、可靠性、易用性和可擴充性的優(yōu)點,同時又增加了一些新的特性,使其成為一種領先的數(shù)據(jù)庫管理系統(tǒng),可用于聯(lián)機事務處理(OLTP)、數(shù)據(jù)倉庫及電子商務等。三、實驗內容1.安裝Microsoft的數(shù)據(jù)庫服務軟件SQLServer2000運行服務器目錄SQL2000下的可執(zhí)行文件autorun.exe,進行SQLServer2000的安裝。安裝主界面如圖1-1所示。圖1-1選擇安裝SQLServer2000組件,出現(xiàn)組件安裝界面,如圖1-2所示。圖1-2選擇安裝數(shù)據(jù)庫服務器,進入SQLServer2000的安裝向導,如圖1-3所示。圖1-3點擊“下一步”,到計算機名稱對話框,如圖1-4所示。圖1-4“本地計算機”是默認選項,本地計算機的名稱就顯示在上面,點擊“下一步”,出現(xiàn)安裝選擇對話框,如圖1-5所示。圖1-5選擇“創(chuàng)建新的SQLServer實例,或安裝客戶端工具”,點擊“下一步”,出現(xiàn)用戶信息對話框,如圖1-6所示。圖1-6輸入姓名和公司名稱后,點擊“下一步”,出現(xiàn)軟件許可協(xié)議,如圖1-7所示。圖1-7點“是”按鈕,出現(xiàn)安裝定義對話框,如圖1-8所示。圖1-8選擇“服務器和客戶端工具”,點擊下一步,出現(xiàn)實例名對話框,如圖1-9所示。圖1-9系統(tǒng)提供了“默認”復選框,點擊下一步,出現(xiàn)安裝類型選擇框,如圖1-10所示。圖1-10選擇典型,點擊“下一步”,出現(xiàn)服務帳戶對話框,如圖1-11所示。圖1-11接受系統(tǒng)的缺省值,點擊“下一步”,出現(xiàn)身份驗證模式窗口,如圖1-12所示。圖1-12接受系統(tǒng)的缺省值,點擊“下一步”,出現(xiàn)開始拷貝文件窗口,如圖1-13所示。圖1-13點擊“下一步”,開始將文件拷貝到選擇的目錄中,如圖1-14所示。圖1-14文件拷貝完成后,出現(xiàn)安裝結束界面,如圖1-15所示。圖1-15點擊“完成”按鈕,完成SQLServer2000的安裝。安裝完畢后,單擊“開始”->“程序”->“MicrosoftSQLServer”,看到如圖1-16所示的SQLServer2000程序組內容。圖1-162.SQLServer2000的文件目錄SQLServer數(shù)據(jù)庫系統(tǒng)中的所有文件可以分為三種:系統(tǒng)文件、程序文件和數(shù)據(jù)文件。①系統(tǒng)文件只能安裝在主機的系統(tǒng)目錄下,系統(tǒng)文件位置無法更改。②默認情況下,共享工具安裝在\ProgramFiles\MicrosoftSQLServer\80\Tools目錄中。此文件夾包含由所有SQLServer2000實例(默認實例和命名實例)共享的文件。這些工具包含SQLServer聯(lián)機叢書、開發(fā)工具和其它組件。③對于SQLServer的默認實例,程序和數(shù)據(jù)文件的默認目錄是\ProgramFiles\MicrosoftSQLServer\Mssql。可以為程序文件和數(shù)據(jù)文件指定默認路徑以外的文件路徑。④SQLServer程序文件位于\ProgramFiles\MicrosoftSQLServer\Mssql\Binn目錄中。程序文件的位置是安裝程序創(chuàng)建文件夾所在的根目錄,而這些文件夾包含程序文件以及通常在使用SQLServer時不會更改的文件。盡管這些文件不是只讀文件,但是文件夾不包含數(shù)據(jù)、日志、備份文件或復制數(shù)據(jù),因此,當使用SQLServer時這些文件的空間需求不會增加。⑤SQLServer數(shù)據(jù)文件位于\ProgramFiles\MicrosoftSQLServer\Mssql\Data目錄中。數(shù)據(jù)文件的位置是安裝程序創(chuàng)建文件夾(其中包含數(shù)據(jù)庫和日志文件)所在的根目錄,以及系統(tǒng)日志、備份和復制數(shù)據(jù)所在的目錄。安裝程序為master、model、tempdb、msdb、pubs和Northwind數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫和日志文件。SQLServer數(shù)據(jù)文件路徑應該位于有足夠空間供這些文件增大的驅動器上。3.啟動和停止SQLServer服務應用程序在使用SQLServer數(shù)據(jù)庫之前,必須連接到一個SQLServer實例,如:LWHNOTE。SQLServer服務的啟動和停止由SQLServer2000程序組中的“服務管理器”來管理。下面介紹四種方法來啟動和停止SQLServer服務。方法1:使用服務管理器啟動和停止SQLServer服務。單擊“開始”->“程序”->“MicrosoftSQLServer”->“服務管理器”,彈出如圖1-17所示的“SQLServer服務管理器”窗口,選擇服務器(如:LWHNOTE)和服務選項(如:SQLServer),若沒有啟動,按下,即可啟動SQLServer服務,若已經啟動,按下,即可停止SQLServer服務。若選中了復選框“當啟動OS時自動啟動服務”,則下次開機時系統(tǒng)即可自動啟動SQLServer。圖1-17SQLServer服務管理器啟動SQLServer服務后,在Windows任務欄的右邊會顯示正在運行的SQLServer,如圖1-18所示,表示SQLServer正在運行。圖1-18SQLServer在狀態(tài)欄中的狀態(tài)方法2:用操作系統(tǒng)控制面板中的服務管理程序啟動和停止SQLServer服務。單擊“開始”->“設置”->“控制面板”->“管理工具”->“服務”,彈出如圖1-19所示的“服務”對話框。圖1-19Windows服務在“服務”對話框中,用鼠標右擊要啟動的服務器名稱,即:MSSQLSERVER,彈出菜單后,選擇“啟動”菜單項,就可啟動SQLServer服務了。圖1-20表示MSSQLSERVER服務已啟動。圖1-20MSSQLSERVER服務已啟動采用類似的方法,也可以停止SQLServer。方法3:用命令方式啟動和停止SQLServer服務。采用netstartmssqlserver命令啟動SQLServer。如圖1-21所示。圖1-21使用命令方式啟動SQLServer服務采用netstopmssqlserver命令啟動SQLServer。如圖1-22所示。圖1-22使用命令方式停止SQLServer服務方法4:使用企業(yè)管理器啟動和停止SQLServer服務。單擊“開始”->“程序”->“MicrosoftSQLServer”->“企業(yè)管理器”,彈出如圖1-23所示的企業(yè)管理器窗口,圖中所示的SQLServer服務處于停止狀態(tài)。圖1-23SQLServer企業(yè)管理器(SQLServer服務已停止)在企業(yè)管理器中所要啟動的服務器上(如:LWHNOTE)鼠標右擊,從快捷菜單中選擇“連接”即可啟動SQLServer服務,如圖1-24所示。圖1-24SQLServer企業(yè)管理器(SQLServer服務已啟動)類似的方法,可以停止SQLServer。4.使用企業(yè)管理器在企業(yè)管理器中幾乎能實現(xiàn)所有對SQLServer的操作,操作的主要手段是在企業(yè)管理器界面中不同對象上通過快捷菜單來進行。企業(yè)管理器是一個對初學者來說最重要的管理工具,在以后的內容會經常使用。5.使用查詢分析器在SQLServer程序組中,查詢分析器也是最常用的管理工具之一。單擊“開始”->“程序”->“MicrosoftSQLServer”->“查詢分析器”,彈出如圖1-22所示的“連接到SQLServer服務器”對話框。用戶輸入SQLServer服務器的名稱和身份驗證后,即可進入查詢分析器。注:身份驗證可以使用“Windows身份驗證”或“SQLServer身份驗證”。圖1-25選擇的是“SQLServer身份驗證”方式,圖1-26選擇的是“Windows身份驗證”方式。圖1-25采用Windows身份驗證連接到SQLServer服務器圖1-26采用SQLServer身份驗證連接到SQLServer服務器登錄成功后,即可進入如圖1-27所示的查詢分析器中。在查詢分析器中可以輸入并執(zhí)行各種SQL命令,例如,在查詢分析器工具欄上數(shù)據(jù)庫組合框中選擇pubs數(shù)據(jù)庫,在查詢窗口中輸入“select*fromauthors”命令,再單擊查詢分析器工具欄上的“執(zhí)行查詢”按鈕(或按F5鍵),執(zhí)行后查詢窗口分為上下兩部分,下部分顯示了查詢執(zhí)行結果。圖1-27查詢分析器還可以在查詢器中查詢目前使用的SQLServer的版本,輸入SQL查詢語句“SELECTSERVERPROPERTY('productversion'),SERVERPROPERTY('productlevel'),SERVERPROPERTY('edition')”,則在下部分可以顯示當前使用的軟件的版本信息。注:以后很多命令操作均可在查詢分析器中完成,如:各種查詢命令實驗、SQL文件編寫、存儲過程和觸發(fā)器文件的編寫等。6.使用聯(lián)機叢書有三種方式可以啟動SQLServer聯(lián)機叢書:使用幫助菜單、幫助按鈕或按“F1”鍵,如圖1-28所示。1-28啟動SQLServer聯(lián)機叢書的三種方式打開SQLServer聯(lián)機叢書后,按如下方式輸入要查找的關鍵字,如圖1-29所示,輸入查找關鍵字“CREATEDATABASE”。圖1-29輸入查找關鍵字然后按下“回車”鍵,顯示與查詢關鍵字相關的查詢主題,雙擊查詢主題,如圖1-30所示。圖1-30選擇查詢主題即可在窗口的右邊顯示相關查詢主題的使用參考,如圖1-31所示。圖1-31相關查詢主題的參考四、實驗報告要求1、給出安裝過程中出現(xiàn)的錯誤及解決方法。2、根據(jù)你所了解的SQLServer2000工具,寫出部分主要組件(如企業(yè)管理器、查詢分析器、服務管理器等)的功能。實驗3創(chuàng)建數(shù)據(jù)庫及表一、實驗目的SQLServer2000的啟動和管理工作由服務管理器和企業(yè)管理器來實現(xiàn)。本次實驗了解SQLServer2000的啟動,熟悉如何使用企業(yè)管理器建立數(shù)據(jù)庫和表,并加深對于完整性的理解。了解SQLServer2000查詢分析器的啟動,熟悉如何在SQLServer2000查詢分析器中建表、插入記錄、查詢記錄。二、背景知識在使用數(shù)據(jù)庫的過程中,接觸最多的就是數(shù)據(jù)庫中的表。表是數(shù)據(jù)存儲的地方,是數(shù)據(jù)庫中最重要的部分,管理好表也就管理好了數(shù)據(jù)庫。表是由行和列組成的。創(chuàng)建表的過程主要就是定義表的列的過程。表的列名在同一個表中具有唯一性,同一列的數(shù)據(jù)屬于同一種數(shù)據(jù)類型。除了用列名和數(shù)據(jù)類型來指定列的屬性外,還可以定義其它屬性:是否為空、默認值、標識符列、全局唯一標識符列等。約束是SQLServer提供的自動保持數(shù)據(jù)庫完整性的一種方法,定義了可輸入表或表的單個列中的數(shù)據(jù)的限制條件。在SQLServer中有5種約束:主關鍵字約束(PrimaryKeyConstraint)、外關鍵字約束(ForeignKeyConstraint)、惟一性約束(UniqueConstraint)、檢查約束(CheckConstraint)和默認約束(DefaultConstraint)。三、實驗內容1.啟動數(shù)據(jù)庫服務軟件SQLServer2000:在程序菜單中選擇MicrosoftSQLServer,如圖2-1所示:圖2-1再選中服務管理器,如圖2-2所示:圖2-2點擊服務管理器后,出現(xiàn)SQLServer服務管理器,如圖2-3所示:圖2-3點擊“開始/繼續(xù)”按鈕,啟動SQLServer2000數(shù)據(jù)庫服務。啟動成功后,在時鐘旁邊出現(xiàn)一個符號,如圖2-4所示。圖2-42.在SQLServer2000中建立數(shù)據(jù)庫:在程序菜單中選擇MicrosoftSQLServer,如圖2-5所示:圖2-5再選中企業(yè)管理器,如圖2-6所示:圖2-6點擊企業(yè)管理器后,出現(xiàn)企業(yè)管理器的主界面,如圖2-7所示:圖2-7點擊左邊樹狀控制欄的+/-號可以打開和關閉SQLServer組中的本地服務項目,在選中數(shù)據(jù)庫服務項目后,單擊鼠標右鍵,出現(xiàn)數(shù)據(jù)庫的菜單,如圖2-8所示:圖2-8點擊新建數(shù)據(jù)庫,出現(xiàn)新建數(shù)據(jù)庫窗口,如圖2-9所示:圖2-9輸入數(shù)據(jù)庫名稱:Test,點擊數(shù)據(jù)文件選項卡,如圖2-10所示:圖2-10在數(shù)據(jù)文件中,你可以設定數(shù)據(jù)文件的名稱,所在目錄以及文件的大小等信息。完成后點擊事務日志選項卡,如圖2-11所示:圖2-11事務日志中,你可以設定日志文件的名稱,所在目錄以及文件的大小等信息。接受系統(tǒng)的缺省值,點擊確定按鈕,完成數(shù)據(jù)庫的新建,如圖2-12所示。圖2-123.在Test數(shù)據(jù)庫上建立表:點擊數(shù)據(jù)庫Test前面的+號,打開數(shù)據(jù)庫的各種屬性,如圖2-13所示:圖2-13選中“表”的屬性,單擊鼠標右鍵,出現(xiàn)表的菜單,如圖2-14所示:圖2-14點擊新建表按鈕,出現(xiàn)新建表窗口,如圖2-15所示:圖2-15輸入列名,數(shù)據(jù)類型,長度等信息,點擊圖標,出現(xiàn)選擇表名窗口,如圖2-16所示:圖2-16輸入表名,點擊確定按鈕,將新建的表存盤。4.啟動數(shù)據(jù)庫服務軟件SQLServer2000的查詢分析器:在程序菜單中選擇MicrosoftSQLServer,如圖2-17所示:圖2-17再選中查詢分析器,如圖2-18所示:圖2-18點擊查詢分析器后,出現(xiàn)連接到SQLServer窗口,如圖2-19所示:圖2-19選擇本地服務(Local),點擊確定按鈕。再點擊連接到SQLServer窗口的確定按鈕。出現(xiàn)SQL查詢分析器主界面,如圖2-20所示。圖2-20選擇查詢菜單,點擊更改數(shù)據(jù)庫,如圖2-21所示。圖2-21出現(xiàn)選擇數(shù)據(jù)庫窗口,如圖2-22所示。圖2-22選擇在上次實驗中建立的數(shù)據(jù)庫Test,點確定按鈕。5、在查詢分析器中建立表:在查詢分析器的查詢窗口中輸入SQL語句,如圖2-23所示。圖2-23點擊按鈕,執(zhí)行該SQL語句,在查詢窗口下部出現(xiàn)一個輸出窗口,如圖2-24所示。圖2-24提示命令成功完成,或者報告出錯信息。6.查詢分析器中向表添加數(shù)據(jù):在查詢分析器的查詢窗口中輸入SQL語句,如圖2-25所示。圖2-25點擊按鈕,執(zhí)行該SQL語句,在查詢窗口下部出現(xiàn)一個輸出窗口,如圖2-26所示。圖2-26從表中查詢數(shù)據(jù):在查詢分析器的查詢窗口中輸入SQL語句,如圖2-27所示。圖2-27點擊按鈕,執(zhí)行該SQL語句,在查詢窗口下部出現(xiàn)一個輸出窗口,如圖2-28所示。圖2-28四、實驗任務1.用數(shù)據(jù)庫SQLServer2000的服務管理器啟動數(shù)據(jù)庫服務;2.用數(shù)據(jù)庫SQLServer2000的企業(yè)管理器建立一個新數(shù)據(jù)庫Test(可任意取名)。3.在數(shù)據(jù)庫Test中,建立如下所示的三個表:Employee表列名數(shù)據(jù)類型長度是否允許為空說明EmployeeIDChar6否員工編號,主鍵NameChar10否姓名BirthdayDatetime8否出生日期SexBit1否性別AddressChar20是地址ZipChar6是郵編PhoneNumberChar12是電話號碼EmailAddressChar30是電子郵件地址DepartmentIDChar3否員工部門號,外鍵Departments表列名數(shù)據(jù)類型長度是否允許為空說明DepartmentIDChar3否員工部門號,主鍵DepartmentNameChar20否部門名NoteText16是備注Salary表列名數(shù)據(jù)類型長度是否允許為空說明EmployeeIDChar6否員工編號,外鍵IncomeFloat8否收入OutComeFloat8否支出4.對三張表輸入數(shù)據(jù)(可任意輸入,但注意要符合完整性要求,否則會出錯)5.打開數(shù)據(jù)庫SQLServer2000的查詢分析器,用SQL語言建立實驗二中給出的三張表,要求建表時給出主外鍵約束、唯一約束、取空值約束、用戶自定義的約束等。6.練習使用SQL語句向三張表中插入部分數(shù)據(jù)。7.練習下面簡單的查詢語句:a)查詢每個雇員的所有信息b)查詢每個雇員的地址和電話c)查詢EmployeeID為000001的雇員的地址和電話。d)查詢女雇員地址和電話,并用AS子句將結果中各列的標題分別指定為“地址”和“電話”。e)計算每個雇員的實際收入。f)找出所有姓王的雇員的部門號。思考:找出所有地址中含有“中山”的雇員的號碼和部門號。五、實驗報告要求1、要求給出在企業(yè)管理器中如何創(chuàng)建表間的外鍵關聯(lián);2、畫出這三個表的關系圖;3、舉例說明如何操作會違背完整性(實體完整性、參照完整性)。4、寫出建表的SQL語句(包含各種約束);5、從實驗任務3中規(guī)定的六條查詢里任選三條,寫出其SQL語句;6、并記錄在使用SQL語句過程中遇到的問題及解決辦法。實驗4數(shù)據(jù)查詢一、實驗目的DML的數(shù)據(jù)查詢指對數(shù)據(jù)庫中的數(shù)據(jù)查詢、統(tǒng)計、分組、排序等操作。查詢語句可以分為簡單查詢、連接查詢、嵌套查詢和組合查詢。本次實驗了解DML語言的SELECT語句對數(shù)據(jù)的查詢,學會SQLServer2000的查詢分析器中用DML語言對表中的數(shù)據(jù)進行連接查詢和嵌套查詢。二、預計實驗時間:一~二次上機三、實驗內容1.啟動數(shù)據(jù)庫服務軟件SQLServer2000的查詢分析器,用SELECT語句對表進行簡單查詢操作,整個查詢過程只涉及到一個表,是最基本的查詢語句。語法格式如下:Select<目標列組>From<數(shù)據(jù)源>[Where<元組選擇條件>][Groupby<分組列>[Having<組選擇條件>]][Orderby<排序列1><排序要求>[,…n]]2.用SELECT語句對表進行連接查詢操作,連接查詢涉及被連接和連接兩個表,所以數(shù)據(jù)源一般為多個表。用來連接兩個表的條件稱為連接條件,一般格式為:[<表名1>.]<列名1><比較運算符>[<表名2>.]<列名2>其中比較運算符主要有:=、>、<、>=、<=、!=。3.用SELECT語句對表進行嵌套查詢操作,一個Select…From…Where語句稱為一個查詢塊,將一個查詢塊嵌套在另一個查詢塊的Where子句或Having短語的條件中的查詢,就是嵌套查詢。主要有使用In操作符、使用比較運算符的嵌套查詢方式。四、實驗任務Departments表:DepartmentIDDepartmentNameNote1財務部財務部2研發(fā)部研發(fā)部3人力資源部人力資源部Employee表EmployeeIDNameBirthdaySexAddressZipPhoneNumberEmailAddressDepartmentID1001李勇78-3-120河南4750013880378ly@11002王敏80-11-21河南4750020378311wm@11003劉晨78-6-220河南4750030378322lc@12001張立78-8-10河南4750040378333zl@22002劉毅82-1-230河南4750050378344ly@22003張玫81-3-151河南4750060378355zm@23001徐靜76-8-121河南4750070378366xj@33002趙軍79-2-190河南4750080378377zj@3Salary表EmployeeIDIncomeOutCome1001360015001002330010001003370012002001400016002002380018002003380015003001420020003002410018001.下列查詢任務用來練習多表連接查詢。查詢每個雇員的情況及工資情況(工資=Income-Outcome)查詢財務部工資在2200元以上的雇員姓名及工資情況查詢研發(fā)部在1966年以前出生的雇員姓名及其工資詳情查詢人力資源部雇員的最高和最低工資將各雇員的情況按工資由低到高排列求各部門的雇員數(shù)Selectcount(*)FromEmployeeE,DepartmentDWhereE.DepartmentId=D.DepartmentIdGroupbyE.DepartmentId找出所有在財務部和人力資源部工作的雇員的編號2.下列查詢任務用來練習嵌套查詢。統(tǒng)計人力資源部工資在2500以上雇員的人數(shù)Selectcount(*)FromEmployeeWhereDepartmentIdin(select)求財務部雇員的總人數(shù)求財務部雇員的平均工資查找比所有財務部的雇員工資都高的雇員的姓名查找財務部年齡不低于研發(fā)部所有雇員年齡的雇員的姓名查找在財務部工作的雇員的情況3.將課本P104-108[例38]~~[例43]用帶EXISTS謂詞的子查詢來做等價替換,寫出相應的查詢語句。五、實驗報告要求 寫出與上述查詢任務相對應的SQL查詢語句,并記錄在實驗過程中遇到的問題、解決辦法及心得體會。實驗5視圖的定義和操作一、實驗目的: 理解視圖的概念,掌握視圖的使用方法。二、預計實驗時間:上機一次三、實驗過程參照前面實驗中完成的查詢,按如下要求自行設計視圖:1)基于單個表按投影操作定義視圖。舉例:定義一個視圖用以查看所有員工的編號、姓名和出生日期。2)基于單個表按選擇操作定義視圖。舉例:定義一個滿足sex=1的員工的所有信息的視圖。3)基于單個表按選擇和投影操作定義視圖。舉例:定義一個視圖用以查看部門號碼為‘2’的所有員工的姓名、電話和郵件地址。4)基于多個表根據(jù)連接操作定義視圖。舉例:定義一個視圖用以查看所有員工的姓名、部門名及工資。5)基于多個表根據(jù)嵌套查詢定義視圖。舉例:定義一個視圖用以查看各部門的雇員的平均工資。Creatviewv5(DepartmentID,EmployeeID,salary)AsselectDepartmentID,Employee.EmployeeID,Income-OutComeassalaryfromEmployee,SalarywhereEmployee.EmployeeID=Salary.EmployeeIDselectDepartmentID,avg(salary)fromv5groupbyDepartmentID或者Createviewv5(AvgSalary)AsSelectavg(Income-OutCome)FromsalaryWhereDepartmentIDin(selectDepartmentIDFromEmployeegroupbyDepartmentID)6)定義含有虛字段(即基本表中原本不存在的字段)的視圖。舉例:定義一個視圖用以查看所有雇員的編號、姓名、年齡。Creatviewv6(EmployeeID,Name,Age)AsSelectEmployeeID,Name,datediff(year,Birthday,getdate())/*2009-datepart(yy,birthday)FromEmployee分別在定義的視圖上進行查詢、插入、更新和刪除操作,分情況(查詢、更新)討論哪些操作可以成功完成,哪些不能成功完成,并分析原因。四、實驗報告要求:1、在實驗報告中要給出具體的視圖定義要求;2、分情況討論那些操作可以成功完成,哪些不能成功完成。查詢操作:舉出一個進行查詢操作的例子。更新操作:更新操作包含插入、更新、刪除,針對不能成功完成更新操作的情況舉出兩個例子,并分析原因。實驗6實現(xiàn)數(shù)據(jù)完整性一、實驗目的1.掌握域完整性的實現(xiàn)方法。2.掌握實體完整性的實現(xiàn)方法。3.掌握參照完整性的方法。二、實驗內容1.使用界面方式創(chuàng)建規(guī)則對象,并綁定到列,實現(xiàn)域完整性。2.為表添加一個標識列,實現(xiàn)實體完整性。3.為兩表建立關聯(lián),實現(xiàn)參照完整性。三、實驗步驟1.實現(xiàn)域完整性①啟動SQLServer企業(yè)管理器,打開“SQLServerEnterpriseManager”窗口。②選擇要創(chuàng)建規(guī)則對象的數(shù)據(jù)庫文件夾,并在右邊的對象窗口中選擇其中的“規(guī)則”對象。選擇“操作”菜單中的“新建規(guī)則”命令,打開“規(guī)則屬性”對話框。③設置形如“(區(qū)號)電話號碼”的聯(lián)系電話格式檢查規(guī)則,單擊“確定”按鈕,完成規(guī)則對象的定義。④打開“規(guī)則”對象,并選中剛才定義的規(guī)則對象RO_聯(lián)系電話格式。選擇“操作”菜單中的“屬性”命令,打開“規(guī)則屬性”對話框。⑤單擊“綁定列”按鈕,打開“將規(guī)則綁定到列”對話框,完成到列的綁定,關閉“規(guī)則屬性”對話框。⑥在對象窗口中選擇并打開其中的“表”對象,選中student表(以教材中學生選課數(shù)據(jù)庫sc為例,假如該表中有相關屬性列)并打開。⑦在表中分別插入兩行新記錄,其中一行的聯(lián)系電話格式為指定的格式,另一行的聯(lián)系電話格式為非法格式。當插入第一行時,系統(tǒng)成功地插入了新數(shù)據(jù)行,但無信息返回;而在插入第二行時系統(tǒng)提示錯誤信息,拒絕接受非法格式的聯(lián)系電話,從而保證了域完整性。⑧單擊“確定”按鈕,取消插入,并關閉表的數(shù)據(jù)記錄窗口。2.實現(xiàn)實體完整性①在對象窗口中選擇并打開其中的“表”對象,選中course表。②選擇“操作”菜單中的“設計表”命令,打開表編輯器窗口。③添加一個標識列,種子值為1,遞增量也為1。④點擊快捷工具攔上的快捷按鈕,完成標識列的添加,然后關閉編輯窗口。⑤選中course表并打開表的數(shù)據(jù)記錄窗口??梢钥吹?,系統(tǒng)自動為每行的標識列填充了值,并從1開始,依次遞增,這樣,表中的每一數(shù)據(jù)行都可以由標識列唯一標識,實現(xiàn)了實體完整性。⑥關閉表的數(shù)據(jù)記錄窗口。3.實現(xiàn)參照完整性①在對象窗口中選擇打開其中的“表”對象,選中sc表。②先擇“操作”菜單中的“設計表”命令,打開表編輯器窗口。③點擊快捷工具攔上的快捷按鈕,打開“屬性”對話框的“關系”選項卡。④為student表和sc表建立基于學號列的關系。(此圖只是列舉了一個例子和本實驗中用到的表名稱不一致)⑤選中student表,并選擇“操作”菜單中“打開表”子菜單下的“返回所有行”命令,打開表的數(shù)據(jù)記錄窗口。⑥將表中的值為“020101”的學號都修改為“020111”。由于student表中不存在值為“020111”的學號,所以系統(tǒng)提示錯誤信息,拒絕接受不存在的學號,從而保證了參照完整性。⑦單擊“確定”按鈕,取消修改,并關閉表的數(shù)據(jù)記錄窗口。實驗7實現(xiàn)數(shù)據(jù)庫安全管理一、實驗目的1.了解SQLServer2000的身份驗證方法。2.掌握合法登錄帳戶的設置。3.掌握數(shù)據(jù)庫用戶的設置。4.掌握數(shù)據(jù)庫角色的設置。5.掌握用戶的權限管理方法。二、實驗內容1.Windows和SQLServer2000身份驗證的比較。2.設置登錄帳戶。3.設置數(shù)據(jù)庫用戶。4.設置數(shù)據(jù)庫角色。5.設置數(shù)據(jù)庫用戶權限。三、實驗步驟1.使用企業(yè)管理器選擇和設置身份驗證模式打開企業(yè)管理器,在“樹”窗口中展開一個服務器組,然后選擇希望設置身份驗證模式的服務器。在該服務器上單擊鼠標右鍵,在彈出的菜單中選擇命令“屬性”,打開“屬性”對話框。在屬性對話框中選擇“安全性”選項卡,在“身份驗證”區(qū)域中選擇下列身份驗證模式之一。SQLServer和Windows:指定用戶可以使用SQLServer身份驗證和Windows身份驗證連接到SQLServer。僅Windows:指定用戶只能使用Windows身份驗證連接SQLServer。單擊“確定”按鈕,即可完成身份驗證模式的選擇和設置。2.使用企業(yè)管理器創(chuàng)建登錄賬戶打開企業(yè)管理器,展開希望創(chuàng)建新的登錄的服務器。展開文件夾“安全性”,在登錄節(jié)點上單擊鼠標右鍵。從彈出的菜單中選擇“新建登錄”,打開“新建登錄”窗口。在“新建登錄”窗口的“常規(guī)”選項卡中進行如下配置:在“名稱”文本框中輸入一個SQLServer登錄的賬號名。選擇一種登錄模式。在“默認設置”區(qū)選擇連接時默認的數(shù)據(jù)庫和語言。在“新建登錄”窗口的“數(shù)據(jù)庫訪問”選項卡,選擇允許登錄賬戶訪問的數(shù)據(jù)庫和分配給登錄賬戶的數(shù)據(jù)庫角色。單擊“確定”按鈕,完成登錄模式的創(chuàng)建。3.使用企業(yè)管理器新建數(shù)據(jù)庫用戶打開企業(yè)管理器,在樹形目錄中展開指定的數(shù)據(jù)庫節(jié)點。選中該數(shù)據(jù)庫節(jié)點的下一級節(jié)點“用戶”,單擊鼠標右鍵,在彈出的菜單中選擇“新建數(shù)據(jù)庫用戶”。4.使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫角色打開企業(yè)管理器,在樹形目錄中展開指定的數(shù)據(jù)庫節(jié)點。選中該數(shù)據(jù)庫節(jié)點的下一級節(jié)點“角色”,單擊鼠標右鍵,在彈出的菜單中選擇“新建數(shù)據(jù)庫角色”。在彈出的“數(shù)據(jù)庫角色屬性-新建角色”對話框中,進行如下操作:輸入名稱:輸入新建數(shù)據(jù)庫角色的名稱選擇角色類型:選擇標準角色添加用戶:單擊“添加”按鈕向角色中添加用戶單擊“確定”按鈕,完成數(shù)據(jù)庫角色的創(chuàng)建。設置該數(shù)據(jù)庫角色的權限。5.使用企業(yè)管理器管理對象權限打開企業(yè)管理器,展開指定的數(shù)據(jù)庫節(jié)點。選中需要查看或修改權限的數(shù)據(jù)庫對象,展開該庫對象,在其中某一張表上單擊鼠標右鍵,選擇菜單命令“屬性”,打開“表屬性”對話框。在“表屬性”對話框中單擊“權限”按鈕,打開權限選項卡,選擇相應的訪問權限。:授予權限,表示允許某個用戶或角色對一個對象執(zhí)行某種操作。:禁止權限,表示在不撤銷用戶訪問權限的情況下,禁止某個用戶或角色對一個對象執(zhí)行某種操作。空:剝奪權限,表示不允許某個用戶或角色對一個對象執(zhí)行某種操作。還可以單擊一個特定的用戶或角色,然后單擊“列”按鈕,打開“列權限”對話框,將權限控制到字段的級別。單擊“確定”按鈕,完成對象權限的設置。實驗8實現(xiàn)觸發(fā)器實驗目的1.掌握觸發(fā)器的創(chuàng)建、修改和刪除操作。2.掌握觸發(fā)器的觸發(fā)執(zhí)行。3.掌握觸發(fā)器與約束的不同。實驗要求1.創(chuàng)建觸發(fā)器。2.觸發(fā)器執(zhí)行觸發(fā)器。3.驗證約束與觸發(fā)器的不同作用期。4.刪除新創(chuàng)建的觸發(fā)器。實驗內容(一)示例1.創(chuàng)建觸發(fā)器①啟動SQLServer查詢分析器,打開“SQL查詢分析器”窗口,選擇要操作的數(shù)據(jù)庫,如“sc(學生選課)”數(shù)據(jù)庫。②在查詢命令窗口中輸入以下CREATETRIGGER語句,創(chuàng)建觸發(fā)器。為sc(學生選課)表創(chuàng)建一個基于UPDATE操作和DELETE操作的復合型觸發(fā)器,當修改了該表中的成績信息或者刪除了成績記錄時,觸發(fā)器被激活生效,顯示相關的操作信息。--創(chuàng)建觸發(fā)器CREATETRIGGERtri_UPDATE_DELETE_scONscFORUPDATE,DELETEAS--檢測成績列表是否被更新IFUPDATE(成績)BEGIN--顯示學號、課程號、原成績和新成績信息SELECTINSERTED.課程號,DELETED.成績AS原成績,INSERTED.成績AS新成績FROMDELETED,INSERTEDWHEREDELETED.學號=INSERTED.學號END--檢測是更新還是刪除操作ELSEIFCOLUMNS_UPDATED()=0BEGIN--顯示被刪除的學號、課程號和成績信號SELECT被刪除的學號=DELETED.學號,DELETED.課程號,DELETED.成績AS原成績FROMDELETEDENDELSE--返回提示信息PRINT‘更新了非成績列!’③點擊快捷工具欄上的快捷按鈕,完成觸發(fā)器的創(chuàng)建。2.觸發(fā)觸發(fā)器①在查詢命令窗口中輸入以下UPDATEsc語句,修改成績列,激發(fā)觸發(fā)器。UPDATEscSET成績=成績+5WHERE課程號=’101②在查詢命令窗口中輸入以下UPDATEsc語句修改非成績列,激發(fā)觸發(fā)器。UPDATEscSET課程號=’113WHERE課程號=’103③在查詢命令窗口中輸入以下DELETEsc語句,刪除成績記錄,激發(fā)觸發(fā)器。DELETEscWHERE課程號=’1023.比較約束與觸發(fā)器的不同作用期①在查詢命令窗口中輸入并執(zhí)行以下ALTERTABLE語句,為sc表添加一個約束,使得成績只能大于等于0且小于等于100。ALTERTABLEscADDCONSTRAINTCK_成績CHECK(成績>=0AND成績<=100)②在查詢命令窗口中輸入并執(zhí)行以下UPDATEsc語句,查看執(zhí)行結果。UPDATEscSET成績=120WHERE課程號=’108③在查詢命令窗口中輸入執(zhí)行以下UPDATEsc語句,查看執(zhí)行結果。UPDATEscSET成績=90WHERE課程號=’108從這部分實驗中,我們可以看到,約束優(yōu)先于觸發(fā)器起作用,它在更新前就生效,以對要更新的值進行規(guī)則檢查。當檢查到與現(xiàn)有規(guī)則沖突時,系統(tǒng)給出錯誤消息,并取消更新操作。如果檢查沒有問題,更新被執(zhí)行,當執(zhí)行完畢后,再激活觸發(fā)器。4.刪除新創(chuàng)建的觸發(fā)器①在查詢命令窗口中輸入DROPTRIGGER語句,刪除新創(chuàng)建的觸發(fā)器。DROPTRIGGERtri_UPDATE_DELETE_sc②點擊快捷工具欄上的快捷按鈕,刪除觸發(fā)器。(二)練習1.在Student表中編寫insert,update的觸發(fā)器,假如每個班的學生不能超過30個,如果低于此數(shù),添加可以完成;如果超過此數(shù),則插入、修改將不能實現(xiàn)。2.在CS表上編寫update觸發(fā)器,當修改SC表中的grade字段時將其修改前后的信息保存在SC_log表中。實驗9數(shù)據(jù)庫備份與恢復實驗目的1.掌握數(shù)據(jù)庫的備份和恢復操作。2.掌握數(shù)據(jù)庫的部分備份和完全備份方法。3.掌握數(shù)據(jù)庫的恢復方法。實驗要求1.創(chuàng)建數(shù)據(jù)庫。2.學會自動備份和手工備份數(shù)據(jù)庫。3.學會文件恢復和設備恢復數(shù)據(jù)庫。實驗內容(一)、簡單備份恢復1、創(chuàng)建數(shù)據(jù)庫,建表,存儲部分實驗數(shù)據(jù),2、打開SQLSERVER2000幫助,查找企業(yè)管理器有關數(shù)據(jù)庫備份和恢復內容。3、設置自動備份和手工備份數(shù)據(jù)庫;4、手工文件恢復和設備恢復數(shù)據(jù)庫;5、檢查恢復后的數(shù)據(jù)庫查看具體內容是否存在;(二)、增量備份恢復設計增量備份數(shù)據(jù)庫,修改數(shù)據(jù)庫表內數(shù)據(jù),恢復數(shù)據(jù)庫查看新增內容是否存在。(二)、自動備份設計自動備份數(shù)據(jù)庫,修改數(shù)據(jù)庫表內數(shù)據(jù),恢復數(shù)據(jù)庫查看新增內容是否存在。實驗10數(shù)據(jù)庫設計綜合應用任務1:活期儲蓄管理系統(tǒng)數(shù)據(jù)庫設計1.問題的提出在活期儲蓄管理過程中,“儲戶”通過“存取款”與“儲蓄所”發(fā)生業(yè)務聯(lián)系。試設計活期儲蓄管理系統(tǒng)數(shù)據(jù)庫的概念模型、關系模型并確定約束。2.系統(tǒng)需求分析通過對數(shù)據(jù)庫用戶(儲蓄所業(yè)務人員)的調查,對用戶的需求進行分析得知:(1)儲戶是指在某個儲蓄所開戶的人。該儲蓄所稱為儲戶的開戶行。(2)一個儲蓄所可以有多個儲戶,每個儲戶有惟一的賬號。(3)每個儲戶可以在多個允許發(fā)生業(yè)務的儲蓄所進行存取款。(4)儲戶按信譽分為“一般”和“良好”兩種(分別用0和1表示)。信譽“一般”的儲戶不允許透支。信譽“良好”的儲戶可以透支,但不能超過5萬元。(5)儲戶按狀態(tài)分為:“正?!焙汀皰焓А眱煞N(分別用0、1表示)。狀態(tài)為“正?!钡膬粼试S存取款,狀態(tài)為“掛失”的儲戶不允許存取款。(6)儲戶的信息有:賬號、姓名、密碼、電話、地址、信譽、存款額、開戶行編號、開戶日期、狀態(tài)等。(7)儲蓄所的信息有:編號、名稱、電話、地址、負責人(8)儲戶進行存取款時應該提供賬號、存取標志(1:表示存款,0:表示取款)、存取金額、存取日期等信息,儲蓄所首先要對儲戶的身份進行驗證,對合法的儲戶再根據(jù)“信譽”判斷是否可以發(fā)生此次業(yè)務。若發(fā)生業(yè)務則記錄相應信息,修改儲戶的存款額。3.概念模型設計請你根據(jù)系統(tǒng)需求分析設計E-R圖。4.關系模型設計請你跟據(jù)E-R圖轉換成對應的關系模型,并標出主碼5.約束關系(1)實體完整性例如實體“儲戶”的主碼“賬號”不能為空等。請你描述出全部的實體完整性。(2)參照完整性例如參照關系“存取款”的屬性“賬號”和儲蓄所“編碼”分別是被參照關系“儲戶”和“儲蓄所”的外碼。因此,參照關系“存取款”的屬性“賬號”的值必須是被參照關系“儲戶”中某一元組的“賬號”的值。請你描述出全部的參照完整性。(3)用戶定義的完整性要求如下:對信譽為“一般”的儲戶取款時,只有當:“儲戶.存款額”-“存取款.金額”≥0時才可以發(fā)生取款業(yè)務。同理,對信譽為“良好”的儲戶取款時,只要:“儲戶.存款額”-“存取款.金額”≥-50000(元)時便可以發(fā)生取款業(yè)務。6.關系結構描述請你仿照表1描述出活期儲蓄管理系統(tǒng)的關系結構,實際上是給出了該系統(tǒng)數(shù)據(jù)庫模式的型。表1學生數(shù)據(jù)庫關系結構描述關系名稱屬性名稱數(shù)據(jù)類型寬度說明學生學號字符串10姓名字符串8電話字符串16出生年月日期時間型8性別字符串15日期時間型8課程課程號字符串15課程名字符串6先修課程號貨幣型8狀態(tài)整數(shù)1取值為0、1學生選課學號字符串10課程號字符串40成績字符串16任務2:活期儲蓄管理系統(tǒng)數(shù)據(jù)庫上的查詢1.示例數(shù)據(jù)這里的示例數(shù)據(jù),實際上是給出了活期儲蓄管理系統(tǒng)數(shù)據(jù)庫模式中各關系型的一個值,這些值構成數(shù)據(jù)庫模式的一個值(或一個狀態(tài))。(1)
儲戶基本信息數(shù)據(jù)賬號姓名電話地址開戶行開戶日期10020089張曉軍(0571)22959618杭州10022002-11-2010020123李丹娜(021)86129618上海12082000-08-0610245082張嵐(0571)66787968杭州10021998-06-0110204568王立群(021)89727982上海13032004-01-0810204567趙慶(0571)28008986杭州12082003-02-08(2)
儲戶動態(tài)信息數(shù)據(jù)賬號密碼信譽存款額[元]狀態(tài)10020089ASDZXC0286000110020123WERERT11678120110245082DFGASD13000000110204568SDFCVB035000110204567CVBGHJ112000001密碼一般都是加密存儲的。(3)
儲蓄所數(shù)據(jù)編號名稱電話地址1001中國建行杭州分行秋濤支行(0571)88049082秋濤北街283號1002中國建行杭州分行武林支行(0571)68066080武林南路366號1208中國建行杭州分行下沙支行(0571)28800088下沙22號大街788號1303中國建行杭州分行濱江支行(0571)26880266濱江18號大街632號(4)存取款數(shù)據(jù)賬號儲蓄所編號標志存取金額存取日期1002012310021500002003-09-281024508212080800002003-10-161002012310010100002003-12-101002008913031120002003-12-101002012310020200002003-12-161024508210020100002004-01-081020456712081200002004-02-081024508212081300002004-03-162.數(shù)據(jù)查詢這里的每個查詢可以俠義的視為一個應用,它所涉及的基本表或視圖即為該應用的外模式。請你在上述給出的活期儲蓄管理系統(tǒng)數(shù)據(jù)庫表數(shù)據(jù)中,寫出完成如下諸查詢SQL命令。(1)查詢儲戶的姓名和存款額(2)查詢賬號為10245082的儲戶的存取款記錄。(3)查詢編號為1002的儲蓄所2003.10-2004.10的存取款業(yè)務詳細記錄。(4)查詢編號為1002的儲蓄所的存取款業(yè)務匯總情況。任務3:創(chuàng)建活期儲蓄管理系統(tǒng)數(shù)據(jù)庫--數(shù)據(jù)庫的物理設計與實現(xiàn)這里給出的活期儲蓄數(shù)據(jù)庫的物理設計與實現(xiàn),實際上就是數(shù)據(jù)庫模式到內模式(數(shù)據(jù)庫的存儲模式)的映射。1.用SQLServer2000創(chuàng)建案例1描述的數(shù)據(jù)庫數(shù)據(jù)庫名稱為:活期儲蓄。數(shù)據(jù)主文件為:活期儲蓄_data.mdf,存儲在“D:\data”,存儲空間初始值為5MB,最大空間為100MB,文件增量15%。日志文件為:活期儲蓄_log.idf,存儲在“E:\data”,存儲空間初始值為5MB,最大空間為200MB,文件增量5MB。請你寫出實現(xiàn)上述要求的Transact-SQL語句為。2.創(chuàng)建表根據(jù)案例1描述的關系結構,建立表,并設置實體完整性、參照完整性。請你寫出Transact-SQL語句。3.創(chuàng)建視圖(1)創(chuàng)建視圖“存款”,包括信息:儲戶基本信息.賬號、儲戶基本信息.姓名、儲戶動態(tài)信息.存款額以便于儲戶簡單查詢。(2)創(chuàng)建視圖“儲戶”,信息來自“儲戶基本信息”和“儲戶動態(tài)信息”。前臺應用程序,輸入開戶信息時,應該包括這兩個表的內容,建立視圖后,應用程序可以只調用這個視圖,從而簡化了前臺應用程序對數(shù)據(jù)庫的調用。4.創(chuàng)建索引在表“存取款”上按“存取日期”的索引。以利于按時間段的業(yè)務查詢。Transact-SQL語句為:任務4:活期儲蓄管理系統(tǒng)數(shù)據(jù)庫上的一般操作1.錄入數(shù)據(jù)利用企業(yè)管理器,將案例2中的示例數(shù)據(jù)輸入到相應的表中。2.數(shù)據(jù)查詢在案例2中,給出了活期儲蓄管理系統(tǒng)數(shù)據(jù)庫表上用SQL語句進行查詢的命令。這里給出在SQLServer2000查詢分析器中使用Transact-SQL語句完成相應查詢的命令。(1)查詢賬號10245082的姓名和存款額。查詢語句和查詢結果如圖4-1所示。圖4-1查詢(1)的語句和結果(2)查詢賬號10245082自2003.10-2004.10的存取款記錄。查詢語句和查詢結果如圖4-2所示。圖4-2查詢(2)的語句和結果(3)查詢編號為1002的儲蓄所2003.10-2004.10的存取款業(yè)務詳細記錄。查詢語句和查詢結果如圖4-3所示。圖4-3查詢(3)的語句和結果(4)查詢編號為1002的儲蓄所的存取款業(yè)務匯總情況。存取款表的數(shù)據(jù)如圖4-4所示。查詢語句及其結果如圖4-5所示。圖4-4存取款表中的數(shù)據(jù)圖4-5查詢(4)的語句和結果任務5:建立活期儲蓄管理系統(tǒng)數(shù)據(jù)庫的觸發(fā)器和存儲過程1.問題的提出利用企業(yè)管理器向“存取款”表中插入兩條記錄:賬號儲蓄所編號標志存取金額存取日期1002012312080200002004.06.281024508210021300002004.7.16檢查“儲戶動態(tài)信息表”,會發(fā)現(xiàn)以上兩個儲戶存取款后,儲戶的“存款額”值并未發(fā)生改變。這顯然是不符合實際情況的。我們希望,每當“儲戶”在某一個“儲蓄所”進行“存取款”時,應同時自動修改該儲戶的“存款額”。這一功能可以通過在表“存取款”上建立“INSERT”觸發(fā)器完成。2.在“存取款”表上創(chuàng)建“INSERT”觸發(fā)器步驟:(1)驅動企業(yè)管理器,打開【數(shù)據(jù)庫】文件夾,打開【活期儲蓄】數(shù)據(jù)庫,選擇表【存取款】并單擊右鍵,在彈出的菜單中選擇【所有任務】,然后選擇【管理觸發(fā)器】命令,出現(xiàn)如圖5-1所示的界面。圖5-1在表存取款上選擇建立觸發(fā)器(2)在編輯窗口中,輸入以下Transact-SQL命令:CREATETRIGGER[ins-存取款]ON[dbo].[存取款]FORINSERTASDECLARE@ckemoney,--存款額@jemoney,--存取金額@bzint,--存取標志@xyint,--信譽@zhchar(15),--賬號@ztint--儲戶狀態(tài)SELECT@zh=i.賬號,@je=i.[金額(元)],@bz=i.標志FROMinsertediSELECT@cke=a.[存款額(元)],@xy=a.信譽,@zt=a.狀態(tài)from儲戶動態(tài)信息aIF(@zt=1)PRINT'此賬號為掛失狀態(tài)!'ELSEBEGINIF(@bz=1)SET@cke=@cke+@jeELSESET@cke=@cke-@jeIF(@xy=0and@cke<0)BEGINPRINT'對不起,您不能透支!'ROLLBACKENDIF(@xy=1and@cke<-5000)BEGINPRINT'您的透支金額超過5000元'ROLLBACKENDUPDATE儲戶動態(tài)信息表SET[存款額(元)]=@ckeWHERE賬號=@zhEND(3)【檢查語法】無誤后,單擊【確定】按鈕,便在表“存取款”上建立了名為ins-存取款觸發(fā)器。如圖5-2所示。圖5-2建立觸發(fā)器操作界面將“存取款”表中插入的兩條記錄刪除,重新插入,會發(fā)現(xiàn)“儲戶動態(tài)信息表”中,儲戶的“存款額”值以正確改變。3.編寫驗證儲戶“密碼”的存儲過程問題要求:將儲戶輸入的“密碼”與“用戶動態(tài)信息”表中保存的“密碼”值進行比較,回答正確返回“1”,不正確返回“0”。存儲過程設計入口參數(shù):@zh-儲戶賬號,@ma-儲戶輸入的密碼。出口參數(shù):@tag-值為1,表示密碼正確;值為0,表示密碼錯誤。Transact-SQL程序CREATEPROCEDURE[dbo].[test]@zhchar(15),--儲戶賬號@machar(6),--儲戶密碼@tagintoutput--值為1,表示輸入正確;值為0,表示賬號或密碼錯誤ASIFEXISTS(SELECT*FROM儲戶動態(tài)信息WHERE(ltrim(rtrim(@zh))=ltrim(rtrim(賬號))andltrim
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 便攜式智能內分泌儀行業(yè)深度調研及發(fā)展戰(zhàn)略咨詢報告
- 為購房定金合同設定保障措施
- 園藝管理項目合同
- 2025至2030年中國圓柱形彈簧數(shù)據(jù)監(jiān)測研究報告
- 收購礦山合同范本
- 2025至2030年中國α-巰基丙酰甘氨酸數(shù)據(jù)監(jiān)測研究報告
- 合租防疫措施協(xié)議
- 權益共享合同范本
- 期房 抵押合同范本
- 農莊合作經營協(xié)議書范本
- 中華人民共和國國歌教案【四篇】
- 北師大版數(shù)學二年級上冊口算題練習(300道)可直接打印
- 西方音樂史完整演示文稿
- 關于優(yōu)秀干部特點和優(yōu)點【六篇】
- 臨時用藥申請表
- 有關變電站消防安全管理問題及對策
- 軍隊文職招聘(司機崗)近年考試真題題庫(含真題、典型題匯總)
- 圍棋初級死活常型
- 西師版二年級下大小比較
- 注塑工藝培訓資料史上最全課件
- 眼球結構課件
評論
0/150
提交評論