您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 数据库实验二:建立表和数据完整性
实验二:建立表和数据完整性一、实验目的与要求:1.实验目的(1)掌握建立表、修改表结构等基本操作。(2)掌握数据完整性的功能,加深对数据完整性的理解。2.实验要求(1)使用创建数据库技术建立名称为“学生管理”数据库。(2)建立“院系”、“学生”、“教师”、“课程”、“选课”等5张表,具体要求见实验指导书。(3)修改表的结构,具体要求如下:①为学生表增加一个“平均成绩”字段,类型为短整型,默认是空值。②为课程表的“学时”字段重新定义约束:取值为8的倍数,不允许为空值。③将院系表的“名称”字段的类型修改为varchar(30)。④为教师表增加一个“工资”字段,类型为5位整数、2位小数的数值型。二、实验内容1、实验原理基本表是SQLServer的数据库对象,包含了表中的列,计算列和表级约束。对它的操作有创建、修改和删除。(1)建立基本表结构的命令:CREATETABLE[schema_name].table_name({column_definition|computed_column_definition}[table_constraint][,…n])其中列定义(column_definition)的基本格式是:column_namedata_type[NULL|NOTNULL][[CONSTRAINTconstraint_name]PRIMARYKEY|UNIQUE|[FOREIGNKEY]REFERENCES[schema_name.]referenced_table_name[(ref_column)][ONDELETE{NOACTION|CASCADE|SETNULL|SETDEFAULT}][ONUPDATE{NOACTION|CASCADE|SETNULL|SETDEFAULT}]|CHECK(logical_expression)][DEFAULTconstraint_expression]如果需要还可以定义计算列(computed_column_definition)和表级约束(table_constraint)●空值约束NOTNULL和NULL●主关键字约束PRIMARYKEY●惟一性约束UNIQUE●参照完整性约束FOREGINKEY●默认值定义DEFAULT●取值范围约束CHECK(2)修改表结构的命令:ALTERTABLEschema_name.table_name{ALTERCOLUMNcolumn_namedata_type[NULL|NOTNULL]|ADDcolumn_definition|computed_column_definition|table_constraint|DROP[CONSTRAINT]constraint_nameCOLUMNcolumn_name}(3)删除数据表的命令格式:DROPTABLEtable-name2、实验步骤与结果(1)调出SQLServer2005软件的用户界面,进入SQLSERVERMANAGEMENTSTUDIO。(2)输入自己编好的程序。(3)检查已输入的程序正确与否。(4)运行程序,并分析运行结果是否合理和正确。在运行时要注意当输入不同的数据时所得到的结果是否正确。(5)输出程序清单和运行结果。程序源代码:createtable院系(编号smallintprimarykey,名称char(20)notnull,负责人char(10),办公地点char(20))createtable学生(学号char(8)primarykey,院系smallintforeignkeyreferences院系(编号),姓名char(10)notnull,性别char(2)check(性别in('男','女')),生源char(6),状态char(4))createtable教师(教师编号char(8)primarykey,院系smallintforeignkeyreferences院系(编号),姓名char(10)notnull,性别char(2)check(性别in('男','女')),职称char(6),check(职称in('教授','副教授','讲师','助教')),专业char(4))createtable课程(课程编号char(8)primarykey,课程名称char(20)notnull,责任教师char(8)foreignkeyreferences教师(教师编号),学时smallintnotnull,课程性质char(10),check(课程性质in('公共基础','专业基础','专业选修','任意选修')))createtable选课(学号char(8)foreignkeyreferences学生(学号),课程编号char(8)foreignkeyreferences课程(课程编号),成绩smallintcheck(成绩=0and成绩=100)defaultnull)altertable学生add平均成绩smallintdefaultnullaltertable课程addconstraintLLLcheck(学时%8=0)altertable院系altercolumn名称varchar(30)altertable教师add工资numeric(5,2)运行结果显示运行成功三、实验分析与小结:(实验过程中的问题分析、产生的原因以及解决方法;实验结果分析;有待优化思路)1、实验过程中的问题分析、产生的原因以及解决方法。问题:在做第五个实验选课时,题目要求有两个主关键字和外部关键字,但一个表中只能有一个primarykey,有两个primarykey是显示运行错误。解决办法:用foreignkeyreferences命令来解决问题。即为:学号char(8)foreignkeyreferences学生(学号),课程编号char(8)foreignkeyreferences课程(课程编号)四、其它思考题:1.SQL所支持的关系数据库的三级模式结构是什么?基本表对应什么模式?答:SQL所支持的关系数据库的三级模式结构分别为外部模式、概念模式、存储模式。基本表对应的是概念模式。得分(百分制)
本文标题:数据库实验二:建立表和数据完整性
链接地址:https://www.777doc.com/doc-4455442 .html