欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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;
相关标签: 数据库 mysql