《数据库实验二:建立表和数据完整性(共5页).doc》由会员分享,可在线阅读,更多相关《数据库实验二:建立表和数据完整性(共5页).doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上实验二:建立表和数据完整性一、实验目的与要求:1实验目的(1)掌握建立表、修改表结构等基本操作。(2)掌握数据完整性的功能,加深对数据完整性的理解。2实验要求(1)使用创建数据库技术建立名称为“学生管理”数据库。(2)建立“院系”、“学生”、“教师”、“课程”、“选课”等5张表,具体要求见实验指导书。(3)修改表的结构,具体要求如下:为学生表增加一个“平均成绩”字段,类型为短整型,默认是空值。为课程表的“学时”字段重新定义约束:取值为8的倍数,不允许为空值。将院系表的“名称”字段的类型修改为varchar(30)。为教师表增加一个“工资”字段,类型为5位整数、2位小数
2、的数值型。二、实验内容1、实验原理 基本表是SQL Server的数据库对象,包含了表中的列,计算列和表级约束。对它的操作有创建、修改和删除。(1)建立基本表结构的命令:CREATE TABLE schema_name.table_name(| ,n)其中列定义(column_definition)的基本格式是:column_nameNULL|NOT NULLCONSTRAINT constraint_name PRIMARY KEY|UNIQUE|FOREIGN KEYREFERENCES schema_name. referenced_table_name (ref_column)ON D
3、ELETE NO ACTION|CASCADE|SET NULL|SET DEFAULTON UPDATE NO ACTION|CASCADE|SET NULL|SET DEFAULT|CHECK (logical_expression)DEFAULT constraint_expression如果需要还可以定义计算列(computed_column_definition)和表级约束(table_ constraint) 空值约束NOT NULL和NULL 主关键字约束 PRIMARY KEY 惟一性约束 UNIQUE 参照完整性约束 FOREGIN KEY 默认值定义DEFAULT 取值范围
4、约束 CHECK(2)修改表结构的命令:ALTER TABLE schema_name.table_name ALTER COLUMN column_name NULL|NOT NULL| ADD | | | DROP CONSTRAINT constraint_name COLUMN column_name(3) 删除数据表的命令格式:DROP TABLE table-name2、实验步骤与结果 (1)调出SQL Server2005软件的用户界面,进入SQL SERVER MANAGEMENT STUDIO。(2)输入自己编好的程序。(3)检查已输入的程序正确与否。(4)运行程序,并分析运
5、行结果是否合理和正确。在运行时要注意当输入不同的数据时所得到的结果是否正确。(5)输出程序清单和运行结果。程序源代码:create table 院系( 编号 smallint primary key, 名称 char(20) not null, 负责人 char(10), 办公地点 char(20)create table 学生( 学号 char(8) primary key, 院系 smallint foreign key references 院系 (编号), 姓名 char(10) not null, 性别 char(2) check(性别 in(男,女), 生源 char(6), 状态
6、 char(4)create table 教师(教师编号 char(8) primary key, 院系 smallint foreign key references 院系 (编号), 姓名 char(10) not null, 性别 char(2) check(性别 in(男,女), 职称 char(6),check(职称 in(教授,副教授,讲师,助教), 专业 char(4)create table 课程(课程编号 char(8) primary key, 课程名称 char(20) not null, 责任教师 char(8) foreign key references 教师 (教
7、师编号), 学时 smallint not null , 课程性质 char(10),check(课程性质 in(公共基础,专业基础,专业选修,任意选修)create table 选课(学号 char(8) foreign key references 学生 (学号),课程编号 char(8) foreign key references 课程 (课程编号),成绩 smallint check(成绩=0 and 成绩=100) default null)alter table 学生add 平均成绩 smallint default nullalter table 课程add constrain
8、t LLL check(学时%8=0)alter table 院系alter column 名称 varchar(30)alter table 教师add 工资 numeric(5,2)运行结果显示运行成功三、实验分析与小结:(实验过程中的问题分析、产生的原因以及解决方法;实验结果分析; 有待优化思路)1、实验过程中的问题分析、产生的原因以及解决方法。问题:在做第五个实验选课时,题目要求有两个主关键字和外部关键字,但一个表中只能有一个primary key ,有两个primary key是显示运行错误。解决办法:用foreign key references命令来解决问题。即为:学号 char(8) foreign key references 学生 (学号),课程编号 char(8) foreign key references 课程 (课程编号)四、其它思考题:1 SQL所支持的关系数据库的三级模式结构是什么?基本表对应什么模式?答:SQL所支持的关系数据库的三级模式结构分别为外部模式、概念模式、存储模式。基本表对应的是概念模式。得分(百分制) 专心-专注-专业