1实验2:创建数据库表与索引----表的创建与管理1.实验目的:掌握表和索引的建立方法及表结构的修改方法,了解表关系建立的条件和作用,并实践数据库管理系统提供的数据完整性功能,加深对数据完整性的理解。要求建立表、修改表结构、建立索引、进行数据完整性描述。2.实验要求:⑴在已经建立的数据库中创建表运用MicrosoftSQLServer2000企业管理器和Transact-SQL语句两种方法建立“课程信息表”、“教学任务表”、“教师档案表”、“学生档案表”、“学生选课表”、“学生成绩表”。⑵了解表与表之间的逻辑依赖关系学会在MicrosoftSQLServer2000企业管理器中,创建表之间的关联关系,通过外键的拖曳建立表的基本依赖关系,从而直白的表达整个数据库的表间联系,但是,注意:过程中,主键与外键对应的源数据表。⑶修改表结构将学生档案表“姓名”字段的数据类型修改为varchar(8)。为学生成绩表增减一个新的字段——“总成绩”,类型为real,默认是空值。学生成绩表“平时成绩”字段的取值为小于100的正数。⑷建立索引2运用Transact—SQL语句建立以下索引:◆在学生档案表的“姓名”字段上建立普通升序索引;◆在学生档案表的“学号”字段上建立唯一索引;◆在学生档案表的“学号”字段上建立聚集索引;◆在学生档案表的“学号”(升序)、“姓名”(升序)和“籍贯”(升序)三个字段上建立一个普通索引;◆运用SQL企业管理器在学生档案表中的“籍贯”字段上创建普通升序索引。3.实验环境与实验器材:计算机,网络环境,投影设备。实验相关软件:Windowxp、SQLServer2000。4.实验内容与步骤使用企业管理器和Transact-SQL语句创建“课程信息表”、“教学任务表”、“教师档案表”、“学生档案表”、“学生选课表”、“学生成绩表”6张表,6张表的具体设计内容:“课程信息表”包括课程名称、课程类别、学分和学时等;“教师档案表”和“学生档案表”记录了教师和学生的基本情况;“教学任务表”包括课程ID、任课教师ID、学期和年度;“学生选课表”给出了学生与课程之间的关系;“学生成绩表”则给出了学生成绩的计算方法。4.1在“教学管理”数据库中使用Transact-SQL命令创建表使用Transact-SQL命令创建“学生档案表”,包含字段“学号”、“姓名”、“性别”、“出生日期”、“籍贯”、“专业”、“班级”。第1步:从“开始”菜单中打开“查询分析器”,连接进入“查询”窗口。3第2步:在“查询”窗口中,创建指定数据文件和事务日志文件的“教学管理”数据库,要注意这两个文件路径所需的文件夹应先创建好,不然会有错误提示。⑴在“教学管理”数据库中使用Transact-SQL命令创建表①创建“学生档案表”第1步:在“查询分析器”窗口的上部,选择“教学管理”数据库。并在查询框中输入建立“学生档案表”的命令:createtable学生档案(学号char(8)primarykeyCheck(学号like('[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')),姓名varchar(8)notnull,性别char(8),出生日期datetimecheck(出生日期='1970'),籍贯char(8),专业char(8),班级char(8))第2步:执行该命令,出现如下窗口:4第3步:刷新“SQL查询分析器”界面左边的“对象浏览器”中的“教学管理”数据库,这时在“教学管理”数据库的“用户表”中可以看到新建的“学生档案表”②创建“教师档案表”第1步:输入建立“教师档案表”的命令,如下:createtable教师档案表(任课教师IDchar(8)primarykeycheck(任课教师IDlike('[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')),姓名varchar(8)notnull,性别char(8),check(性别='M'or性别='F'),职称varchar(8),单位varchar(20))第2步:执行,结果如下:第3步:刷新,查看表:5③创建“教学任务表”第1步:输入建立“教学任务表”的命令,执行6第2步:刷新,查看表④创建“课程信息表”第1步:输入建立“课程信息表”的命令,执行:7第2步:刷新,查看表⑤创建“学生选课表”第1步:输入建立“学生选课表”的命令,执行8第2步:刷新,查看表⑥创建“学生成绩表”第1步:输入建立“学生成绩表”的命令,执行9第2步:刷新,查看表3.2在“教学管理”数据库中使用企业管理器创建表使用SQL企业管理器创建“教师档案表”,如图示:103.3修改表的结构3.3.1修改数据类型1)将“学生档案表”中的“姓名”字段的数据类型改为varchar(8),则命令如下:altertable学生档案altercolumn姓名varchar(8)2)将“课程信息表”中的“课程名称”字段的数据类型改为varchar(50),则命令如下:altertable课程信息11altercolumn课程名称varchar(50)第1步:打开“SQL查询分析器”并连接,输入对表结构修改的命令,如图:第2步:执行,查看结果:3.3.2增加一个新字段1)为“学生成绩表”增加一个新字段“总成绩”,类型为real,默认是空值,命令如下:altertable学生成绩add总成绩realdefaultnull2)为“教学任务表”增加一个新字段“教师姓名”,类型为12varchar(8),默认是空值命令如下:altertable教学任务add教师姓名varchar(8)defaultnull第1步:打开“SQL查询分析器”并连接,输入对表结构修改的命令,如图:第2步:执行,查看结果:3.3.3增加约束条件1)为“学生成绩表”增加一个约束,“平时成绩”字段的取值为大于等于0小于等于100的正数命令如下:altertable学生成绩addconstraintshuliang1check(平时成绩=0and平时成绩=100)2)为“教学任务表”中的“年度”添加约束条件,使得年度大于2000年,命令如下:13altertable教学任务addconstraintshuliang2check(年度2000)第1步:打开“SQL查询分析器”并连接,输入对表结构修改的命令,如图:第2步:执行,查看结果:3.4使用Transact-SQL命令创建索引3.4.1在“学生档案表”的“姓名”字段上建立普通升序索引;3.4.2在“学生档案表”的“学号”字段上建立唯一索引;3.4.3在“学生档案表”的“学号”(升序)、“姓名”(升序)、和“籍贯”(降序)三个字段上建立普通索引;3.4.4在“学生成绩表”的“学号”字段上建立聚集索引;3.4.5在“教学任务表”的“任课教师ID”字段上创建名为“任课教师ID索引”的唯一索引;在“教师档案表”中的“教师ID”(降14序)、“姓名”(升序)、“职称”(升序)三个字段上建立一个普通索引。第1步:打开“SQL查询分析器”并连接,输入创建索引的命令,代码如下:createindex姓名索引on学生档案(姓名)createuniqueindex学号索引on学生档案(学号)createindex多列索引on学生档案(学号,姓名,籍贯desc)createclusteredindex学号索引on学生成绩(学号)createuniqueindex任课教师ID索引on教学任务(任课教师ID)createindex多列索引on教师档案(学号教师IDdesc,姓名,职称)第2步:执行,查看结果:第3步:索引创建成功,在对象浏览器中的“教学管理”数据库下,可以看到刚创建的“姓名索引”“学号索引”“多列索引”,如图:3.5使用SQL企业管理器创建索引3.5.1使用SQL企业管理器在“学生档案表”中的“籍贯”字段上创建普通升序索引。第1步:打开“企业管理器”,在“控制台根目录”中,,点开“教学管理”数据库中的表,如图:15第2步:在“学生档案”上单击右键,选择“所有任务”→“管理索引”,弹出如下窗口:16第3步:单击“新建”,出现“新建索引”对话框,输入索引名“籍贯索引”,选择索引列“籍贯”,如图:17第4步:单击“确定”,返回“管理索引”,如图:183.5.2使用SQL企业管理器在“课程信息表”上创建“课程ID”唯一索引。步骤如下:打开“企业管理器”,在“控制台根目录”中,,点开“教学管理”数据库中的表,使用SQL企业管理器在“课程信息表”上创建“课程ID”唯一索引。步骤如下:打开“企业管理器”,在“控制台根目录”中,,点开“教学管理”数据库中的表,在“课程信息”上单击右键,选择“所有任务”→“管理索引”,弹出如下窗口:19单击“新建”,出现“新建索引”对话框,输入索引名“课程ID索引”,选择索引列“课程ID”,如图:20单击“确定”,返回“管理索引”,如图:21即可。3.6创建数据库表之间的关系图第1步:在企业管理器的“控制台根目录”中,单击左端“+”号层层展开,直到在屏幕上看到数据库下的各个数据库,点开“教学管理”数据库,看到该数据库下的子项。如图:22第2步:在“关系图”子项上,单击右键,选择“新建数据库关系图”,如图:第3步:单击“下一步”,之后添加6张表到右边的文本框中:23第4步:单击“下一步”,单击“完成”5.思考与总结24这次实验主要使用Transact-SQL语句在查询分析器中实现表和索引的创建,还有表的修改,通过实验对相应的SQL语句有了更深的了解和学习。在命令语句的输入中,对每一个语句都应该仔细输入,做到没有遗漏;在遇到错误提示时,应学会通过尝试修改语句来寻找错误之处,思考错误的原因,结合课本所学知识进行对比,这样才能对SQL语句有更深的认识。