數(shù)據(jù)庫原理試驗1指導書_第1頁
數(shù)據(jù)庫原理試驗1指導書_第2頁
數(shù)據(jù)庫原理試驗1指導書_第3頁
數(shù)據(jù)庫原理試驗1指導書_第4頁
數(shù)據(jù)庫原理試驗1指導書_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本文格式為Word版,下載可任意編輯——數(shù)據(jù)庫原理試驗1指導書

《數(shù)據(jù)庫原理》試驗指導書

(SQLServer2023)

左風朝孫濤王玉亭

計算機學院2023.7

試驗1模式定義與數(shù)據(jù)完整性操作

試驗目的:

1.把握數(shù)據(jù)庫、架構、表(關系)和索引的建立方法;2.把握表結構(關系模式)的修改方法;

3.實踐DBMS提供的數(shù)據(jù)完整性功能,加深對數(shù)據(jù)完整性的理解。

試驗內(nèi)容:

1.使用ManagementStudio圖形界面創(chuàng)立studentdb數(shù)據(jù)庫,使用SQL語句創(chuàng)立spjdb。

在左側的對象資源管理器中“數(shù)據(jù)庫〞上點右鍵,新建數(shù)據(jù)庫,指定數(shù)據(jù)庫名studentdb和各項參數(shù)如路徑等,確定。

在上方工具條中點“新建查詢〞,新開啟窗口中輸入如下SQL語句:createdatabasespjdb然后點“執(zhí)行〞。

2.在studentdb數(shù)據(jù)庫中新建查詢,使用SQL語句創(chuàng)立以下3個表,同時完成數(shù)據(jù)完整性的定義(實體完整性、參照完整性和用戶定義的域完整性)。注意創(chuàng)立完成后需要刷新當前數(shù)據(jù)庫的表目錄。

student(學生信息表):主碼Pk列名snosnamessexsagesdept數(shù)據(jù)類型charcharcharsmallintchar寬度910215小數(shù)位空否NNYYY取值范圍不小于12備注學號姓名性別年齡系名

course(課程表):主碼Pk列名cnocnamecpnoccredit數(shù)據(jù)類型CharCharCharsmallint寬度4204小數(shù)位空否NYYY備注課程號課程名稱先行課號學分

sc(學生選課表):主碼Pk列名snocnograde數(shù)據(jù)類型寬度CharCharDecimal945小數(shù)1空否NNY外碼FkFk參照關系studentcourse取值范圍0≤x≤100備注學號課程號成績

3.在spjdb數(shù)據(jù)庫中使用圖形界面創(chuàng)立以下4個表,同時完成數(shù)據(jù)完整性的定義(實體完整性、參照完整性和用戶定義的域完整性):S(供應商信息表):

1

主碼Pk列名snosnamestatuscity數(shù)據(jù)類型charcharsmallintchar寬度21010小數(shù)位空否NNYY取值范圍大于0備注供應商號供應商名稱供應商狀態(tài)所在城市

P(零件信息表):主碼Pk列名pnopnamecolorweight數(shù)據(jù)類型charcharcharsmallint寬度2102小數(shù)位空否NNYY取值范圍大于0備注零件號零件名稱顏色重量

J(工程項目表):主碼Pk

SPJ(供應狀況表):主碼Pk列名snopnojnoqty數(shù)據(jù)類型寬度小數(shù)CharCharCharsmallint222空否NNNY外碼FkFkFk參照關系取值范圍SPJx>0備注供應商號零件號工程項目號數(shù)量列名jnojnamecity數(shù)據(jù)類型charcharchar寬度21010小數(shù)位空否NNY取值范圍備注工程項目號工程項目名稱所在城市

4.在studentdb中創(chuàng)立架構Production和Person并比較區(qū)別。

createschemaProduction

createschemaPersonAUTHORIZATIONst

注意在創(chuàng)立Person架構前需要先在當前數(shù)據(jù)庫中添加用戶,并僅僅授予該用戶建表的權限。CREATELOGINstWITHPASSWORD='suntao123'CREATEUSERstFORLOGINstGRANTcreatetabletost

然后用戶st登錄服務器,嘗試執(zhí)行如下的SQL語句:

createtablePerson.t1(idint,namechar(10))--成功

createtableProduction.t1(idint,namechar(10))--失敗,原因?

5.修改表結構,具體要求如下:

(1)將表course的cname列的數(shù)據(jù)類型改為varchar(40).

(2)為表student增加一個新列:birthday(出生日期),類型為datetime,默認為空值.(3)將表sc中的grade列的取值范圍改為小于等于150的正數(shù).(4)為Student表的“Sex〞字段創(chuàng)立一個缺省約束,缺省值為’男’

(5)為“Sdept〞字段創(chuàng)立一個檢查約束,使得所在系必需是’CS’、’MA’或’IS’之一。(6)為Student表的“Sname〞字段增加一個唯一性約束

2

(7)為SC表建立外鍵,依靠于Student表的fk_S_c約束。

(8)阻止啟用Student表的“Sdept〞的CHECK約束ck_student。6.分別建立以下索引(假使不能成功建立,請分析原因)(1)在student表的sname列上建立普通降序索引.(2)在course表的cname列上建立唯一索引.(3)在sc表的sno列上建立聚集索引.

(4)在spj表的sno(升序),pno(升序)和jno(降序)三列上建立一個普通索引.

提示:

1.創(chuàng)立數(shù)據(jù)庫的語法

CREATEDATABASE數(shù)據(jù)庫名ON[PRIMARY](

[,…n][])

[LOGON](

[,…n])

每個數(shù)據(jù)庫至少有兩個文件(一個主文件和一個日志文件)和一個文件組,如下例。CREATEDATABASEMySchool

ONPRIMARY--默認就屬于PRIMARY主文件組,可省略(

NAME='MySchool_data',--主數(shù)據(jù)文件的規(guī)律名FILENAME='D:\\MySchool_data.mdf',--主數(shù)據(jù)文件的物理名SIZE=5MB,--主數(shù)據(jù)文件初始大小MAXSIZE=100MB,--主數(shù)據(jù)文件增長的最大值FILEGROWTH=15%--主數(shù)據(jù)文件的增長率)

LOGON(

NAME='MySchool_log',

FILENAME='D:\\MySchool_log.ldf',SIZE=2MB,

FILEGROWTH=1MB)

2.創(chuàng)立基本表的SQL語句是CREATETABLE.簡單語法格式:

CREATETABLE表名

(列名數(shù)據(jù)類型[default缺省值][notnull][,列名數(shù)據(jù)類型[default缺省值][notnull]]

……

[,primarykey(列名[,列名]…)][,foreignkey(列名[,列名]…)references表名(列名[,列名]…)]

3

[,check(條件)]);

一般語法格式:

CREATETABLE[database_name.[owner].]table_name

({|column_name|}[,…n])

[ON{filegroup|DEFAULT}][TEXTIMAGE_ON{filegroup|DEFAULT}]

::={column_namedata_type}[DEFAULTconstant_expression]|[IDENTITY[(seed,increment)]][ROWGUIDCOL][][…n]

參數(shù)說明:

①[database_name.[owner].]table_name:定義表的名字,表名的長度不得超過128個字節(jié),假使是臨時表,則表名不能超過116個字符。

②:列的定義。

③column_name:列的名字。列的命名必需遵守有關數(shù)據(jù)庫對象的命名規(guī)則。④data_type:列的數(shù)據(jù)類型。

⑤DEFAULTconstant_expression:定義該列的默認值。⑥IDENTITY:定義該列是一個標識列。當一個新的數(shù)據(jù)行插入表中的時候,SQLServer2000為標識列提供一個唯一的、遞增的數(shù)值。在一張表格中,只能定義一個標識列。在定義標識列時,必需同時定義起始值和增量。

⑦Seed:定義標識列的起始值。所謂起始值就是插入表的第一行的數(shù)據(jù)的標識列的值。Increment:定義標識列的增量。所謂增量就是插入表的最近一行相對與前一行標識列的數(shù)據(jù)值的增量。

⑧ROWGUIDCOL:定義該列是一個行全局唯一的標識列。在一張表中只有一個唯一標識符列可以被定義為ROWGUIDCOL。column_constraint:定義與列相關聯(lián)的約束。

⑨t(yī)able_constraint:定義對表的約束。

⑩ON{filegroup|DEFAULT}:定義將表存儲在某一個指定的文件組中,DEFAULT表示將表存儲在默認文件組中。[TEXTIMAGE_ON{filegroup|DEFAULT}]:假使表中有ntext、text或image類型的數(shù)據(jù),則將這些數(shù)據(jù)存儲在某一個指定的文件組里。

3.修改表結構的SQL語句是ALTERTABLE,修改的內(nèi)容包括:修改、增加、刪除列或約束、使約束和觸發(fā)器無效等。簡單語法格式:

altertable[add[]]//增加新列[drop

溫馨提示

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

評論

0/150

提交評論