计算机科学与技术系
实 验 报 告
专业名称 软件工程 课程名称 数据库实验 项目名称 建立表和数据完整性
班 级 ( )班
学 号
姓 名
同组人员 无
实验日期 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 成绩
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)
b. 在产品表的客户名称字段上建立惟一索引 create unique clusteredindex cname_indexon product(cname)
c. 在订购单表的订单号字段上建立聚集索引。 create clustered index dno_index on dinggou(dno)
d. 在订单名细表的订单号(升序)、序号(升序)和数量(降序)三个字段上建立一个普通索引。 create clustered index dno_index
on dingdan(dno asc,dux asc,dshu desc)
三、实验分析与小结:
(实验过程中的问题分析、产生的原因以及解决方法;实验结果分析; 有待优化思路)
通过本次实验,掌握表的基本操作:建立表、修改表的结构。索引的建立方法以及掌握数据完整性的功能,加深对数据完整性的理解。但是我对这些操作都不怎么熟练,应该多加实践。
四、其它
得分(百分制)
计算机科学与技术系
实 验 报 告
专业名称 软件工程 课程名称 数据库实验 项目名称 建立表和数据完整性
班 级 ( )班
学 号
姓 名
同组人员 无
实验日期 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 成绩
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)
b. 在产品表的客户名称字段上建立惟一索引 create unique clusteredindex cname_indexon product(cname)
c. 在订购单表的订单号字段上建立聚集索引。 create clustered index dno_index on dinggou(dno)
d. 在订单名细表的订单号(升序)、序号(升序)和数量(降序)三个字段上建立一个普通索引。 create clustered index dno_index
on dingdan(dno asc,dux asc,dshu desc)
三、实验分析与小结:
(实验过程中的问题分析、产生的原因以及解决方法;实验结果分析; 有待优化思路)
通过本次实验,掌握表的基本操作:建立表、修改表的结构。索引的建立方法以及掌握数据完整性的功能,加深对数据完整性的理解。但是我对这些操作都不怎么熟练,应该多加实践。
四、其它
得分(百分制)