實驗三 基本表的定義、刪除與修改
實驗目的:熟練掌握基本表的定義、刪除與修改,索引的建立與刪除的方法,爲後繼學習作準備。
實驗要求:
-
- 瞭解並掌握SQL查詢分析器及企業管理器的使用;
- 掌握基本表的定義、刪除與修改。
- 掌握建立索引的二種方法,即在基本表中建立和用命令方式建立。;
- 掌握刪除索引的方法。
實驗設備:裝有SQL SERVER 2005的電腦
實驗時數:2課時
類 別:驗證
實驗步驟:
- 啓動Microsoft SQL Server 2005;
- 進入Microsoft SQL Server Management Studio;
- 選擇需要操作的數據庫(默認爲“master”庫,“master”爲系統數據庫),以後的實驗操作時,一定要在自己所建的庫上進行。右鍵單擊要操作的數據庫,選擇“新建查詢”。
二、修改基本表
例3. 4 向基本表Students中增加“入學時間”屬性列,其屬性名爲Sentrancedate,數據類型爲DATETIME型。
ALTER TABLE Students ADD Sentrancedate DATETIME
例3. 5 在管理器管理器界面下,鼠標右鍵單擊“Students”表,選擇“修改表”將Sage(年齡)的數據類型改爲SMALLINT型。
alter table Students alter column Sage SMALLINT
例3. 6 刪除Sname(姓名)必須取唯一值的約束。
ALTER TABLE Students DROP CONSTRAINT un_Sname;
注意:SQL Server 2005 增加了刪除屬性的命令。比如,刪除屬性列Sentrancedate的命令爲:
ALTER TABLE Students DROP COLUMN Sentrancedate;
說明:
⑴ 爲了保證後面例子能夠順利運行,請大家一定將屬性列Sentrancedate從Students表中刪除。
⑵ 爲了調試SQL語句方便,這裏沒有在表Reports中增加參照完整性約束,甚至沒有定義主鍵。等本章學完後,第7章的實驗系統就是把這些約束全部加上了。
三、刪除基本表
例3. 7 刪除Students表。
DROP TABLE Students;
從管理器界面上刪除表Courses:鼠標右鍵單擊“Courses”,在出現的菜單上選擇“刪除”。
說明:此2表刪除後,請立即用前面的例子將其建立起來,以便後面的例子使用。
四、向表中添加元組
例3. 8 將一個學生元組(S01,王建平,男,21,計算機)添加到基本表Students中。
INSERT
INTO Students
VALUES ('S01','王建平','男',21,'自動化');
用insert語句將自己的信息插入學生表
練習:請用以下方式之一完成向添加元組的操作:
- 請讀者用insert命令將其餘5個學生的元組也添加到基本表Students中。
- 鼠標右鍵單擊“Students”,選擇“打開表”,將其餘的5個學生的元組添加。
請寫出其中的一條插入命令:
insert into Students values('S06','長江','男',20,'數學');
示例:向Courses表插入元組(‘C01’,’英語’,’’,4)的命令爲:
INSERT
INTO Courses
VALUES ('C01','英語','',4);
練習:向基本表Courses添加基本信息(二選一)
- 請讀者用這個命令將其餘6門課程的信息插入Courses表中。
- 鼠標右鍵單擊“Courses”,選擇“打開表”,將其餘6門課程的信息插入。
請寫出其中的一條插入命令:
INSERT INTO Courses VALUES ('C02','數據結構','',2);
例3. 9 將學習成績的元組(‘S01’, ’C01’)添加到基本表Reports中。
INSERT
INTO Reports(Sno, Cno)
VALUES (‘S01’,’C01’);
練習:向基本表Reports添加基本信息(二選一)
- 請讀者用這個命令將其餘7個選課元組也添加到基本表Reports中。
- 鼠標右鍵單擊“Reports”,選擇“打開表”,將其餘7個選課元組添加。
請寫出其中的一條插入命令:
INSERT INTO Reports(Sno,Cno) VALUES ('S04','C03');
五、建立索引
例3. 10 爲學生選課數據庫中的Students,Courses,Reports三個表建立索引。
其中Students表按Sno(學號)升序建唯一索引,Courses表按Cno(課程號)升序建唯一索引,Reports表按Sno(學號)升序和Cno(課程號)號降序建唯一索引。其語句爲:
CREATE UNIQUE INDEX Stu_Sno ON Students(Sno);
練習:請爲Courses表按Cno(課程號)升序建唯一索引;
CREATE UNIQUE INDEX Cou_Cno ON Courses(Cno);
CREATE UNIQUE INDEX Rep_Scno ON Reports(Sno ASC, Cno DESC);
例3. 11 在基本表Students的Sname(姓名)和Sno(學號)列上建立一個聚簇索引。
Students中的物理記錄將按照Sname值和Sno值的升序存放。其語句爲:
CREATE CLUSTERED INDEX Stu_Sname_Sno ON Students(Sname, Sno);
六、刪除索引
例3. 12 刪除基本表Reports上的Rep_SCno索引。
DROP INDEX Reports.Rep_Scno;