数据库上机作业2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验2 SQL的数据定义功能
实验目的
通过在MS SQL SERVER 2000上练习创建、删除、修改基本表以及建立、删除索引,理解和学习使用SQL的数据定义功能。
知识点拨:
1.SQL的功能
2.定义功能中定义的对象;
3.数据定义功能的语法格式:
a)基本表的建立、修改与删除:
b)索引的建立与删除:
4.应该注意的问题
实验内容
1.了解SQL SERVER 2000查询分析器的基本框架及用法;
2.学会使用查询分析器创建、删除、修改基本表;
3.学会使用查询分析器建立和删除索引
实验步骤
1.选择自己上次实验创建的数据库:
注意:每次使用查询分析器之前都应先设置当前数据库,在查询分析器中设置当前数据库的两种方法:
①在工具栏的数据库复选框中选中欲设置为当前数据库的数据库名,如:JX;
②使用SQL语句:USE JX
2.基本表的创建、修改和删除,以下内容请使用查询分析器完成;:
a)删除上次创建的SC表,并在查询分析器中使用SQL语句重新创建,主码为
(Sno,Cno,Tno);
1.DROP TABLE SC
2.CREATE TABLE SC
(Sno CHAR(5),Cno CHAR(3),Tno INT,Grade SMALLINT,
PRIMARY KEY (Sno,Cno,Tno) );
b)修改教师信息表Teacher中教工号字段类型为CHAR(4);
ALTER TABLE Teacher ALTER COLUMN Tno CHAR(4);
c)删除学生信息表中的parent字段;
LTER TABLE Student DROP COLUMN parent
d)在学生表中增加总学分(Total)字段,类型为Smallint;
ALTER TABLE Student ADD Total Smallint
3.索引的创建和删除:请使用企业管理器和查询分析器练习。
a)检查以上几张表是否已经建立了索引?如果有,是什么索引?
没有
b)在Course表的Cno字段创建聚集索引Index_Cno,并检查数据的排列顺序;CREATE CLUSTERED Index_Cno ON Course (Cno) 降序
c)在Student表的Sname列上创建降序唯一索引Index_Sname,并检查数据的排列
顺序;
CREATE UNIQUE Index_Sname ON Student (Sname)
d)在Teacher表的“姓名”和“系名”字段上创建一个组合索引Index_TX
CREATE UNIQUE Index_TX ON Teacher ( Tname ,Tdept )
e)在SC表的Grade字段上创建一个降序索引Index_Grade;
CREATE UNIQUE INDEX_Grade ON SC (Gradet )
f)删除创建的索引Index_TX。
DROP INDEX teacher.index_TX
4.使用企业管理器定义JX数据库表的约束:
a)对前三张表建立主键约束。
1)..ALTER TABLE Student
( ......
PRIMARY KEY(Sno)
)
2).ALTER TABLE Teacher
( ....
PRIMARY KEY(Tno)
)
3).ALTER TABLE Course
( ...
PRIMARY KEY(Cno)
)
b)在SC表的Sno字段创建外键约束,引用Student表的Sno字段;在SC表的Cno
字段创建外键约束,引用Course表的Cno字段;在SC表的Tno字段创建外键约束,引用Teacher表的教工号字段。
ALTER TABLE ADD FOREIGN KEY (Sno) REFERNCES Student (Sno)
ALTER TABLE ADD FOREIGN KEY (Cno) REFERNCES Course (Cno)
ALTER TABLE ADD FOREIGN KEY (Tno) REFERNCES Teacher (Tno)
c)在Teacher表上创建Unique约束Unique_TNP,不允许出现姓名和联系电话完
全一样的教师记录。
ALTER TABLE Teacher ADD CONSTRAINT UNIQUE_TNP unique (Tname,Tphone) d)在Student表中创建Default约束Df_Sbirth,当用户插入学生记录的时候,如果
没有提供Sbirth字段的值,那么获取系统当前的日期作为默认值(使用系统函数getdate())。
e)在SC表中创建Check约束Ck_Grade,限制用户在插入或更改成绩时,不能
超过0-100的范围。
ALTER TABLE SC ADD CONSTRAINT CK_Grade CHECK (Grade<100 or Grade>0)