數據庫上機實驗報告
- 實驗報告
- 關注:1.86W次
試驗內容
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)/*所在系*/
);/*;要加*/
-----------
- 文章版權屬於文章作者所有,轉載請註明 https://wjfww.com/baogao/shiyan/jz4e4.html