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 并对其进行修改、更新、删除等操作,深入了解了视图的使用方法与注意事项。

在实验中,通过创建三个表 PAPERCUSTOMERCP,并插入相应的数据,然后利用这些表的信息创建了一个视图 C_P_N,视图中包含顾客编号、顾客名称、报纸编号、报纸名称、订阅份数等信息。然后通过修改视图 C_P_N,添加了报纸单价信息,使其更加完整。在视图中修改某人订阅某报的份数时,只需要通过 UPDATE 语句进行操作即可,无需直接修改原始表,操作更加便捷。最后,通过 DROP VIEW 语句删除视图 C_P_N,完成了本次实验。

总的来说,本次实验让我更加深入地了解了 SQL 中视图的概念以及对其进行的操作,对我今后的数据库编程工作将有很大的帮助。

SQL Server 视图操作:创建、修改、更新和删除示例

原文地址: http://www.cveoy.top/t/topic/mOH5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录