SQL Server 视图操作:创建、修改、更新和删除示例
SQL Server 视图操作:创建、修改、更新和删除示例
本示例演示如何在 SQL Server 中创建、修改、更新和删除视图,并包含详细的代码和操作步骤。
1. 创建表和插入数据
首先,我们需要创建三个表:PAPER、CUSTOMER 和 CP,并插入一些数据。
CREATE TABLE PAPER
(
pno char(6) PRIMARY KEY,
pna char(10),
ppr float
);
CREATE TABLE CUSTOMER
(
cno char(8) PRIMARY KEY,
cna char(10),
adr char(20)
);
CREATE TABLE CP
(
cno char(8),
pno char(6),
num int,
PRIMARY KEY(pno,cno),
FOREIGN KEY (pno) REFERENCES PAPER(pno),
FOREIGN KEY (cno) REFERENCES CUSTOMER(cno)
);
-- 插入 PAPER 表数据
insert into paper(pno,pna,ppr)
values('000001','人民日报',12.5) ;
insert into paper(pno,pna,ppr)
values('000002','解放军报',14.5) ;
insert into paper(pno,pna,ppr)
values('000003','光明日报',10.5) ;
insert into paper(pno,pna,ppr)
values('000004','青年报',11.5) ;
insert into paper(pno,pna,ppr)
values('000005','扬子晚报',18.5) ;
-- 插入 CUSTOMER 表数据
insert into customer(cno,cna,adr)
values('10000001','李涛','无锡市解放东路123号') ;
insert into customer(cno,cna,adr)
values('10000002','钱金浩','无锡市人民西路234号') ;
insert into customer(cno,cna,adr)
values('10000003','邓杰','无锡市惠河路270号') ;
insert into customer(cno,cna,adr)
values('10000004','朱海红','无锡市中山东路432号') ;
insert into customer(cno,cna,adr)
values('10000005','欧阳阳文','无锡市中山东路532号') ;
-- 插入 CP 表数据
insert into cp(cno,pno,num)
values('10000001','000001',2) ;
insert into cp(cno,pno,num)
values('10000001','000005',6) ;
insert into cp(cno,pno,num)
values('10000002','000003',2) ;
insert into cp(cno,pno,num)
values('10000003','000003',2) ;
insert into cp(cno,pno,num)
values('10000004','000001',1) ;
insert into cp(cno,pno,num)
values('10000004','000005',2) ;
insert into cp(cno,pno,num)
values('10000005','000002',1) ;
insert into cp(cno,pno,num)
values('10000005','000005',5) ;
insert into cp(cno,pno,num)
values('10000001','000002',4) ;
insert into cp(cno,pno,num)
values('10000002','000001',2) ;
insert into cp(cno,pno,num)
values('10000002','000005',2) ;
insert into cp(cno,pno,num)
values('10000003','000004',4) ;
insert into cp(cno,pno,num)
values('10000004','000003',3) ;
insert into cp(cno,pno,num)
values('10000005','000003',4) ;
insert into cp(cno,pno,num)
values('10000005','000004',3) ;
insert into cp(cno,pno,num)
values('10000005','000001',4) ;
2. 创建视图
创建一个名为 C_P_N 的视图,包含顾客编号、顾客名称、报纸编号、报纸名称和订阅份数信息。
CREATE VIEW C_P_N AS
SELECT c.cno, c.cna, p.pno, p.pna, cp.num
FROM CUSTOMER c
JOIN CP cp ON c.cno = cp.cno
JOIN PAPER p ON cp.pno = p.pno;
3. 修改视图
修改视图 C_P_N,使其包含报纸单价信息。
ALTER VIEW C_P_N AS
SELECT c.cno, c.cna, p.pno, p.pna, cp.num, p.ppr
FROM CUSTOMER c
JOIN CP cp ON c.cno = cp.cno
JOIN PAPER p ON cp.pno = p.pno;
4. 更新视图数据
通过视图 C_P_N 修改某人订阅某报的份数,例如将顾客编号为 '10000001' 的顾客订阅报纸编号为 '000001' 的份数修改为 3。
UPDATE C_P_N
SET num = 3
WHERE cno = '10000001' AND pno = '000001';
5. 删除视图
删除视图 C_P_N。
DROP VIEW C_P_N;
实验心得
本次实验主要学习了 SQL 中视图的概念以及对视图的操作,通过创建视图 C_P_N 并对其进行修改、更新、删除等操作,深入了解了视图的使用方法与注意事项。
在实验中,通过创建三个表 PAPER、CUSTOMER、CP,并插入相应的数据,然后利用这些表的信息创建了一个视图 C_P_N,视图中包含顾客编号、顾客名称、报纸编号、报纸名称、订阅份数等信息。然后通过修改视图 C_P_N,添加了报纸单价信息,使其更加完整。在视图中修改某人订阅某报的份数时,只需要通过 UPDATE 语句进行操作即可,无需直接修改原始表,操作更加便捷。最后,通过 DROP VIEW 语句删除视图 C_P_N,完成了本次实验。
总的来说,本次实验让我更加深入地了解了 SQL 中视图的概念以及对其进行的操作,对我今后的数据库编程工作将有很大的帮助。
原文地址: http://www.cveoy.top/t/topic/mOH5 著作权归作者所有。请勿转载和采集!