數據庫上機實驗報告

數據庫上機實驗報告

數據庫上機實驗報告

試驗內容

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)/*所在系*/

);/*;要加*/

-----------