数据库实验报告-学校教学管理数据库设计(代吗)Word文件下载.doc
《数据库实验报告-学校教学管理数据库设计(代吗)Word文件下载.doc》由会员分享,可在线阅读,更多相关《数据库实验报告-学校教学管理数据库设计(代吗)Word文件下载.doc(50页珍藏版)》请在冰豆网上搜索。
teaching
数据库逻辑文件名:
teaching_data 日志逻辑文件名:
teaching_log
操作系统数据文件名:
e:
\xxx\teaching.mdf 操作系统日志文件名:
\xxx\teaching.ldf
数据文件初始大小:
1MB 日志文件初始大小:
1MB
数据文件最大大小:
5MB 日志文件最大大小:
2MB
数据文件增长增量:
10% 日志文件增长增量:
10%
(2)创建后在database节点查看是否已包含了刚创建的数据库teaching;
(3)展开teaching节点,以下的所有对象均创建在teaching数据库中;
2.创建用户定义的数据类型
练习按要求创建以下数据类型
数据类型名称 数据描述
student_no 长度为10且不允许空值的字符型;
member_no 整数,且存储的值不超过30000
shortstring 最多15个字符的可变长字符型
USEteaching1
EXECsp_addtypestudent_no,'
char(10)'
'
notnull'
EXECsp_addtypemember_no,'
int'
EXECsp_addtypeshortstring,'
varchar(15)'
3.创建表
根据上述数据库存储的信息,决定创建5个表,并给每一个表指定一个有意义的表名;
CREATEDATABASEteaching
ON
( NAME=teaching_data,
FILENAME='
C:
\teachdata.mdf'
SIZE=3,
MAXSIZE=5,
FILEGROWTH=10%)
LOGON
( NAME=teaching_log,
\teachinglog.ldf'
SIZE=1,
MAXSIZE=2,
FILEGROWTH=10%)
根据每个表中每列存储的数据的情况,为每个列指定列名,数据类型,数据的长度,是否允许为空等列的属性;
droptablestudent
CREATETABLEstudent
(stnostudent_noCONSTRAINTstudent_PrimPRIMARYKEY,
stnVARCHAR(50)UNIQUE,
stclCHAR(10)default'
unknown'
sexCHAR(10)DEFAULT'
男'
birthdayint(4))default'
zzmmCHAR(10)default'
homeVARCHAR(50)default'
enttimeCHAR(50)default'
telVARCHAR(50)default'
jianliCHAR(10)default'
)
droptablecourse
createtablecourse
(
conochar(10)constraintcourse_primprimarykey,
conamechar(10),
coleixingchar(10)default'
coshihenianjichar(10)default'
cotimechar(10)default'
cocredictfloat(8),
cohourchar(10)
droptableclass
createtableclass
(
cnamechar(10),
czychar(10),
cgrchar(10),
cmemnomember_nodefault'
clenamevarchar(50)default'
droptablekechenganpai
createtablekechenganpai
conochar(8)notnullconstraintcourse_foreforeignkeyreferencescourse(cono),
coyearint(4),
coclvarchar(10)notnullconstraintclass1_foreforeignkeyreferencesclass(cname),
coteachervarchar(50)default'
droptablestxuanke
createtablestxuanke
conochar(8),
stnostudent_no,
stgradeintr(4)default'
4.实现数据完整性
(1)针对每一个表分析并定义主码(PrimaryKey)
(2)定义UIQUE约束
用来规定一个列中的两行不能有相同的值;
例如:
希望学生的姓名是唯一的;
(3)针对每一个表分析外部码,并利用“关系图”定义外部码(ForeignKey),建立表之间的参照关系;
(4)定义缺省值
方法1:
直接在表设计时,定义列的default属性;
例如:
练习在定义“性别”列时,定义它的缺省值位“男”;
方法2:
创建一个缺省值对象,然后绑定到任何一个需要的列;
练习创建并绑定一个缺省值到学生的联系电话,缺省值为“unkown”;
三、使用查询分析器实现以下查询
1.练习课堂上举例介绍的几类查询;
(1)检索选修了课程号为01或02课程,且成绩高于或等于60分的学生的姓名,课程名和成绩。
Selectstn,cono,stgrade
Fromteaching.dbo.student,teaching.dbo.stxuanke
Whereteaching.dbo.student.stno=teaching.dbo.stxuanke.stnoand(teaching.dbo.stxuanke.cono=01orteaching.dbo.stxuanke.cono=02)and(stgrade>
60orstgrade=60)
(2)检索姓“王”的所有学生的姓名和年龄。
selectstn,birthday
fromteaching.dbo.student
whereteaching.dbo.student.stnlike'
王%'
;
(3)检索没有考试成绩的学生姓名和课程名。
selectstn,teaching.dbo.stxuanke.stno,stgrade
fromteaching.dbo.student,teaching.dbo.stxuanke
whereteaching.dbo.student.stno=teaching.dbo.stxuanke.stnoandteaching.dbo.stxuanke.stgrade<
0;
(4)检索年龄大于女同学平均年龄的男学生姓名和年龄。
--注:
上述查询中所用的课程号和学号的值,可以根据自己表中的数据作修改;
为了验证查询的正确,可能还需要输入或修改表中的示例数据;
selectstn,(2012-birthday)
wheresex='
and(2012-birthday)>
16;
五创建和管理视图
这是这一部分建好的四个视图文件名称
1.创建视图:
使用企业管理器或使用CREATEVIEW命令
例1:
创建视图,包含所有通信工程专业的学生的信息;
createviewIS_StudentInformation
as
select*
例2:
创建视图,包含所有学生的学号,姓名,选课的课程名和成绩;
createviewIS_Student(stno,stna,coname,stgrade)
Selectteaching.dbo.student.stno,
teaching.dbo.student.stn,
teaching.dbo.course.coname,
teaching.dbo.stxuanke.stgrade
fromteaching.dbo.stxuanke,
teaching.dbo.student,
teaching.dbo.course
whereteaching.dbo.stxuanke.cono=teaching.dbo.course.conoand
teaching.dbo.student.stno=teaching.dbo.stxuanke.stno
2.练习修改视图的定义
第一个视图,包括withcheckoption选项
createviewIS_StudentInformation1
withcheckoption
第二个视图,包括withencryption选项;
createviewIS_Student1
wh