关于学校数据库MySQL实验的一种解答 您所在的位置:网站首页 createtable命令中的primarykey子句用于定于关系的 关于学校数据库MySQL实验的一种解答

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

2024-07-04 21:11| 来源: 网络整理| 查看: 265

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

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



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有