SQL数据库实验二 表与视图的操作

一.实验目的
1.掌握数据库表和视图的基础知识
2.掌握创建,修改,使用,删除表与视图的不同方法
3.创建表与视图的导入与导出方法
二.实验内容与要求
1.创建数据库和表
用你掌握的某种方法,创建订报管理子系统的数据库DngBao,在DingBao数据库中用交互式界面操作方法或创建如下三表的表结构(表名及字段名使用括号中给出的英文名),并完成三表所示内容的输入,根据需要可自行设计输入更多的表记录。
创建表结构时要求满足:①报纸编码表(PAPER)以报纸编号(pno)为主键,如表3-1所示;②顾客编码表以顾客编号为主键,如表3-2所示;③报纸订阅表(CP以报纸编号与顾客编号为主键,订阅份数(num)的缺省值为1,如表3-3所示。

创建一个ACCESS数据库,把在SQL Server 中创建的三表导出到ACCESS数据库中
2.创建和使用视图
①在数据库中,创建含有顾客编号、顾客名称、报纸编号、报纸名称、订阅份数等
信息的视图,视图名设定为CPN
②修改已创建的视图C_PN,使其含报纸单价信息。
③通过视图CPN,查询“人民日报”被订阅的情况,能通过视图CPN实现对数据的更
新操作吗?请尝试各种可行的更新操作,如修改某人订阅某报的份数,修改某报的名称等
④删除视图CPN.
在这里插入图片描述

二、实验结果
实验代码如下

create table paper 
 (pno varchar(10) primary key,
   pna varchar(10) , 
    ppr float ,  );    
  create table customer   (
  cno varchar(10)primary key,  
   cna varchar(10), 
   adr varchar(20), ); 
    
   create table cp 
   	( 	cno varchar(10), 
    pno varchar(10),
    num intprimary key(pno,cno), 	); 	
    insert  into paper   select '000001','人民日报', 12.5 union select '000002','解放军报', 14.5 union select '000003','光明日报', 10.5 union select '000004','青年报', 11.5 union select '000005','扬子晚报', 18.5 ; 
  
   insert  into cp   
select '10000001','000001', 2 union select '10000001','000002', 4 union select '10000001','000005', 6 union select '10000002','000001', 2 union select '10000002','000003', 2 union select '10000002','000005', 2 union select '10000003','000003', 2 union select '10000003','000004', 4 union select '10000004','000001', 1 union select '10000004','000003', 3 union select '10000004','000005', 2 union select '10000005','000003', 4 union select '10000005','000002', 1 union select '10000005','000004', 3 union select '10000005','000005', 5 union select '10000005','000001', 4 ; 

insert  into customer   
select '10000001','李涛', '无锡市解放东路123号 ' union 
 '10000002','钱金浩', '无锡市人民西路234号' union 
 select '10000004','朱海红', '无锡市中山东路432号' union 
 select '10000003','邓杰', ' 无锡市惠河路270号'union 
 select '10000005','欧阳阳文', '无锡市中山东路532号' ;  
  create view cpn as select cp.cno,cp.pno,customer.cna,paper.pna,cp.num from cp,customer,paper where cp.pno=paper.pno and customer.cno=cp.cno;  
  select sum(num) from  cpn where pna='人民日报';   
  update cpn set num=19 where cno='10000002'; 
  select num from cpn where cno='10000002';

以下为实验结果截图

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、实验心得
本次实验可谓是一波三折,先是发现连接不了,后来重新下载还发现cp 表连接查询还是有问题,后来仔细检查发现是cno,pno的位置写反了……自己太不细心了,不知道18版本的是不是也是因为这个原因,以后建立表,插入记录的时候记得一定要按照顺序对上,不要要出大问题,解决了这个问题后面做的还算顺利。不管这个问题卡了多久时间,解决了就是值得的,因为以后这种错误就不会轻易再犯了,也挺值得的。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值