数据库实验-建立表和数据完整性
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机科学与技术系
实验报告
专业名称软件工程
课程名称数据库实验
项目名称建立表和数据完整性
班级()班
学号
姓名
同组人员无
实验日期20 年月日
一、实验目的与要求:(简述本次实验要求达到的目的,涉及到的相关知识点,实验的具体要求。)
实验目的:
1.掌握表的基本操作。
1)建立表。
2)修改表的结构。
2.索引的建立方法。
3.掌握数据完整性的功能,加深对数据完整性的理解。
实验要求:
1)使用实验一的技术建立名称为“学生管理”数据库。
2)建立如图所示的订单管理数据库中的5张表,同时完成数据完整性的定义(实体完整性、参照完整性和用户定义的域完整性),各个表的具体描述如下:
院系
教师
3)修改表的结构,具体要求如下:
a.为学生表增加一个“平均成绩”字段,类型为短整型,默认是空值。
b.为课程表的“学时”字段重新定义约束:取值为8的倍数,不允许为空值。
c.将院系表的“名称”字段的类型修改为varchar(30)。
d.为教师表增加一个“工资”字段,类型为5位整数、2位小数的数值型。
4) 分别建立如下索引
a.在客户表的客户名称字段上建立普通升序索引。
b.在产品表的客户名称字段上建立惟一索引。
c.在订购单表的订单号字段上建立聚集索引。
d.在订单名细表的订单号(升序)、序号(升序)和数量(降序)三个字段上建立一个普通索引。
二、实验内容
(根据本次实验项目的具体任务和要求,完成相关内容,可包括:实验目的、算法原理、实验仪器、设备选型及连线图、算法描述或流程图、源代码、实验运行步骤、关键技术分析、测试数据与实验结果、其他)
1)、建立数据库
create database 学生管理
on
( name=order_dat,
filename='c:\mssql\data\orderdat.mdf',
size=10MB,
maxsize=50MB,
filegrowth=5MB)
log on
( name=order_log,
filename='d:\mssql\log\orderlog.ldf',
size=5MB,
maxsize=25MB,
filegrowth=5MB)
2)、建立表
create table 院系
(
编号int primary key,
名称char(20)not null,
负责人char(10),
办公地点char(20) , unique (名称))
(
学号char(8) primary key,
院系int foreign key references 院系(编号),
姓名char(10) not null,
性别char(2) check(性别like '男' or 性别like '女'), 生源char(6),
状态char(4))
(
教师编号char(8) primary key,
院系smallint foreign key references 院系(编号),
姓名char(10) not null,
性别char(2) check(性别like '男' or 性别like '女'),
职称char(6) check(职称like '教授' or 职称like '副教授' or 职称like '讲师' or 职称like '助教'),
专业char(10))
(
课程编号char(8) primary key,
课程名称char(20) not null,
责任教师char(8) foreign key references 教师(教师编号),
学时int not null,
课程性质char(10) check( 课程性质like '公共基础' or 课程性质like '专业基础'or 课程性质like '专业选修' or 课程性质like '任意选修'))
(
学号char(8) foreign key references 学生(学号),
课程编号char(8) foreign key references 课程(课程编号),
成绩int check(成绩>=0 and 成绩<=100)default null, primary key(学号, 课程编号))
3).修改表的结构,具体要求如下:
a为学生表增加一个“平均成绩”字段,类型为短整型,默认是空值。alter table 学生
add 平均成绩smallint default null
b为课程表的“学时”字段重新定义约束:取值为8的倍数,不允许为空值。alter table 课程
add check(学时/8=0)
c 将院系表的“名称”字段的类型修改为varchar(30)。alter table 院系
alter column 名称varchar(30)
d为教师表增加一个“工资”字段,类型为5位整数、2位小数的数值型。alter table 教师
add 工资 numeric(5,2)
4)分别建立如下索引
a.在客户表的客户名称字段上建立普通升序索引。create clustered
index cname_index
on customer(cname asc)