数据库实验3:创建数据库以及表,创建和使用视图
实验课教材(MySQL数据库技术与实验指导)第66页“实验内容与要求”1-3题
1 、实验内容与要求
( 1 )创建数据库及表
用己掌握的某种方法,创建订报管理子系统的数据库 DingBao ,在 DingBao 数据库中用交互式界面操作方法或 CREATETABLE 创建如下 3 张表所示的表结构(表名及字段名使用括号中给出的英文名,如表 3-1 ~ 3-2 )并完成 3 张表所示内容的输入,根据需要可自行设计输入更多的表记录。
报纸编号 ( pno ) | 报纸名称 (pna) | 单价 ( ppr ) |
---|---|---|
000001 | 人民日报 | 12.5 |
000002 | 解放军报 | 14.5 |
000003 | 光明日报 | 10.5 |
000004 | 青年报 | 11.5 |
000005 | 扬子晚报 | 18.5 |
表 3-1 报纸编码表( PAPER ) 表 3-2 顾客编码表( CUSTOMER )
顾客编号 ( cno ) | 顾客姓名 (cna) | 顾客地址 ( adr ) |
---|---|---|
0001 | 李涛 | 解放东路 123 号 |
0002 | 钱金浩 | 人民西路 234 号 |
0003 | 邓杰 | 惠河路 270 号 |
0004 | 朱海红 | 中山东路 432 号 |
0005 | 欧阳阳文 | 无锡市中山东路 532 号 |
表 3-3 报纸订阅表( CP )
顾客编号 ( cno ) | 报纸编号 (pna) | 订阅份淑 ( num ) |
---|---|---|
0001 | 000001 | 2 |
0001 | 000005 | 6 |
0002 | 000003 | 2 |
0003 | 000003 | 2 |
0004 | 000001 | 1 |
0004 | 000005 | 1 |
0005 | 000002 | 1 |
0005 | 000005 | 5 |
创建表结构时要求满足:
● 报纸编码表( PAPER )以报纸编号( pno )为主键,并为报纸编码表( PAPER )定义一个单价不大于 30 的 CHECK 约束;
● 顾客编码表( CUSTOMER )以顾客编号( cno )为主键,并为身份证号 (id) 创建 UNIQUE 约束。
● 报纸订阅表( CP )以报纸编号( pno )与顾客编号( cno )为主键, pno 和 cno 分别引用报纸编码表( PAPER )的报纸编号( pno )和顾客编码表( CUSTOMER )的顾客编号( cno ),订阅份树的默认值为 1 。
创建一个 ACCESS 数据库 DingBao(DingBao.MDB 文件 ) ,把在 SQL SERVER 中创建的 3 表导出到 ACCESS 数据库中。
( 2 )创建与使用视图
● 在 DingBao 数据库中,创建含有顾客编号、顾客姓名、报纸编号、报纸名称、订阅份数等信息的视图,视图名设定为 C_P_N 。
● 修改已创建的视图 C_P_N ,使其含有报纸单价信息。
● 通过视图 C_P_N ,查询“人民日报”被订阅的情况,能通过视图 C_P_N 实现对数据的更新操作吗?请尝试各种更新操作,例如修改某人订阅某报的份数,修改某报的名称等。
● 删除视图 C_P_N 。
实验过程:
- 创建数据库以及表
点击file,创建新的model.
双击mydb将其重命名为DingBao,然后点击Add Diagram创建新的EER图
然后拖动左边窗口的table创建新的table
按照要求创建三个table,命名以及其中的数据元素类型如下所示:
报纸编码表(paper)table:
主键为pno,将其数据类型设置为VARCHAR,单价用DECIMAL(3,1)表示,报纸名称pna用VARCHAR表示
顾客编码表(customer) table:
顾客编码表以顾客编号cno为主键,在此用VARCHAR来存储。在此处顾客姓名和顾客地址均用VARCHAR存储。
顾客订阅表(cp)table:
顾客订阅表以报纸编号cno和顾客编号pno为主键,且num的默认值为1
至此完成了三个表的创建。在这里通过正向工程将其生成为本地数据库
通过正向工程,便可以在本地数据库看到名字为dingbao的数据库,且表均存在.
之后插入数据:
为paper表插入数据:
--逐一插入元素
insert into paper
values(</