MySQL数据库、表以及视图的创建和使用
程序员文章站
2022-06-02 08:15:11
...
实验环境
1、 操作系统:window10
2、 MySQL 5.7
1. 创建数据库以及表
1.1 创建DingBao数据库:
create database DingBao;
1.2 创建报纸编码表:
create table paper
( pno char(6) not null,
pna char(4) not null,
ppr float,
primary key(pno)
)engine=InnoDB
1.3 创建顾客编码表:
create table customer
( cno char(4) not null,
cna char(10) not null,
adr char(15) not null,
primary key(cno)
)engine=InnoDB
1.4 创建顾客订阅表:
create table cp
( cno char(4) not null,
pno char(6) not null,
num int default 1,
primary key(cno,pno)
)engine=InnoDB
1.5 完成三个表初始数据的输入:
insert into paper values
('000001','人民日报','12.5'),
('000002','解放军报','14.5'),
('000003','光明日报','10.5'),
('000004','青年报','11.5'),
('000005','扬子日报','18.5');
insert into customer values
('0001','李涛','无锡市解放东路123号'),
('0002','钱金浩','无锡市人民西路234号'),
('0003','邓杰','无锡市惠河路432号'),
('0004','朱海红','无锡市中山东路432号'),
('0005','欧阳阳文','无锡市中山东路532号');
insert into cp values
('0001','000001',2),
('0001','000002',4),
('0001','000005',6),
('0002','000001',2),
('0002','000003',2),
('0002','000005',2),
('0003','000003',2),
('0003','000004',4),
('0004','000001',1),
('0004','000003',3),
('0004','000005',2),
('0005','000003',4),
('0005','000002',1),
('0005','000004',3),
('0005','000005',5),
('0005','000001',4);
2. 创建和使用视图
2.1在DingBao数据库创建含有顾客编号、顾客名称、报纸编号、报纸名称、订阅份数等信息的视图C_P_N:
create view C_P_N(cno,cna,pno,pna,num) as select cp.cno,cna,cp.pno,pna,num
from customer,paper,cp
where cp.cno=customer.cno and cp.pno= paper.pno;
2.2修改已创建的视图C_P_N,使其包含报纸单价信息:
alter view C_P_N(cno,cna,pno,pna,num,ppr) as select cp.cno,cna,cp.pno,pna,num,ppr
from customer,paper,cp
where cp.cno=customer.cno and cp.pno= paper.pno;
2.3通过视图查询“人民日报”被订阅的情况:
select * from C_P_N
where pna='人民日报';
注:可以通过视图实现对数据的更新
2.4删除视图C_P_N:
drop view C_P_N;