SQL Server 创建表、插入数据和视图更新操作
SQL Server 创建表、插入数据和视图更新操作
本文将介绍如何在 SQL Server 中创建表、插入数据以及如何通过视图更新数据。
创建表
首先,我们使用以下代码在 SQL Server 中创建三个表: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)
);
插入数据
创建表后,我们可以使用以下代码为每个表插入数据:
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) ;
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号') ;
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) ;
创建视图 C_P_N
接下来,我们将创建一个名为 C_P_N 的视图,包含顾客编号、顾客名称、报纸编号、报纸名称和订阅份数信息。
CREATE VIEW C_P_N AS
SELECT CP.cno, CUSTOMER.cna, CP.pno, PAPER.pna, CP.num
FROM CP
INNER JOIN CUSTOMER ON CP.cno = CUSTOMER.cno
INNER JOIN PAPER ON CP.pno = PAPER.pno;
更新数据
现在,我们可以通过视图 C_P_N 更新数据,比如修改某人订阅某份报纸的份数。
方法一:直接更新基表 CP
UPDATE CP
SET num = 3
WHERE cno = '10000001' AND pno = '000001';
方法二:通过视图 C_P_N 更新数据
UPDATE C_P_N
SET num = 3
WHERE cno = '10000001' AND pno = '000001';
注意:
视图上的更新操作实际上是对基表进行更新,因此需要满足基表的更新条件和约束。
通过以上步骤,我们就成功地创建了表、插入了数据以及创建了一个视图并通过视图更新了基表数据。
原文地址: https://www.cveoy.top/t/topic/mOFI 著作权归作者所有。请勿转载和采集!