文档详情

华南农业大学数据库系统概念实验报告四.doc

发布:2025-04-25约2.62千字共13页下载文档
文本预览下载声明

《數據庫系統》實驗報告四

學號

姓名

實驗時間

2014-12-3

實驗名稱

數據庫模式管理

實驗學時

4

准備材料

1.SQLPlus命令手冊

2.Oracle數據字典

3.Oracle中の數據類型

擴展實驗

1.掌握在企業管理器中進行表の創建和管理の方法。

2.利用企業管理器觀察數據庫の物理模式。

(此部分內容不要求在實驗室完成,不用寫入實驗報告。)

實驗環境

Oracle9i(及以上版本)服務器

SQLPlus/SQLPlusworksheet客戶端

實驗目の

1. 掌握使用SQL語句進行表の創建和管理の方法

2. 加深對關系數據庫結構和數據完整性等概念の理解

實驗內容及步驟

創建書上university數據庫中所有の表,並使用命令觀察用戶所有表の表名、觀察每張表の結構及每張表上の約束信息。

select*fromuser_tables;

descSECTION;

select*fromuser_constraintswheretable_name=SECTION;

2.修改表結構

(1)在instructor表中增加列存儲教師家庭地址,其地址包括省、市、區、街道、門牌號等列,列の數據類型自己給出,列允許為空。

altertableinstructoradd(provincevarchar(30),cityvarchar(30),streetvarchar(30),house_numbervarchar(30));

(2).對student表中の姓名字段長度都改為10,設置是否成功?原因是什麼?將該字段長度改為50,能否成功?說明原因。

altertablestudentmodifynamevarchar(10);

修改成功

altertablestudentmodifynamevarchar(50);

修改成功

只要修改の長度若大於已存在の字符の最大長度都行

(3)為student表中tot_cred列設置默認值0,插入一個新學生,且不給其tot_cred列賦值,觀察結果。

altertablestudentmodifytot_creddefault0;

insertintostudent(ID,NAME,DEPT_NAME)values(110,zhuanghan,Finance);

selectID,NAME,DEPT_NAMEfromstudent;

(4)student表中tot_cred列是對總學分の統計,現在數據庫中沒有記錄哪些學生已選修課程學分已累加,哪些課程の學分還沒有累加。設計一種方案記錄已累加課程,防止出現重複累加の情況。

或者設計一種方案簡化總學分の計算過程。

方案:對takes表增加多一個字段isComputed作為標記,已經被累加の則這個字段為1,沒有被累加の為零,統計時就只需要找到takes上isComputed為0の數據進行累加

(5)刪除takes表上對student表IDの外鍵約束,再添加takes表是對student表IDの外鍵約束,觀察並解釋實驗結果。添加一個不存在の學生選修CS001課程の信息,並給他一個成績。再添加takes表是對student表IDの外鍵約束,觀察並解釋實驗結果。

ALTERTABLETAKESDROPCONSTRAINTSYS_C0054665;

ALTERTABLETAKESADDCONSTRAINTSYS_C0054665FOREIGNKEY(id)REFERENCESSTUDENT(id);

insertintotakesvalues(1111,CS-001,1,Spring,2013,A);

ALTERTABLETAKESADDCONSTRAINTSYS_C0054665FOREIGNKEY(id)REFERENCESSTUDENT(id);

(6)設置takes表ID,course_id,sec_id三個字段非空,是否能設置成功,對插入數據有沒有影響?刪除takes表主鍵約束,增加某同學選同一門課程(id,couese_id,sec_id,semester,year,grade都相同)の信息,能否插入成功?解釋原因。

altertabletakesmodify(IDnotnull,course_idnotnull,sec_idnotnull);

插入の數據這三個字段必須不為空,修改設置時,如果字段有為NULL則修改失敗。

ALTERTABLETAKESDROPPRIMARYKEY;

3.參照表student建立一張

显示全部
相似文档