關於學校數據庫MySQL實驗的一種解答

教材: 王珊薩師煊《數據庫系統概論》

platform:MySQL2012


實驗一:熟悉MySQL的開發環境                          PS:  這個就略過了

實驗二  SQL 的數據定義(表和索引)

 

一、實驗目的:

1. 會使用界面工具和命令兩種方法定義、修改、撤消基本表。

2. 會使用界面工具和命令兩種方法定義、撤消基本表的索引。

3. 進一步學會使用界面工具入、修改、刪除數據。

 

二、實驗準備任務

1.複習SQL語言中數據定義的相關命令。

2.根據實驗樣例數據庫的要求預先寫好相應的命令(完整性約束可不定義,留待實驗三完成)

1使用命令完成錄中實驗樣例數據庫四張表的數據定義學生表Student、課程表Course、班級表Class、成績表 Cj。四張表結構詳見附一。

2使用界面工具,在實驗樣例數據庫中的Student表中添加一個新字段:Birthday,其數據類型爲日期型;使用命令爲Student表再添加另一個新字段:Class,其數據類型爲字符型,寬度爲5檢查結果。

3使用界面工具和命令,將實驗樣例數據庫中的Student表中Class字段寬度改爲10。最後,在該表中刪除ClassBirthday兩個字段,並檢查結果。

4 先將實驗樣例數據庫另外在磁盤上做一個備份,然後使用界面工具,將撤消基本表Student的定義,使用命令撤消基本表Class的定義。

5)使用數據庫附加功能,重新使用先前備份實驗樣例數據庫,然後使用界面工具進行插入、修改、刪除數據的操作,將實驗樣例數據庫中的四張表分別填滿數據,爲後面實驗做準備,數據詳見附二。

6使用界面工具,爲實驗樣例數據庫中的Student表按學號升序建唯一索引。

7使用命令,爲Course表按課程號升序建唯一索引,CJ表按學號升序和課程號降序建唯一索引,爲CJ表按成績降序建聚簇索引

8使用命令,刪除建立的相關索引

code:

/*幾點說明
1.書本上代碼大部分是大寫,但SQL不區分大小寫所以爲了代碼簡潔明瞭這一系列都採用了小寫
2.實際代碼在實驗中沒保存下來,而我又沒學到如何調用日誌文件ORZ所以以下代碼沒實際運行,可以作爲參考*/

create table student
(
Sno char(7) primary key,
Sname char(10) not null,
Ssex char(2),
    constaint c1 check(Ssex in '男' or '女'),
Sage Smallint,
    constaint c2 check(Sage between 14 and 65),
clno char(5) not null,    

)
create table Course
(
Cno char(1) primary key,
Cname char(20) unique,
Credit Smallint
    constraint c3 check(Credit between 1 and 6),
)
create table Class
(
clno char(5) primary key,
Speciality char(20) not null,
Number Smallint
    constraint c4 check(Number between 1 and 60),
Monitor char(7),

)
create table cj
(
Sno char(7),
Cno char(1),
Grade decimal(4,1)
    constaint c5 check(Grade between 1 and 100),
primary key(Sno, Cno),
foreign key(Sno) references Student(Sno)
    on delete cascade
    on update cascade,
foreign key(Cno) references Course(Cno)
    on delete cascade
    on update cascade,

)
/*問題二*/
alter table Student add Class char(5)
/*問題七*/
create unique index Course on Course(Cno),
create unqiue index SCno on cj(Sno asc, Cno desc),

以上code實際解決了實驗二和實驗三的完整性約束,實驗三具體操作步驟不列出僅將題目給出

實驗SQL 的完整性約束定義

一、實驗目的:

1. 掌握關係數據庫的三類完整性約束定義,並領會其作用

2. 會使用界面工具定義實體完整性、參照完整性和用戶自定義完整性

3. 掌握使用命令定義實體完整性、參照完整性和用戶自定義完整性

 

二、實驗準備及任務

1.複習教材第五章完整性約束定義的相關內容

2.根據下面要求完成實驗樣例數據庫中提到的完整性約束定義

1使用create table命令定義學生表Student,同時定義該表的主碼(實體完整性)、性別取值爲男或女、年齡取值爲大於14,小於65(用戶自定義完整性);使用create table命令定義課程表Course,同時定義該表的相關完整性約束,約束詳見附一。

2使用界面工具,在實驗樣例數據庫中的定義班級表Class和該表的實體完整性、參照完整性和用戶自定義完整性,約束詳見附一。

3使用alter table命令定義學生表Studentclno爲外碼,同時指定其違約處理方式爲刪除級聯和更新級聯,約束詳見附一。

4將班級表ClassCreditcheck約束改爲其在1、2、3、4之一取值

5使用命令,完成成績表 Cj的定義和相關完整性約束,詳見附一。

6使用界面工具,按附錄二進行插入、修改、刪除數據,驗證完整性

約束的效果至少各有一種情況分別違背了三類完整性約束(如在 Cj中把‘2001102’同學的‘6’號課程的成績由83分改爲150分),並記錄。

 

還有幾個實驗做完就等待期末考試了,最後還有個數據庫開發實訓爲期兩週,不知道幹什麼的到時候一起上傳上來

紀念第一篇技術文檔fighting






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章