第一篇:數據庫上機實驗8實驗報告
上機實驗八——完整性約束的實現
一、實習目的:
掌握SQL中實現數據完整性的方法,加深理解關系數據模型的三類完整性約束。
二、實習準備:
1.復習“完整性約束SQL定義”
2.完成習題四第10題中的各項操作的SQL語句。
3.了解SQL Server 中實體完整性、參照完整性和用戶自定義完整性的實現手段
三、實習內容:
1.驗證習題四第10題四個表結構的SQL語句。
表一:Sstudent CREATE TABLE Sstudent(Sno char(7)NOT NULL PRIMARY KEY, Sname VarChar(20)NOT NULL, Ssex Char(2)NOT NULL DEFAULT('男')check(Ssex IN('男','女')), Sage smallint check(Sage >14 AND Sage<65), Clno Char(5)NOT NULL REFERENCES Cclass(Clno)ON UPDATE CASCADE);
表二:Ccourse CREATE TABLE Ccourse(Cno Char(1)NOT NULL PRIMARY KEY, Cname VarChar(20)NOT NULL, Credit Smallint CHECK(Credit IN(1,2,3,4,5,6)));
表三:Cclass CREATE TABLE Cclass(Clno Char(5)NOT NULL PRIMARY KEY, Speciality VarChar(20)NOT NULL, Inyear Char(4)NOT NULL, Number Integer CHECK(Number>1 AND Number<100), Mointor Char(7)REFERENCES Student(Sno));
表四:Ggrade CREATE TABLE Ggrade(Sno Char(7)NOT NULL REFERENCES Student(Sno)ON DELETE CASCADE ON UPDATE CASCADE, Cno Char(1)NOT NULL REFERENCES Course(Cno)ON DELETE CASCADE ON UPDATE CASCADE, Gmark Numeric(4,1)CHECK(Gmark>0 AND Gmark<100), PRIMARY KEY(Sno,Cno));
2.SQL Server中提供了那些方法實現實體完整性、參照完整體和用戶自定義完整性
答:實體完整性:是通過主碼的定義(PRIMARY KEY)來實現的;
參照完整性:是利用外部碼(REFERENCES)的說明,以限制相關表中某些屬性的取值,當用戶違反規則時,提供三種:RESTRICT(限制策略),CASCADE(級聯策略),SET NULL(置空策略);
用戶自定義完整性:check約束,對元組的CHECK約束
第二篇:數據庫上機實驗報告
蘭州理工大學
學生上機報告
學院計算機與通信學院課程名稱數據庫原理
學生姓名侯予南學號05550204
專業班級基地班05級1班
上機日期2008年4月17日
指導教師李明
上機實驗報告
(一)實驗內容:
1、熟悉SQL Server 2000應用環境;
熟悉查詢分析器的使用方法;
2、運行課堂示例:建立表Teacher , Course ;
進行數據插入、查詢、更新、建立視圖、創建觸發器等操作;
3、完成作業(P108 第5題,P145第5題);
4、完成實驗報告。
實驗環境:
數據庫系統:SQL Server 2000
實驗過程:
在實驗中發現的問題:
小結:
教師評語:
成績:
第三篇:數據庫上機實驗報告
數據庫上機實驗報告
試驗內容
1、數據表的建立
基本表《簡單的》帶有主鍵
帶有外碼約束的(外碼來自其他表或者本表)
2、數據表的修改
添加刪除列
修改列屬性類型
添加刪除約束(約束名)
元組的添加,修改,刪除
刪除數據表
試驗過程
1、create
table
student
(sno
char(9)
primary
key,/*sno是主碼
列級完整性約束條件*/
sname
char(20)
unique,/*sname取唯一值*/
ssex
char(2),sage
smallint,/*類型為smallint*/
sdept
char(20)
/*所在系*/);
create
table
course
(cno
char(4)
primary
key,/*列級完整性約束條件,cno是主碼*/
cname
char(40),cpno
char(4),/*cpno的含義是先行課*/
ccredit
smallint,foreign
key
(cpno)
references
course(cno)
/*表級完整性約束條件,cpno是外碼,被參照表是course,被參照列是cno*/);
create
table
sc
(sno
char(9),cno
char(4),grade
smallint,primary
key
(sno,cno),/*主碼有兩個屬性構成,必須作為表級完整性進行定義*/
foreign
key
(sno)
references
student(sno),/*表級完整性約束條件,sno是外碼,被參照表是student*/
foreign
key
(cno)
references
course(cno),/*表級完整性約束條件,cno是外碼,被參照表示course*/);
例
1、create
table
s
(cno
varchar(3),/*變長的字符串,輸入2個字符就是兩個字符不會補空格*/
sname
varchar(20),status
int,city
varchar(20),constraint
pk_sno
primary
key(sno),/*約束條件的名字為pk_sno*/);
create
table
p
(pno
varchar(3),pname
varchar(20),color
varchar(3),weight
int,constraint
pk_pno
primary
key
(pno),/*約束條件的名字是pk_pno*/);
create
table
j
(jno
varchar(3),jname
varchar(20),city
varchar(20),constraint
pk_jno
primary
key(jno)
/*約束條件的名字為pk_jno*/);
例
2、create
table
spj
(sno
varchar(3),/*第一個表中的主碼*/
pno
varchar(3),jno
varchar(3),qty
int,/*數量*/
constraint
pk_spj
primary
key(sno,pno,jno),/*主碼由3個屬性組成*/
foreign
key(sno)
references
s(sno),/*表級完整性約束條件,sno是外碼,被參照表是s*/
foreign
key(pno)
references
p(pno),/*表級完整性約束條件,pno是外碼,被參照表是p*/
foreign
key(jno)
references
j(jno),
第四篇:數據庫上機實驗報告
數據庫上機實驗報告
試驗內容
1、數據表的建立
基本表《簡單的》帶有主鍵
帶有外碼約束的(外碼來自其他表或者本表)
2、數據表的修改
添加刪除列
修改列屬性類型
添加刪除約束(約束名)
元組的添加,修改,刪除
刪除數據表
試驗過程
1、createtablestudent
(snochar(9)primarykey,/*sno是主碼列級完整性約束條件*/
snamechar(20)unique,/*sname取唯一值*/
ssexchar(2),sagesmallint,/*類型為smallint*/
sdeptchar(20)/*所在系*/);
createtablecourse
(cnochar(4)primarykey,/*列級完整性約束條件,cno是主碼*/
cnamechar(40),cpnochar(4),/*cpno的含義是先行課*/
ccreditsmallint,foreignkey(cpno)referencescourse(cno)
/*表級完整性約束條件,cpno是外碼,被參照表是course,被參照列是cno*/);
createtablesc
(snochar(9),cnochar(4),gradesmallint,primarykey(sno,cno),/*主碼有兩個屬性構成,必須作為表級完整性進行定義*/
foreignkey(sno)referencesstudent(sno),/*表級完整性約束條件,sno是外碼,被參照表是student*/
foreignkey(cno)referencescourse(cno),/*表級完整性約束條件,cno是外碼,被參照表示course*/);
例
1、createtables
(cnovarchar(3),/*變長的字符串,輸入2個字符就是兩個字符不會補空格*/
snamevarchar(20),statusint,cityvarchar(20),constraintpk_snoprimarykey(sno),/*約束條件的名字為pk_sno*/);
createtablep
(pnovarchar(3),pnamevarchar(20),colorvarchar(3),weightint,constraintpk_pnoprimarykey(pno),/*約束條件的名字是pk_pno*/);
createtablej
(jnovarchar(3),jnamevarchar(20),cityvarchar(20),constraintpk_jnoprimarykey(jno)/*約束條件的名字為pk_jno*/);
例
2、createtablespj
(snovarchar(3),/*第一個表中的主碼*/
pnovarchar(3),jnovarchar(3),qtyint,/*數量*/
constraintpk_spjprimarykey(sno,pno,jno),/*主碼由3個屬性組成*/
foreignkey(sno)referencess(sno),/*表級完整性約束條件,sno是外碼,被參照表是s*/
foreignkey(pno)referencesp(pno),/*表級完整性約束條件,pno是外碼,被參照表是p*/
foreignkey(jno)referencesj(jno),/*表級完整性約束條件,jno是外碼,被參照表是j*/);
2、數據表的更改
在s表中添加一個concat列
altertablesaddconcatvarchar(20)
在s表中刪除concat列
altertablesdropcolumnconcat
更改s表concat列的屬性把長度由20改為30
altertablesaltercolumnconcatvarchar(30)
聯系方式名字為concat修改屬性為唯一的屬性名為con_concat
altertablesaddconstraintcon_concatunique(concat)
刪除約束關系con_concat
altertablesdropconstraintcon_concat
/*插入一個元組*/
insertintosvalus(‘s1’,’精益’,20,’天津’)/*20不能寫成’20’*/
試驗中的問題的排除與總結:
1、在創建spj時
有三個實體所以從3個實體中取主碼,還有一個數量屬性也要寫上
主碼由那3個主碼確定
2、更改一個數據庫中數據表時一定要先使該數據庫處于正在使用狀態
3、constraint
是可選關鍵字,表示primarykey、notnull、unique、foreignkey或check約束定義的開始。約束是特殊屬性,用于強制數據完整性并可以為表及其列創建索引。
4、--go可以不加但是要注意順序注:go--注釋提示錯誤
5、注意添加一個空元素用null
附sql備份
--創建一個數據庫student
createdatabasestudent
go
--在數據庫student中創建表studentcoursesc注意順序
usestudent
--
createtablestudent
(snochar(9)primarykey,/*sno是主碼列級完整性約束條件*/
snamechar(10)unique,/*sname取唯一值*/
ssexchar(2),sagesmallint,/*類型為smallint*/
sdeptchar(20)/*所在系*/);/*;要加*/
-----------
第五篇:地質數據庫上機實驗報告
《地質數據庫設計與應用》上機實習報告
班級:姓名:學號:成績:
五、實習中存在的主要問題
一、實習名稱
二、實習目的三、實習內容
四、實習主要操作步驟(或所用主要命令、函數操作方法)