Skip to content

Commit

Permalink
Merge pull request #80 from tangent-heng/bigdata/docs/tangent
Browse files Browse the repository at this point in the history
Bigdata/docs/tangent
  • Loading branch information
Jacob953 authored Feb 8, 2022
2 parents d7c6a3a + 122de7c commit 65c53ab
Show file tree
Hide file tree
Showing 3 changed files with 769 additions and 0 deletions.
253 changes: 253 additions & 0 deletions docs/faculty/cse/bigdata/Database/experiment1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,253 @@
## 数据库实验



### 【实验项目一】

**实验内容**

(一)创建以下六张表,有如下要求: 本次实验100分

1)创建后面给出的这6个表(20分)。

1)用不同的方法创建约束;2)查看和删除约束;(3)创建、删除默认和规则 (3*5分)

1)掌握主键约束的特点和用法;2)掌握惟一性约束的用法;3)掌握默认约束和默认对象的用法;4)掌握CHECK约束和规则对象的用法;5)掌握利用主键与外键约束实现参照完整性的方法(5*5分)。

1)增加一个字段;2)删除一个字段; 3)增加一个约束; 4)修改字段的数据类型(4*5分);

1)创建索引;2)重建索引(2*5分)。

\1) 创建视图; 2)删除视图(2*5分)。

表结构按照显示的数据由读者自行设定,并按下表显示的数据录入至相关表中。

读者信息表

| 借书证号 | 姓名 | 性别 | 出生日期 | 借书量 | 工作单位 | 电话 | E-mail |
| -------- | ------ | ---- | ---------- | ------ | ---------- | -------- | -------------- |
| 29307142 | 张晓露 || 1989-02-1 | 2 | 管理信息系 | 85860126 | [email protected] |
| 36405216 | 李阳 || 1988-12-26 | 1 | 航海系 | 85860729 | [email protected] |
| 28308208 | 王新全 || 1988-04-25 | 1 | 人文艺术系 | 85860618 | [email protected] |
| 16406236 | 张继刚 || 1989-08-18 | 1 | 轮机工程系 | 85860913 | [email protected] |
| 16406247 | 顾一帆 || 1981-12-30 | | 轮机工程系 | 85860916 | [email protected] |

借还明细表

| 借书证号 | 图书编号 | 借/还 | 借书日期 | 还书日期 | 数量 | 工号 |
| -------- | -------- | ----- | ---------- | ---------- | ---- | ------ |
| 29307142 | 07108667 || 2008-03-28 | 2008-04-14 | 1 | 002016 |
| 29307142 | 99011818 || 2008-04-27 | | 1 | 002016 |
| 36405216 | 07410802 || 2008-04-27 | | 1 | 002018 |
| 29307142 | 07410298 || 2008-04-28 | | 1 | 002018 |
| 36405216 | 00000746 || 2008-04-29 | 2008-05-09 | 1 | 002016 |
| 28308208 | 07410139 || 2008-05-10 | | 1 | 002019 |
| 16406236 | 07410139 || 2008-05-11 | | 1 | 002017 |

图书类别

| 类别号 | 图书类别 |
| ------ | ---------- |
| H31 | 英语 |
| I267 | 当代作品 |
| TP312 | 程序语言 |
| TP393 | 计算机网络 |
| U66 | 船舶工程 |

图书借阅明细表

| 图书编号 | 图书名称 | 借书证号 | 借出日期 | 归还日期 | 库存数 |
| -------- | --------------- | -------- | ---------- | -------- | ------ |
| 99011818 | 文化苦旅 | 29307142 | 2008-04-27 | | 14 |
| 07410802 | 航海英语 | 36405216 | 2008-04-27 | | 24 |
| 07410298 | C++程序设计语言 | 29307142 | 2008-04-28 | | 14 |
| 07410139 | 艺海潮音 | 28308208 | 2008-05-10 | | 18 |
| 07410139 | 艺海潮音 | 16406236 | 2008-05-11 | | 17 |

工作人员

| 工号 | 姓名 | 性别 | 出生日期 | 联系电话 | E-mail |
| ------ | ------ | ---- | ---------- | -------- | -------------- |
| 002016 | 周学飞 || 1971-05-03 | 85860715 | [email protected] |
| 002017 | 李晓静 || 1979-09-15 | 85860716 | [email protected] |
| 002018 | 顾彬 || 1972-04-25 | 85860717 | [email protected] |
| 002019 | 陈欣 || 1968-11-03 | 85860718 | [email protected] |

图书明细表

| 类别号 | 图书编号 | 图书名称 | 作者 | 出版社 | 定价 | 购进日期 | 购入数 | 复本数 | 库存数 |
| ------ | -------- | ------------------ | ------ | ------------------ | ---- | ---------- | ------ | ------ | ------ |
| I267 | 99011818 | 文化苦旅 | 余秋雨 | 知识出版社 | 16 | 2000-03-19 | 8 | 15 | 14 |
| TP312 | 00000476 | Delphi高级开发指南 | 坎图 | 电子工业出版社 | 80 | 2000-03-19 | 15 | 15 | 15 |
| U66 | 01058589 | 船舶制造基础 | 杨敏 | 国防工业出版社 | 19 | 2001-07-15 | 20 | 20 | 20 |
| I267 | 07410139 | 艺海潮音 | 李叔 | 江苏文艺出版社 | 19 | 2007-04-12 | 15 | 20 | 18 |
| TP312 | 07410298 | C++程序设计 | 成颖 | 东南大学出版社 | 38 | 2007-05-08 | 10 | 15 | 14 |
| H31 | 07410802 | 航海英语 | 陈宏权 | 武汉工业大学出版社 | 42 | 2007-10-20 | 25 | 25 | 24 |
| H31 | 07108667 | 大学英语学习辅导 | 姜丽蓉 | 北京理工大学出版社 | 23.5 | 2008-02-06 | 25 | 25 | 25 |
| TP393 | 07410810 | 网络工程实用教程 | 汪新民 | 北京大学出版社 | 34.8 | 2008-08-21 | 10 | 15 | 15 |




**实验代码**


```sql
--【实验项目一】数据表, 索引, 视图创建, 修改,删除的设计与完整性约束

/* 借书证号 姓名 性别 出生日期 借书量 工作单位 电话 E-mail
29307142 张晓露 女 1989-02-1 2 管理信息系 85860126 [email protected]
36405216 李阳 男 1988-12-26 1 航海系 85860729 [email protected]
28308208 王新全 男 1988-04-25 1 人文艺术系 85860618 [email protected]
16406236 张继刚 男 1989-08-18 1 轮机工程系 85860913 [email protected]
16406247 顾一帆 男 1981-12-30 null 轮机工程系 85860916 [email protected] */

drop table 读者信息表

create table 读者信息表(
读书证号 char(20) ,
姓名 char(20) not null,
性别 char(10),
出生日期 datetime,
借书量 int ,
工作单位 char(20),
电话 char(20),
Email char(30)
constraint a unique(电话),
constraint c primary key(读书证号),
constraint b check (借书量>0 and 借书量<60)
)

alter table 读者信息表 add constraint d unique(电话)
alter table 读者信息表 drop constraint b



select * from 读者信息表

sp_help 读者信息表

insert into 读者信息表 values('29307142','张晓露','','1989-02-1',2,'管理信息系','85860126','[email protected]')
insert into 读者信息表 values('36405216','李阳','','1988-12-26',1,'航海系','85860729','[email protected]')
insert into 读者信息表 values('28308208','王新全','','1988-04-25',1,'人文艺术系','85860618','[email protected]')
insert into 读者信息表 values('16406236','张继刚','','1989-08-18',1,'轮机工程系','85860913','[email protected]')
insert into 读者信息表 values('16406247','顾一帆','','1981-12-30',null,'轮机工程系','85860916','[email protected]')

---------------------------------------


drop table 工作人员

create table 工作人员(
工号 char(20) primary key,
姓名 char(10) not null,
性别 char(5),
出生日期 date,
联系电话 char(30) default'00000000',
Mail char(30)
);
-----------------------------------


create table 图书类别(
类别号 char(20) primary key,
图书类别 char(20) not null
);

select * from 图书类别

insert into 图书类别 values ('H31','英语');
insert into 图书类别 values ('I267','当代作品');
insert into 图书类别 values ('TP312','程序语言');
insert into 图书类别 values ('TP393','计算机网络');
insert into 图书类别 values ('U66','船舶工程');

----------------------------------
create table 图书明细表(
类别号 char(20) references 图书类别(类别号),--两种外码创建方式
图书编号 char(20) primary key,
图书名称 char(30) not null,
作者 char(20),
出版社 char(30),
定价 int,
购进日期 date,
购入数 int,
复本数 int,
库存数 int
--foreign key(类别号) references 图书类别(类别号)
);

alter table 图书明细表
add constraint UQ_图书编号
unique (图书编号);

select * from 图书明细表
insert into 图书明细表 values ('I267','99011818','文化苦旅','余秋雨','知识出版社',16,'2000-03-19',8,15,14);
insert into 图书明细表 values ('TP312','00000476','Delphi高级开发指南','坎图','电子工业出版社',80,'2000-03-19',15,15,15);
insert into 图书明细表 values ('U66','01058589','船舶制造基础','杨敏','国防工业出版社',19,'2001-07-15',20,20,20);
insert into 图书明细表 values ('I267','07410139','艺海潮音','李叔','江苏文艺出版社',19,'2007-04-12',15,20,18);
insert into 图书明细表 values ('TP312','07410298','C++程序设计','成颖','东南大学出版社',38,'2007-05-08',10,15,14);
insert into 图书明细表 values ('H31','07410802','航海英语','陈宏权','武汉工业大学出版社',42,'2007-10-20',25,25,24);
insert into 图书明细表 values ('H31','07108667','大学英语学习辅导','姜丽蓉','北京理工大学出版社',23.5,'2008-02-06',25,25,25);
insert into 图书明细表 values ('TP393','07410810','网络工程实用教程','汪新民','北京大学出版社',34.8,'2008-08-21',10,15,15);
update 图书明细表 set 图书编号='00000746' where 图书名称='Delphi高级开发指南';

-----------------------------------------

create table 借还明细表(
读书证号 char(20) references 读者信息表(读书证号),
图书编号 char(20) references 图书明细表(图书编号),
借还 char(5) check (借还 in('','' ) ),
借书日期 datetime,
还书日期 datetime,
数量 int,
工号 char(20)
)

insert into 借还明细表 values ('29307142','07108667','','2008-03-28','2008-04-14',1,'002016');
insert into 借还明细表 values ('29307142','99011818','','2008-04-27',NULL,1,'002016');
insert into 借还明细表 values ('36405216','07410802','','2008-04-27',NULL,1,'002018');
insert into 借还明细表 values ('29307142','07410298','','2008-04-28','',1,'002018');
insert into 借还明细表 values ('36405216','00000746','','2008-04-29','2008-05-09',1,'002016');
insert into 借还明细表 values ('28308208','07410139','','2008-05-10','',1,'002019');
insert into 借还明细表 values ('16406236','07410139','','2008-05-11','',1,'002017');

update 借还明细表 set 还书日期=NULL where 图书编号='07410298';
update 借还明细表 set 还书日期=NULL where 图书编号='07410802';
update 借还明细表 set 还书日期=null where 读书证号='16406236' and 图书编号='07410139';
update 借还明细表 set 还书日期=null where 读书证号='28308208' and 图书编号='07410139';

select * from 借还明细表

-----------------------------------


create table 图书借阅明细表(
图书编号 char(20) references 图书明细表(图书编号),
图书名称 char(30) not null,
读书证号 char(20) references 读者信息表(读书证号),
借出日期 datetime,
归还日期 datetime,
库存数 int not null,
);

insert into 图书借阅明细表 values('99011818','文化苦旅','29307142','2008-04-27','',14);
insert into 图书借阅明细表 values('07410802','航海英语','36405216','2008-04-27',NULL,24);
insert into 图书借阅明细表 values('07410298','C++程序设计语言','29307142','2008-04-28','',14);
insert into 图书借阅明细表 values('07410139','艺海潮音','28308208','2008-05-10','',18);
insert into 图书借阅明细表 values('07410139','艺海潮音','16406236','2008-05-11','',17);

select * from 图书借阅明细表
----------------------------

sp_helpconstraint 图书借阅明细表

create index a_idx on 图书借阅明细表(库存数)
alter index a_idx on 图书借阅明细表 rebuild
drop index a_idx on 图书借阅明细表

create view a_view
as select * from 图书借阅明细表

select * from a_view
```
Loading

0 comments on commit 65c53ab

Please sign in to comment.