2023年數據庫原理實驗報告新編_第1頁
2023年數據庫原理實驗報告新編_第2頁
2023年數據庫原理實驗報告新編_第3頁
2023年數據庫原理實驗報告新編_第4頁
2023年數據庫原理實驗報告新編_第5頁
已閱讀5頁,還剩36頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

學生實驗報告(理工類)課程名稱:數據庫系統原理專業班級:15計科(W專轉本)1學生學號:學生姓名:蔡文豪所屬院部:計算機工程學院指導教師:王預2015——2016學年第1學期金陵科技學院教務處制實驗報告書寫規定實驗報告原則上規定學生手寫,規定書寫工整。若因課程特點需打印的,要遵照以下字體、字號、間距等的具體規定。紙張一律采用A4的紙張。實驗報告書寫說明實驗報告中一至四項內容為必填項,涉及實驗目的和規定;實驗儀器和設備;實驗內容與過程;實驗結果與分析。各院部可根據學科特點和實驗具體規定增長項目。填寫注意事項(1)細致觀測,及時、準確、如實記錄。(2)準確說明,層次清楚。(3)盡量采用專用術語來說明事物。(4)外文、符號、公式要準確,應使用統一規定的名詞和符號。(5)應獨立完畢實驗報告的書寫,嚴禁抄襲、復印,一經發現,以零分論處。實驗報告批改說明實驗報告的批改要及時、認真、仔細,一律用紅色筆批改。實驗報告的批改成績采用百分制,具體評分標準由各院部自行制定。實驗報告裝訂規定實驗批改完畢后,任課老師將每門課程的每個實驗項目的實驗報告以自然班為單位、按學號升序排列,裝訂成冊,并附上一份該門課程的實驗大綱。實驗項目名稱:熟悉SQLServer2023環境及數據庫文獻管理實驗學時:2同組學生姓名:實驗地點:1316實驗日期:2023.3.24實驗成績:批改教師:王預批改時間:2023.3.27一、實驗目的和規定1、熟悉SQLServer2023工作環境、了解SQLServer2023重要管理工具的用途、掌握登錄SQLServer2023的方法;2、熟悉數據庫的組成;3、了解數據庫快照的使用方法;4、掌握創建、修改、刪除數據庫的方法;5、熟悉如何查看數據庫狀態;6、掌握分離數據庫和附加數據庫的方法。二、實驗設備、環境設備:奔騰Ⅳ或奔騰Ⅳ以上計算機;環境:WINDOWS2023SERVER或WINDOWS2023SERVER、SQLServer2023中文版。三、實驗環節1、根據題目規定熟悉SQLServer2023的各種管理工具;2、分析題意,重點分析題目規定并給出解決方法;3、按題目規定完畢實際操作任務,并將相關文檔資料保存在以自己學號命名的文獻夾中;4、提交完畢的實驗結果。四、實驗內容一、熟悉SQLServer2023管理工具SQLServer2023系統提供了大量的管理工具,通過這些管理工具可以對系統實現快速、高效管理。重要管理工具如下:1、SQLServerManagementStudio(1)對象資源管理器允許查看和連接到SQLServer、分析器、集成服務器、報表服務器和SQLMobile。一旦連接到特定的服務,可以在對象節點中查看它的組件,并且可以訪問子節點對象。(2)已注冊的服務器顯示當前已注冊的服務器。窗格頂部的列表,涉及SQLServer、分析服務器、集成服務器、報表服務器和SQLMobile。允許用戶在特定的服務器之間快速轉換。(3)模板資源管理器提供對查詢編輯器的模板和任何用戶所創建的自定義模板的快速訪問。模板可以通過SQLServerManagementStudio所支持的任何腳本語言來創建。(4)解決方案管理器提供對現存的SQLServer、分析服務器和SQLMobile的項目的快速訪問。當項目被執行時,項目會給出連接、查詢和執行的其他函數的具體信息。2、SQLServerBusinessIntelligenceDevelopmentStudio(商業智能)SQLServerBusinessIntelligenceDevelopmentStudio為開發人員提供的一種新的項目開發和管理工具。開發人員可以使用SQLServerBusinessIntelligenceDevelopmentStudio設計端到端的商業智能解決方案。3、SQLServerConfigurationSQLServerConfiguration(配置管理器)包含了SQLServer2023服務、SQLServer2023網絡配置和SQLNativeClient配置3個工具,提供數據庫管理人員做服務啟動與停止與監控、服務器端支持的網絡協議,用戶用來訪問SQLServer的網絡相關設立等工作。4、SQLServer外圍應用配置SQLServer外圍應用配置器是SQLServer2023的新增功能,該工具是用來減少SQLServer的服務數和組件數的一種方法,以幫助保護SQLServer避免出現安全缺口。5、DatabaseEngineTuningAdvisor(數據庫引擎的優化顧問)工具可以完畢幫助用戶分析工作負荷、提出創建高效索引的建議等功能。6、SQLServer聯機叢書:重要為用戶提供幫助。7、sqlcmd:提供了在命令提醒符中輸入Transact-SQL語句、系統過程和腳本文獻的功能。二、熟悉數據庫的組成1、系統數據庫(1)master數據庫master數據庫存儲SQLServer2023系統的所有系統級信息。涉及實例范圍的元數據、端點、鏈接服務器和系統配置設立。(2)model數據庫Model數據庫用作SQLServer2023實例上創建的所有數據庫的模板。在SQLServer2023中在三個方面做了重大改變,涉及:擴大了最小值取之范圍、兼容級別設立為90和PAGE_VERIFY數據庫選項設立為CHECKSUM。(3)msdb數據庫Msdb數據庫重要被SQLServer2023代理用于進行復制、作業調度以及管理警報等活動,該數據庫通常用于調度任務或排除故障。(4)tempdb數據庫tempdb數據庫是連接到SQLServer2023所有用戶都也許用的全局資源,它保存所有臨時表和臨時存儲過程。此外,它還用來滿足所有的其他存儲規定,例如,存儲SQLServer2023工作表。每次啟動SQLServer2023時都會重新創建tempdb數據庫,以便系統啟動時,給數據庫總是空的。斷開連接時會自動刪除臨時表和存儲過程,并在系統關閉后沒有活動的連接。(5)resource數據庫resource數據庫是一個只讀數據庫,它包含了SQLServer2023中的所有系統對象。SQLServer系統對象在物理上連續存在于Resource數據庫中,但邏輯上,他們出現在數據庫的sys架構上。resource數據庫的物理文獻名為Mssqlsystemresource.mdf。任意移動或重命名resource數據庫文獻,SQLServer2023將不能正常啟動。三、數據庫存儲文獻SQLServer2023數據庫中有三種類型的文獻來存儲信息。1、主數據文獻主數據文獻包話數據庫的啟動信息,并指向數據庫中的其他文獻。用戶數據和對象可存儲在該文獻中,也可以存儲在輔助數據文獻中。每個數據庫只能有一個主數據文獻。其擴展名為.mdf。2、輔助數據文獻輔助數據文獻是可選的。由用戶定義并存儲用戶數據。每個數據庫可以有多個輔助數據文獻,其擴展名為.ndf。3、事務日記文獻事務日記文獻是用于保存恢復數據庫的日記信息的。每個數據庫必須至少有一個日記文獻,其擴展名為.ldf。4、文獻組文獻組是將多個數據文獻集合起來形成一個整體。每個文獻組有一個組名。文獻組分為主文獻組和次文獻組。一個文獻只能存放在一個文獻組中,一個文獻組也只能為一個數據庫使用。主文獻組包含了所有的系統表。當建立數據庫時,主文獻組包含數據庫文獻和未指定組的其他文獻。事務日記文獻不包含在任何文獻組中。四、創建數據庫1、使用向導創建數據庫2、語句方式創建數據庫(1)最簡樸的語句創建數據庫CreatedatabasedatabaseName(2)一般創建數據庫的格式CREATEDATABASEdatabase_name[ON[<filespec>[,...n]]

[,<filegroup>[,...n]]]][LOGON{<filespec>[,...n]}][COLLATEcollation_name][FORLOAD|FORATTACH]<filespec>::=[PRIMARY]([NAME=logical_file_name,]FILENAME='os_file_name'

[,SIZE=size]

[,MAXSIZE={max_size|UNLIMITED}]

[,FILEGROWTH=growth_increment])[,...n]<filegroup>::=FILEGROUPfilegroup_name<filespec>[,...n](3)示例CREATEDATABASESalesON(NAME=Sales_dat,FILENAME='c:\programfiles\microsoftsqlserver\mssql\data\saledat.mdf',SIZE=10,MAXSIZE=50,FILEGROWTH=5)LOGON(NAME='Sales_log',FILENAME='c:\programfiles\microsoftsqlserver\mssql\data\salelog.ldf',SIZE=5MB,MAXSIZE=25MB,FILEGROWTH=5MB)3、請按照規定用工具和SQL語句兩種方法創建名為MyDB數據庫。五、維護數據庫1、修改數據庫名稱(1)使用ALTERDATABASE語句ALTERDATABASEdatabaseNameMODIFYNAME=newdatabaseName(2)使用存儲過程EXECsp_dboption‘databaseName’,‘SINGLE’,True/*一方面將數據庫設立為單用戶模式*/EXECsp_renamedb‘databaseName’,‘newdatabaseName’/*修改數據庫名*/EXECsp_dboption‘newdatabaseName’,‘SINGLE’,False/*取消單用戶模式*/(3)從資源管理器窗口修改數據庫名2、修改數據庫大小(1)設立數據庫文獻為自動增長方式(2)直接修改數據庫文獻的大小(3)增長輔助數據庫文獻(4)示例CREATEDATABASETest1ON(NAME=Test1dat1,FILENAME='c:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\t1dat1.ndf',SIZE=5MB,MAXSIZE=100MB,FILEGROWTH=5MB)GOALTERDATABASETest1ADDFILE(NAME=Test1dat2,FILENAME='c:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\t1dat2.ndf',SIZE=5MB,MAXSIZE=100MB,FILEGROWTH=5MB)(5)請參照示例用SQL語句為MyDB數據庫增長輔助數據庫文獻MyDB2,其大小為3MB,最大為10MB,按照10%增長。3、收縮數據庫(1)設立數據庫為自動收縮(2)手動收縮數據庫(3)使用DBCCSHRINKDATABASE命令收縮數據庫該命令是一種比自動收縮數據庫更加靈活的收縮數據庫方式。可以對整個數據庫進行收縮。示例:DBCCSHRINKDATABASE(UserDB,10)/*該命令將UserDB用戶數據庫中的文獻減小,以使UserDB中的文獻有10%的可用空間。*/(4)請使用該命令將MyDB數據庫收縮到有10%的可用空間。4、刪除數據庫(1)使用管理工具(2)使用T-SQL語句DROPDATABASEdatabase_name[,...n]5、分離數據庫分離數據庫是指數據庫從SQLServer實例上刪除,但是數據文獻、但事務日記文獻仍然保持不變。注意:分離數據庫假如出現下列情況之一,則不允許分離:*已復制并發數據庫、*數據庫中存在數據庫快照、*數據庫處在未知狀態。(1)使用語句分離數據庫示例:execsp_detach_dbMyDB(2)可以使用工具6、附加數據庫附加數據庫時,所有的數據文獻(.mdf文獻和.ndf文獻)都必須是可用的。假如任何數據文獻的途徑和創建時或上次附加數據庫時的途徑不同,則必須指定文獻的當前程徑。在附加數據庫的過程中,假如沒有日記文獻,系統將創建一個新的日記文獻。(1)使用工具附加數據庫(2)使用SQL語句附加數據庫示例:CREATEDATABASESalesON(NAME=‘Sales_dat’,FILENAME=‘c:\programfiles\microsoftsqlserver\mssql\data\saledat.mdf')LOGON(NAME=‘Sales_log',FILENAME=‘c:\programfiles\microsoftsqlserver\mssql\data\salelog.ldf')FORATTACH(3)請用上述兩種方法將MyDB數據庫附加到實例中。五、問題解答及實驗結果1.創建數據庫MyDB?create

database

MyDBon(name=MyDB_data,Filename='D:\data\My_data.mdf',size=3MB,fileGrowth=1mb)log

on(name=MyDB_log,Filename='D:\data\MyDB_log.ldf',size=1MB,filegrowth=10%)2.重命名數據庫,改為MyDB1?alter

database

MyDB

Modify

name=MyDB13.使用存儲過程修改數據庫名稱

exec

sp_dboption

'MyDB','SINGLE',True

exec

sp_renamedb

'MyDB','MyDB1'

exec

sp_dboption

'MyDB1','SINGLE',False?4.增長輔助數據庫MyDB2?alter

database

MyDB1add

file(name=MyDB2,filename='D:\data\MyDB2dat.ndf',size=3MB,Maxsize=10MB,FileGrowth=10%)

5.收縮數據庫

dbcc

SHRINKDATABASE

(MyDB,10)

6.刪除數據庫

drop

database

MyDB?7.附加數據庫?create

database

MyDB

on(name='MyDB_dat',filename='D:\data\My_data.mdf')log

on(name='MyDB_log',filename='D:\data\MyDB_log.ldf')for

ATTACH;六、實驗體會和收獲通過這次實驗,我學習到了SqlServer數據庫的基本構成,掌握了基本的創建、添加、重命名數據庫等操作,學會了使用圖形界面工具操作數據庫的使用,在sql命令方法尚有點不熟悉,會在以后的實驗中逐漸加強。實驗項目名稱:表和表數據的操作實驗學時:2同組學生姓名:實驗地點:1316實驗日期:實驗成績:批改教師:王預批改時間:2023.4.3一、實驗目的和規定1、了解表的類型及創建方法;2、熟悉各種數據類型;3、掌握列的各種屬性;4、掌握自定義數據類型的創建方法;5、掌握用T-SQL語言和工具創建表的方法;6、掌握工具和T-SQL語言插入數據的方法。二、實驗設備、環境設備:奔騰Ⅳ或奔騰Ⅳ以上計算機;環境:WINDOWS2023SERVER或WINDOWS2023SERVER、SQLServer2023中文版。三、實驗環節1、根據題目規定熟悉SQLServer2023的各種管理工具;2、分析題意,重點分析題目規定并給出解決方法;3、按題目規定完畢實際操作任務,并將相關文檔資料保存在以自己學號命名的文獻夾中;4、提交完畢的實驗結果。四、實驗內容一、表的概述1、表的概念在關系數據庫中每一個關系都體現為一張表。表是用來存儲數據和操作數據的邏輯結構,關系數據庫中所有的數據都表現為表的形式。2、表的類型在SQLServer2023中,可以把表分為4種類型,即普通表、分區表、臨時表和系統表。每一種表都有其自身的作用和特點。(1)普通表:又稱為標準表,就是通常所說的數據庫中存儲數據的標,是最常使用的表對象,是最重要和最基本的表。(2)分區表:分區表達將數據水平劃提成多個單元的表,這些單元的表可以分散到數據庫中的多個文獻組里,以實現對單元中數據的并行訪問。其優點在于可以方便地管理大型表,提高對這些表中數據的使用效率。(3)臨時表:臨時表是臨時創建的、不能永久生存的表。又可以分為本地臨時表和全局臨時表。本地臨時表以#打頭,它們僅對當前的用戶連接時可見的,當用戶從SQLServe2023實理斷開連接時被刪除;全局臨時表以##打頭,創建后任何用戶都是可見,當所有引用該表的用戶從SQLServer2023中斷開連接時被刪除。(4)系統表:系統表與普通表的區別在于,系統表存儲了有關SQLServer2023服務器的配置、數據庫設立、用戶和表對象的描述等信息。二、列1、列數據類型在設計表的時候,需要知道每列字段的數據類型。SQLServer2023系統提供了28種數據類型,重要分為七大類。(1)精確數字類型這些數據類型的數據可以參與各種數學運算,所有的數值都是有精度的,精度是指有效數字位數。如整數數據類型:binint、int、smalling、tinyint;位數據類型bit;貨幣數據類型:Money、Smallmoney等。(2)近似數字類型在現實計算中,尚有一些數據沒有精確數值,如1/3,它無法用精確數字類型表達,需要由系統來定義精確到哪一位,這種類型就是近似數據類型。如:Decimal和Numeric;Float和Real等。(3)字符數據類型它是用來存儲各種字母、數字符號和特殊符號。在使用該數據類型時,需要用用單引號或雙引號括起來。SQLServer2023重要提供了Char、Varchar、Text3中數據類型。(4)Unicode字符數據類型Unicode是一種在計算機上使用的字符編碼。它為每一種語言中的每個字符設定了統一并且唯一的二進制編碼,以滿足跨語言、跨平臺進行文本轉換、解決的規定。SQLServer2023重要有:Nchar、Nvarchar、Ntext三種。(5)二進制數據類型二進制數據類型可以用來存儲二進制的數據。重要有:Binary、Varbinary、Image三種類型。(6)日期和時間數據類型在SQLServer2023中,日期和時間類型重要涉及:datetime和smalldatetime兩種。兩者區別在于其表達的日期和時間的范圍不同,時間的精確度也不同。(7)其他數據類型SQLServer2023系統還提供了Cursor、Sql_varant、Table、Timestamp、Uniqueidentifie、XML6種特殊用途的數據類型。2、列的其他屬性(1)NULL和NOTNULL定義屬性列時可以規定該列是否可認為空。(2)默認值當某個屬性的值大部分的取值都是相同時,可以使用默認值來減少插入數據時的時間。(3)IDENTITY使用IDENTITY關鍵字定義的字段為標記字段,標記字段是唯一標記每條記錄的特殊字段,當一條新記錄添加時,這個字段就被自動賦予一個新值。默認情況下是+1遞增。三、創建表1、使用SQLServerManagementStudio工具在MyDB數據庫中創建Student和Class表。Student表的結構為:字段名類型中文名備注SNOChar(8)學號主鍵SNameVarchar(10)姓名SexChar(2)性別男、女ClsNOChar(6)班級班級的編號,參照表ClassStuAddrVarchar(20)住址描述性說明BirthdaySmallDate出生年月HeightNumeric(4,2)身高以米為單位表達學生的身高。TotalCreditTinyint總學分Class表的結構為:字段名類型中文名備注ClsNOChar(6)班號主鍵ClsNameVarchar(16)班名對班級的描述信息DirectorVarchar(10)輔導員班級的輔導員SpecialtyVarchar(30)專業2、使用T-SQL語言在MyDB數據庫中創建再Course和Grade表,為以后的實驗做準備。Course表的結構為:字段名類型中文名備注CNOChar(4)課程號主鍵CNameVarchar(16)課程名課程的名稱PCNOchar(4)先修課程先修課程的課程號CreditTinyint學分Grade表的結構為:字段名類型中文名備注SNOChar(8)學號學號,參照Student,與CNO組成主鍵CNOChar(4)課程號課程號,參照CourseScorceNumeric(4,1)成績CreditTinyint學分四、自定義數據類型(1)使用SQLServerManagementStudio工具創建用戶自定義數據類型:studentNo,char(8)(2)系統存儲過程sp_addtype創建用戶自定義數據類型:courseNo,char(4)(3)修改MyDB數據庫中的各表,學號和課程號應用自定義的數據類型。五、修改表結構(1)使用Alter修改Student表結構,使其增長一列Department(系別)Char(12)。(2)使用SQLServerManagementStudio工具刪除剛剛增長的Department。六、插入數據使用SQLServerManagementStudio工具或insertinto語句,分別向下列表格插入數據。(1)向表(Student)中插入數據SNOSNameSexClsNOStuAddrBirthdayHeightTotalCredit19920231王軍男CS01下關40#1976.12.211.761019920232李杰男CS01江邊路96#1974.5.241.72919920306王彤女MT04中央路94#1977.3.181.65919940106吳杪女PH08蓮化社區74#1979.4.81.604插入數據之后使用命令:Select*fromStudent;檢查插入數據的對的性(2)向表(Class)中插入數據ClsNOClsNameDirectorSpecialtyCS01計算機一班王寧計算機應用MT04數學四班陳晨數學PH08物理八班葛格物理插入數據之后使用命令:Select*fromClass;檢查插入數據的對的性(3)向表(Course)中插入數據CNOCNamePCNOCredit0001數學Null60003計算機基礎000130007物理00014插入數據之后使用命令:Select*fromCourse;檢查插入數據的對的性(4)向表(Grade)中插入數據SNOCNOScoreCredit199202310001906199202310007864199202320001876199202320003763199203060001876199203060003933199401060007854插入數據之后使用命令:Select*fromGrade;檢查插入數據的對的性七、刪除表中的數據(1)使用SQLServerManagementStudio工具刪除課程號為0001的選課記錄。(2)使用T-SQL語言刪除Grade表中學號為19920231的數據八、刪除表格(1)使用SQLSQLServerManagementStudio工具刪除Class表。(2)使用DropTable命令刪除Grade表。*注旨在刪除之前,請將數據文獻拷貝一個副本,已備以后實驗使用。五、問題解答及實驗結果1.創建表CREATETABLE[dbo].[student]( [SNO][char](8)COLLATEChinese_PRC_CI_ASNOTNULL, [SName][varchar](10)COLLATEChinese_PRC_CI_ASNOTNULL, [Sex][char](2)COLLATEChinese_PRC_CI_ASNOTNULLCONSTRAINT[DF_student_Sex]DEFAULT('男''or''女'), [ClsNO][char](6)COLLATEChinese_PRC_CI_ASNOTNULL,?[StuAddr][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL, [Birthday][smalldatetime]NOTNULL, [Height][numeric](4,2)NOTNULL,?[TotalCredit][tinyint]NOTNULL,CONSTRAINT[PK__student__07020F21]PRIMARYKEYCLUSTEREDCREATETABLE[dbo].[Grade]( [SNO][char](8)COLLATEChinese_PRC_CI_ASNOTNULL, [CNO][char](4)COLLATEChinese_PRC_CI_ASNOTNULL,?[Scorce][numeric](4,1)NOTNULL, [Credit][tinyint]NOTNULL,CONSTRAINT[PK_Grade]PRIMARYKEYCLUSTEREDCREATETABLE[dbo].[Course](?[CNO][char](4)COLLATEChinese_PRC_CI_ASNOTNULL,?[CName][varchar](16)COLLATEChinese_PRC_CI_ASNOTNULL,?[PCNO][char](4)COLLATEChinese_PRC_CI_ASNOTNULL,?[Credit][tinyint]NOTNULL,CONSTRAINT[PK_Course]PRIMARYKEYCLUSTERED2.插入數據insertintoClassvalues('CS01','計算機一班','王寧','計算機應用')insertintoClassvalues('MT04','數學四班','陳晨','數學')insertintoClassvalues('PH08','物理八班','葛格','物理')insertintoStudentvalues('19920231','王軍','男','CS01','下關#','1976.12.21',1.76,10)insertintoStudentvalues('19920232','李杰','男','CS01','江邊路#','1974.5.24',1.72,9)insertintoStudentvalues('19920306','王彤','女','MT04','中央路#','1977.3.18',1.65,9)insertintoStudentvalues('19940106','吳杪','女','PH08','蓮化社區#','1979.4.8',1.60,4)insertintoCoursevalues('0001','數學','',6)insertintoCoursevalues('0003','計算機基礎','',3)insertintoCoursevalues('0007','物理','',4)insertintoGradevalues('19920231','0001',90,6)insertintoGradevalues('19920231','0007',86,4)insertintoGradevalues('19920232','0001',87,6)insertintoGradevalues('19920232','0003',76,3)insertintoGradevalues('19920306','0001',87,6)insertintoGradevalues('19920306','0003',93,3)insertintoGradevalues('19940106','0007',85,4)3.查詢表Select*fromStudent;Select*fromClass;select*fromCourse;select*fromGrade;4.自定義數據類型sp_addtypecourseNo,'char(4)','NOTNULL';5.修改表結構altertableStudentaddDepartmentChar(12);6.刪除表中數據deletefromGradewhereSNO='19920231';7.刪除表格droptableGrade;六、實驗體會和收獲通過這次實驗,我學習到了SqlServer數據庫的基本操作,學會了使用SQL命令添加數據內容,自定義數據結構,修改和刪除表格等。在新建查詢的過程中要注意先選擇相應數據庫,才干將數據添加到相應的表格里。實驗項目名稱:關系、索引和視圖實驗學時:2同組學生姓名:實驗地點:1316實驗日期:2023.04.07實驗成績:批改教師:王預批改時間:2023.04.10一、實驗目的和規定1、理解關系圖的含義及用途,掌握關系圖的創建方法;2、理解視圖的基本概念、種類及運用視圖修改數據時的限制,掌握視圖的創建方法;3、理解索引的基本概念及其優缺陷,掌握創建索引的方法。二、實驗設備、環境設備:奔騰Ⅳ或奔騰Ⅳ以上計算機;環境:WINDOWS2023SERVER或WINDOWS2023SERVER、SQLServer2023中文版。三、實驗環節1、根據題目規定熟悉SQLServer2023的各種管理工具;2、分析題意,重點分析題目規定并給出解決方法;3、按題目規定完畢實際操作任務,并將相關文檔資料保存在以自己學號命名的文獻夾中;4、提交完畢的實驗結果。四、實驗內容1、創建關系圖根據實際情況,為MyDB數據庫創建關系圖。其中涉及:Student、Course、Grade、Class四張表格,選擇表中相應的屬性建立表間的關聯。2、視圖的創建、查詢、修改和刪除。(1)創建一個名為V_Student的視圖,以顯示學生的學號、姓名、性別和出生年月等基本信息。(2)創建一個名為V_grade的視圖,以顯示選修“0001”號課程的學生成績信息,如學號、姓名、課程名稱、成績和學分等。(3)分別運用視圖V_Student和V_grade作查詢和更新操作。(4)修改V_Student視圖的定義,為其增長一個條件,使得該視圖只顯示“CS01”班學生的基本信息。(5)刪除名為V_Student的視圖。3、索引的創建、查看和刪除。(1)為Student表創建一個基于總學分和學號的索引idex_total_xh,其中總學分按降序排列,當總學分相同時,按學號升序排列,填充因子為80%。(2)學生表創建一個基于班級和姓名的索引idex_clas_name,其中按班號按升序、學生姓名按降序排列,填充因子為70%。(3)運用索引管理器查看索引。(4)刪除索引idex_total_xh。再運用索引管理器查看索引。注:以上3題除了第一題,其余各題均需要使用工具和SQL語言兩種方法來完畢。并將SQL語句按題號保存在自己的文獻夾下的實驗四目錄中。五、問題解答及實驗結果1.創建關系圖2.視圖的創建(1)createviewV_StudentasselectSNOas'學號',SNameas'姓名',Sexas'性別',Birthdayas'出生年月'fromStudent;(2)createviewV_GradeasselectGrade.SNOas'學號',SNameas'姓名',CNameas'課程名稱',Scorceas'成績',Grade.Creditas'學分'fromStudent,Course,GradewhereGrade.CNO='0001'andGrade.SNO=Student.SNOandGrade.CNO=Course.CNO;(3)視圖的查詢select*fromV_StudentgoSelect*fromV_Grade;(4)視圖的修改alterviewV_StudentasselectSNOas'學號',SNameas'姓名',Sexas'性別',Birthdayas'出生年月'fromStudentwhereStudent.ClsNO='CS01';(5)視圖的刪除dropviewV_Student3.索引命令(1)createindexidex_total_xhonStudent(TotalCreditDESC,SNO)with(fillfactor=80);(2)createindexidex_clas_nameonStudent(ClsNO,SNameDESC)with(fillfactor=70);(3)execsp_helpindexStudent(4)dropindexidex_total_xhonStudentdropindexidex_clas_nameonStudent六、實驗體會和收獲?通過這次的實驗,我掌握了視圖的建立、刪除、修改等基本操作,視圖可以讓我們更方便的管理查詢數據庫里的信息,尚有,建立視圖的過程中要注意表之間的連接關系。?實驗項目名稱:約束、默認和規則實驗學時:2同組學生姓名:實驗地點:1316實驗日期:2023.04.14實驗成績:批改教師:王預批改時間:2023.04.17一、實驗目的和規定1、理解數據庫中的實體完整性約束,掌握PRIMARYKEY、UNIQUE、NOTNULL等約束的創建方法;2、理解參照完整性約束的概念,掌握FORENGNKEY創建方法;3、理解域完整性的概念,掌握CHECK及規則的創建方法;4、理解默認值的概念,掌握默認值和默認對象的創建方法。二、實驗設備、環境設備:奔騰Ⅳ或奔騰Ⅳ以上計算機;環境:WINDOWS2023SERVER或WINDOWS2023SERVER、SQLServer2023中文版。三、實驗環節1、根據題目規定熟悉SQLServer2023的各種管理工具;2、分析題意,重點分析題目規定并給出解決方法;3、按題目規定完畢實際操作任務,并將相關文檔資料保存在以自己學號命名的文獻夾中;4、提交完畢的實驗結果。四、實驗內容1、約束在數據庫中的應用(1)用系統存儲過程sp_helpconstraint查看student表的約束。(2)在新建查詢中輸入插入一個學生信息的命令:insertintostudent(SNO,Sname,Sex,ClsNo,StuAddr,Birthday,Height,TotalCredit)values('19920231','王軍','男','CS01','下關#','1976.12.21',1.76,10),觀測其結果。修改SNO的值,將其值修改為‘19000001’,其他的值保持不變,再插入一次,觀測其結果。(3)修改student表,增長Check約束,約束名為check_sex,使性別列只能接受“男”或“女”,以強制執行域數據完整性。重做(1),觀測其結果。(4)嚴禁student表中的sex列上的約束:altertablestudentnocheckconstraintcheck_sex。(5)刪除約束:altertablestudentdropconstraintcheck_sex。重做(1)。(6)運用關系圖,建立student表與Course表與grade表的主外鍵約束。2、默認的應用(1)創建默認對象:default_birthday,默認值為‘1982-1-1’。(2)運用系統存儲過程sp_bindefault將default_birthday綁定到student表的Birthday列上。(3)運用系統存儲過程sp_unbindefault解除student表的Birthday列上的默認值綁定。(4)刪除默認值。(5)定義一個默認值為4的Default_Value,并將它綁定到Course表的Credit列上,綁定后給Course表插入數據行,觀測默認值的設立情況,使用完畢后,解除并刪除綁定。實現過程規定使用SQL語句完畢。3、規則的應用(1)運用公司管理器創建規則:規則名為:rule_credit_range,文本為:@range>=1and@range<=8;(2)綁定規則:將rule_credit_range綁定到Course表的Credit列上;(3)解除(2)中設立的規則綁定,刪除規則rule_credit_range;(4)定義一個規則rule_Specialty,這個規則限制Class表中的Specialty列只能取以下的值:計算機應用、信息管理、數學、物理。將該規則綁定到Class表后,向Class表插入數據行,觀測規則的設立情況,使用完畢后,解除并刪除該規則。五、問題解答及實驗結果1.(1)execsp_helpconstraintStudent(2)insertintostudent(SNO,Sname,Sex,ClsNo,StuAddr,Birthday,Height,TotalCredit)values('19920231','王軍','男','CS01','下關#','1976.12.21',1.76,10)(3)altertableStudentwithnocheckaddconstraintcheck_sexcheck(sexbetween'男'and'女')(4)altertableStudentnocheckconstraintcheck_sex(5)altertablestudentdropconstraintcheck_sex(6)/*創建主鍵*/altertableStudentaddconstraintpk_snoprimarykey(SNO);altertableClassaddconstraintpk_clsnoprimarykey(clsNo);altertableCourseaddconstraintpk_cnoprimarykey(CNO);/*創建組合主鍵*/altertableGradeaddconstraintpk_groupprimarykey(SNO,CNO);/*創建外鍵*/altertableStudentaddconstraintfk_clsnoforeignkey(ClsNO)referencesClass(ClsNO);2.(1)createdefaultdefault_birthdayas'1982-01-01'(2)execsp_bindefault'default_birthday','Student.birthday'(3)execsp_unbindefault'Student.birthday'(4)dropdefaultdefault_birthday(5)createdefaultDefault_Valueas4;execsp_bindefault'Default_Value','Course.Credit';insertintoCourse(CNO,CName,PCNO)values('0002','文學','');execsp_unbindefault'Course.Credit';dropdefaultDefault_Value;3.(1)createrulerule_credit_rangeas@rangebetween1and8(2)execsp_bindrule'rule_credit_range','Course.Credit'(3)execsp_unbindrule'Course.Credit'(4)createrulerule_Specialtyas@Specialtyin('計算機應用','信息管理','數學','物理');execsp_bindrule'rule_Specialty','Class.Specialty';insertintoClassvalues('PH09','物理八班','葛格','化學');execsp_unbindrule'Class.Specialty';六、實驗體會和收獲通過本次實驗,我掌握到了使用約束來控制數據的輸入限制,使用命令創建主外鍵約束等,約束可以防止數據庫中存在不符合的語句,實現了數據庫的完整性。?實驗項目名稱:T-SQL程序設計實驗學時:4同組學生姓名:實驗地點:實驗日期:04-21實驗成績:批改教師:王預批改時間:5-03一、實驗目的和規定1、掌握T-SQL中運算符和表達式的使用;2、通過對Select的使用,掌握Select語句的結構及其應用;3、掌握T-SQL中幾個常用流程控制語句的使用;4、掌握系統內置函數的概念及其應用;5、通過定義和使用用戶自定義函數,掌握自定義函數的概念及其應用。二、實驗設備、環境設備:奔騰Ⅳ或奔騰Ⅳ以上計算機;環境:WINDOWS2023SERVER或WINDOWS2023SERVER、SQLServer2023中文版。三、實驗環節1、根據題目規定熟悉SQLServer2023的各種管理工具;2、分析題意,重點分析題目規定并給出解決方法;3、按題目規定完畢實際操作任務,并將相關文檔資料保存在以自己學號命名的文獻夾中;4、提交完畢的實驗結果。四、實驗內容一、SQL查詢(*使用SQLServer樣例數據庫pubs完畢)1、簡樸查詢(1)查詢所有作者的姓名和作者號信息,并在每個作者的作者號前面顯示字符串“身份證號:”表白顯示信息是身份證信息;(authors表)(2)改變顯示列名。顯示所有作者的姓名信息和作者號信息,規定用“名”和“姓”來區別fname和lname,“作者編號”來區分作者號;(authors表)(3)查詢所有書在價格提高10%后的價格和書名信息;(titles表)(4)查詢所有書的書號和稅后價格。(titles表,royalty列表達稅率);(5)查詢所有作者的姓和“名的第一個字符”以及作者號;(authors表,SUBSTRING函數)(6)查詢郵政編碼大于9000的作者姓名和電話信息;(authors表)(7)查詢出版日期在1/1/1991到12/31/1991之間的書名(書名限制為38個字符)和出版日期;(titles表,SUBSTRING函數)(8)查詢書的類型是mod_cook或trad_cook的書名和它的類型;(titles表)(9)查詢店名中包含Book的店的信息;(stores表);(10)查詢書名以T開頭或者出版號為0877,且價格大于16美元的書的信息;(titles表)(11)查詢所有作者的所在城市和州名,規定沒有反復信息;(authors表)(12)按照類型的升序和價格的降序顯示書的信息;(titles表)2、生成匯總數據(1)計算多少種書已被定價;(titles表)(2)計算每本書的書號及它的售書總量;(sales表)(3)求銷售量大于30的書號及銷售數量;(sales表)(4)顯示在1994年1月1日到1994年10月31日間,每本書的銷售總額;(sales表,titles表)3、連接查詢(1)求每本雜志上刊登的文章;(titles,publishers表)(2)求某書店銷售某書的數量;(titles,stores,sales表)(3)查詢所有合著的書及其作者。(4)顯示所有已銷售的書名。4、子查詢(1)查詢有銷售記錄的所有書信息,涉及書的編號、書名、類型和價格;(2)求已銷售的書的信息;二、函數1、自定義一個名為Sage_func函數,按出生年月計算年齡。然后從Student表中檢索出具有年齡的學生信息。2、定義一個名為grade_func的自定義函數,將成績從百分制轉化為五級記分制。將該用戶定義函數用在查詢每個學生的成績中,給出五級記分制的成績。三、流程控制1、Student表中若存在學號為“19920231”的學生,則顯示已存在的信息,否則插入該學生的記錄。然后從student表中刪除學號為“19920231”的學生記錄,重新執行該程序,觀測與上次有何不同。2、使用While語句求1到100之間的累加和,輸出結果。五、問題解答及實驗結果六、實驗體會和收獲實驗項目名稱:存儲過程和觸發器實驗學時:2同組學生姓名:實驗地點:實驗日期:實驗成績:批改教師:批改時間:一、實驗目的和規定1、通過對常用系統存儲過程的使用,了解存儲過程的類型;2、通過創建和執行存儲過程,了解存儲過程的基本概念,掌握使用存儲過程的操作技巧和方法;3、通過對已創建的存儲過程的改變,掌握修改、刪除存儲過程的技巧;4、了解觸發器的基本概念,理解觸發器的功能;5、掌握創建、修改和刪除和使用觸發器的操作方法。二、實驗設備、環境設備:奔騰Ⅳ或奔騰Ⅳ以上計算機;環境:WINDOWS2023SERVER或WINDOWS2023SERVER、SQLServer2023中文版。三、實驗環節1、根據題目規定熟悉SQLServer2023的各種管理工具;2、分析題意,重點分析題目規定并給出解決方法;3、按題目規定完畢實際操作任務,并將相關文檔資料保存在以自己學號命名的文獻夾中;4、提交完畢的實驗結果。四、實驗內容一、存儲過程的類型。1、使用sp_helptext查看byroyalty存儲過程的文本,該存儲過程在數據庫pubs中。二、創建與執行存儲過程1、在MyDB中創建存儲過程proc_1,規定實現如下功能:產生學分為4的課程學生選課情況列表,其中涉及課程號、課程名、學分、學號、姓名、專業、性別等。并調用此存儲過程,顯示執行結果。2、在MyDB中創建存儲過程proc_2,規定實現如下功能:輸入專業名稱,產生該專業學生的選課情況列表,其中涉及專業、學號、姓名、課程號、課程名、成績、學分等。并調用此存儲過程,顯示“計算機應用”專業學生的選課情況列表。3、在MyDB中創建存儲過程proc_3,規定實現如下功能:輸入學生學號,根據該學生所選課程的總學分顯示提醒信息,假如總學分<9,則顯示“此學生學分局限性!”,否則顯示“此學生學分已足!”,并調用此存儲過程,顯示“19920232”學生的總學分情況。三、修改存儲過程1、對MyDB中已創建的存儲過程proc_1進行修改,規定在顯示列表中增長班級字段,即產生學分為“4”的課程學生選課情況列表,其中涉及課程號、課程名、學分、學號、姓名、專業、班級、性別等。2、在MyDB中創建的存儲過程proc_2進行修改,規定實現如下功能:輸入專業名稱,產生該專業所有男生的選課情況列表,其中涉及專業、學號、姓名、課程號、課程名、成績、學分等。并調用修改后的存儲過程,顯示“計算機應用”專業男生的選課情

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論