mysql关于学校的_关于学校数据库MySQL实验的一种解答

教材: 王珊萨师煊《数据库系统概论》

platform:MySQL2012

实验一:熟悉MySQL的开发环境                          PS:  这个就略过了

实验二  SQL 的数据定义(表和索引)

一、实验目的:

1. 会使用界面工具和命令两种方法定义、修改、撤消基本表。

2. 会使用界面工具和命令两种方法定义、撤消基本表的索引。

3. 进一步学会使用界面工具插入、修改、删除数据。

二、实验准备及任务

1.复习SQL语言中数据定义的相关命令。

2.根据实验样例数据库的要求预先写好相应的命令(完整性约束可不定义,留待实验三完成)。

(1)使用命令完成附录中实验样例数据库四张表的数据定义:学生表Student、课程表Course、班级表Class、成绩表Cj。四张表结构详见附录一。

(2)使用界面工具,在实验样例数据库中的Student表中添加一个新字段:Birthday,其数据类型为日期型;使用命令为Student表再添加另一个新字段:Class,其数据类型为字符型,宽度为5,并检查结果。

(3)使用界面工具和命令,将实验样例数据库中的Student表中Class字段宽度改为10。最后,在该表中删除Class和Birthday两个字段,并检查结果。

(4) 先将实验样例数据库另外在磁盘上做一个备份,然后使用界面工具,将撤消基本表Student表的定义,使用命令撤消基本表Class的定义。

(5)使用数据库附加功能,重新使用先前备份的实验样例数据库,然后使用界面工具进行插入、修改、删除数据的操作,将实验样例数据库中的四张表分别填满数据,为后面实验做准备,数据详见附录二。

(6)使用界面工具,为实验样例数据库中的Student表按学号升序建唯一索引。

(7)使用命令,为Course表按课程号升序建唯一索引,为CJ表按学号升序和课程号降序建唯一索引,为CJ表按成绩降序建聚簇索引。

(8)使用命令,删除建立的相关索引。

code:

/*几点说明

1.书本上代码大部分是大写,但SQL不区分大小写所以为了代码简洁明了这一系列都采用了小写

2.实际代码在实验中没保存下来,而我又没学到如何调用日志文件ORZ所以以下代码没实际运行,可以作为参考*/

create table student

(

Sno char(7) primary key,

Sname char(10) not null,

Ssex char(2),

constaint c1 check(Ssex in '男' or '女'),

Sage Smallint,

constaint c2 check(Sage between 14 and 65),

clno char(5) not null,

)

create table Course

(

Cno char(1) primary key,

Cname char(20) unique,

Credit Smallint

constraint c3 check(Credit between 1 and 6),

)

create table Class

(

clno char(5) primary key,

Speciality char(20) not null,

Number Smallint

constraint c4 check(Number between 1 and 60),

Monitor char(7),

)

create table cj

(

Sno char(7),

Cno char(1),

Grade decimal(4,1)

constaint c5 check(Grade between 1 and 100),

primary key(Sno, Cno),

foreign key(Sno) references Student(Sno)

on delete cascade

on update cascade,

foreign key(Cno) references Course(Cno)

on delete cascade

on update cascade,

)

/*问题二*/

alter table Student add Class char(5)

/*问题七*/

create unique index Course on Course(Cno),

create unqiue index SCno on cj(Sno asc, Cno desc),

以上code实际解决了实验二和实验三的完整性约束,实验三具体操作步骤不列出仅将题目给出

实验三SQL 的完整性约束定义

一、实验目的:

1. 掌握关系数据库的三类完整性约束定义,并领会其作用。

2. 会使用界面工具定义实体完整性、参照完整性和用户自定义完整性。

3. 掌握使用命令定义实体完整性、参照完整性和用户自定义完整性。

二、实验准备及任务

1.复习教材第五章完整性约束定义的相关内容。

2.根据下面要求完成实验样例数据库中提到的完整性约束定义。

(1)使用create table命令定义学生表Student,同时定义该表的主码(实体完整性)、性别取值为男或女、年龄取值为大于14,小于65(用户自定义完整性。);使用create table命令定义课程表Course,同时定义该表的相关完整性约束,约束详见附录一。

(2)使用界面工具,在实验样例数据库中的定义班级表Class和该表的实体完整性、参照完整性和用户自定义完整性,约束详见附录一。

(3)使用alter table命令定义学生表Student的clno为外码,同时指定其违约处理方式为删除级联和更新级联,约束详见附录一。

(4)将班级表Class的Credit的check约束改为其在1、2、3、4之一取值。

(5)使用命令,完成成绩表 Cj的定义和相关完整性约束,详见附录一。

(6)使用界面工具,按附录二进行插入、修改、删除数据,验证完整性

约束的效果。至少各有一种情况分别违背了三类完整性约束(如在 Cj中把‘2001102’同学的‘6’号课程的成绩由83分改为150分),并记录。

还有几个实验做完就等待期末考试了,最后还有个数据库开发实训为期两周,不知道干什么的到时候一起上传上来

纪念第一篇技术文档fighting

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值