sql server 2000)
左風朝孫濤王玉亭
計算機軟體教研室
2008.9
實驗1 建立基本表和資料完整性
實驗目的:
1. 掌握表(關係)和索引的建立方法;
2. 掌握表結構(關係模式)的修改方法;
3. 實踐dbms提供的資料完整性功能,加深對資料完整性的理解。
實驗內容:
1. 在studentdb資料庫中利用查詢分析器建立以下3個表,同時完成資料完整性的定義(實體完整性、參照完整性和使用者定義的域完整性):
student(學生資訊表):
course(課程表):
sc(學生選課表):
2. 在spjdb資料庫中利用查詢分析器建立以下4個表,同時完成資料完整性的定義(實體完整性、參照完整性和使用者定義的域完整性):
s(**商資訊表):
p(零件資訊表):
j(工程專案表):
spj(**情況表):
3.修改表結構,具體要求如下:
(1) 將表course的cname列的資料型別改為varchar(40).
(2) 為表student增加乙個新列: birthday(出生日期), 型別為datetime, 預設為空值.
(3) 將表sc中的grade列的取值範圍改為小於等於150的正數.
(4) 為student表的「***」字段建立乙個預設約束,預設值為』男』
(5)為「sdept」字段建立乙個檢查約束,使得所在系必須是』cs』、』ma』或』is』之一。
(6)為student表的「sname」字段增加乙個唯一性約束
(7)為sc表建立外來鍵,依賴於student表的fk_s_c約束。
(8)禁止啟用student表的「sdept」的check約束ck_student。
4.分別建立以下索引(如果不能成功建立,請分析原因)
(1) 在student表的sname列上建立普通降序索引.
(2) 在course表的cname列上建立唯一索引.
(3) 在sc表的sno列上建立聚集索引.
(4) 在spj表的sno(公升序), pno(公升序)和jno(降序)三列上建立乙個普通索引.
提示: 1. 建立表, 修改表, 建立索引需具有create table的許可權.
2. 建立基本表的sql語句是create table .
簡單語法格式:
create table 表名
( 列名資料型別 [default 預設值] [not null]
[,列名資料型別 [default 預設值] [not null]]
…… [,primary key(列名 [,列名] …)]
[,foreign key (列名 [,列名] …) references 表名 (列名 [,列名] …)]
[,check(條件)] );
一般語法格式:
create table [ database_name.[owner].] table_name
([,…n] )
[on ] [textimage_on ]
::=[default constant_expression]
| [identity [(seed, increment )]] [rowguidcol] […n]
引數說明:
①[database_name.[owner].] table_name:定義表的名字,表名的長度不得超過128個位元組,如果是臨時表,則表名不能超過116個字元。
②:列的定義。
③column_name:列的名字。列的命名必須遵守有關資料庫物件的命名規則。
④data_type:列的資料型別。
⑤default constant_expression:定義該列的預設值。
⑥identity:定義該列是乙個標識列。當乙個新的資料行插入表中的時候,sql server2000為標識列提供乙個唯一的、遞增的數值。
在一張**中,只能定義乙個標識列。在定義標識列時,必須同時定義起始值和增量。
⑦seed:定義標識列的起始值。所謂起始值就是插入表的第一行的資料的標識列的值。
increment:定義標識列的增量。所謂增量就是插入表的最近一行相對與前一行標識列的資料值的增量。
⑧rowguidcol:定義該列是乙個行全域性唯一的標識列。在一張表中只有乙個唯一識別符號列可以被定義為rowguidcol。
column_constraint:定義與列相關聯的約束。
⑨table_constraint:定義對錶的約束。
⑩on :定義將表儲存在某乙個指定的檔案組中,default表示將表儲存在預設檔案組中。[textimage_on ]:
如果表中有ntext、text或image型別的資料,則將這些資料儲存在某乙個指定的檔案組裡。
3. 修改表結構的sql語句是alter table, 修改的內容包括:修改、增加、刪除列或約束、使約束和觸發器無效等。
簡單語法格式:
alter table 《表名》
[add 《列名》 《資料型別》 [《列級完整性約束》增加新列
[drop 《完整性約束名》刪除約束
[drop column 《列名》刪除列
[alter column 《列名》 《資料型別》 [《列級完整性約束》修改列定義
其中列級完整性約束包括:
·空值約束 not null和null
·主關鍵字約束 primary key
·唯一性約束 unique
·參照完整性約束 foreign key
一般語法格式:
alter table table
rowguidcol }]
|add [,…n]
|add {}[,…n]
|drop [,…n]
| constraint trigger
引數說明:
①alter column:修改已經存在的列的屬性。
② rowguidcol:將指定列定義成rowguidcol,或者刪除該列的rowguidcol屬性。
③add [,…n]:增加新的列。
④add {}[,…n]:定義新的表約束。
⑤drop [,…n]:刪除約束或刪除列。
⑥ constraint :使所有約束或者指定的約束有效或失效。
例:使cnst_example表中的約束salary_cap失效。
alter table cnst_example nocheck constraint salary_cap
⑦ trigger :使所有或部分觸發器有效或無效。
《資料庫原理》實驗指導書
實驗一資料庫 表 索引的定義 一 實驗目的 通過本實驗加深對sql server 2000環境下資料定義語言的理解,能夠熟練地建立資料庫,並通過sql語句來建立和修改基本表 建立和取消索引。二 實驗內容 使用sql server 2000軟體,練習建立和修改資料庫 表 索引。三 實驗要求 建立乙個新...
資料庫原理實驗指導書 自編
資料庫系統原理 實驗指導書 鄧小鴻編著 江西理工大學應用科學學院 目錄實驗一使用access小型資料庫 1 一 實驗名稱 1 二 實驗目的 1 三 實驗學時 1 四 實驗內容與步驟 1 五 實驗結果與體會 4 實驗二熟悉sql server 2000環境 5 一 實驗名稱 5 二 實驗目的 5 三 ...
資料庫實驗指導書
徐曉偉淮陰師範學院電子與電氣工程系 二 九年二月 目錄實驗一資料庫系統設計 1 實驗二資料庫的定義實驗 2 實驗三資料庫的建立和維護實驗 15 實驗四資料庫的簡單查詢和連線查詢實驗 18 實驗五資料庫的巢狀查詢實驗 20 實驗六資料庫的組合查詢和統計查詢實驗 21 實驗七資料庫的檢視和圖表的定義及使...