实验三 基本表的定义、删除与修改
实验目的:熟练掌握基本表的定义、删除与修改,索引的建立与删除的方法,为后继学习作准备。
实验要求:
实验设备:装有SQL SERVER 2005的电脑
实验时数:2课时
类 别:验证
实验步骤:
例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 into Students values('S06','长江','男',20,'数学');
示例:向Courses表插入元组(‘C01’,’英语’,’’,4)的命令为:
INSERT
INTO Courses
VALUES ('C01','英语','',4);
练习:向基本表Courses添加基本信息(二选一)
请写出其中的一条插入命令:
INSERT INTO Courses VALUES ('C02','数据结构','',2);
例3. 9 将学习成绩的元组(‘S01’, ’C01’)添加到基本表Reports中。
INSERT
INTO Reports(Sno, Cno)
VALUES (‘S01’,’C01’);
练习:向基本表Reports添加基本信息(二选一)
请写出其中的一条插入命令:
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;