关于学校数据库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。最后,在该表中删除ClassBirthday两个字段,并检查结果。

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命令定义学生表Studentclno为外码,同时指定其违约处理方式为删除级联和更新级联,约束详见附一。

4将班级表ClassCreditcheck约束改为其在1、2、3、4之一取值

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

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

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

 

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

纪念第一篇技术文档fighting






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值