SQL语句(四)视图定义、查询、更新和删除

您所在的位置:网站首页 sql定义性别 SQL语句(四)视图定义、查询、更新和删除

SQL语句(四)视图定义、查询、更新和删除

2024-07-10 00:06:19| 来源: 网络整理| 查看: 265

一、视图定义

CREATE VIEW 视图名

AS 子查询

WITH CHECK OPTION //可以省略

二、视图查询、更新

和基本表的查询语句类似,只是把表名的位置换成视图名就可以

三、视图删除

DROP VIEW 视图名 【CASCADE】//CASCADE为级联删除,可以省略

四、实例

1.创建一个“上海晓莉贸易商行”供应商供应的零件视图V_DLMU_PartSupp1,要求列出供应零件的编号、零件名称、可用数量、零售价格、供应价格和备注等信息。 CREATE VIEW V_DLMU_PartSupp1 AS SELECT part.partkey,part.name,availqty,retailprice,supplycost,part.comment FROM part,supplier,partsupp WHERE part.partkey=partsupp.partkey AND partsupp.suppkey=supplier.suppkey AND supplier.name='上海黎顺服装经营部'; SELECT * FROM V_DLMU_PartSupp1; 2. 创建一个视图V_CustAvgOrder,按照顾客统计平均每个订单的购买金额和零件数量,要求输出顾客编号,姓名,平均购买金额和平均购买零件数量。 CREATE VIEW V_CustAvgOrder(custkey,cname,avgprice,avgquantity) AS SELECT customer.custkey,customer.name,AVG(totalprice),AVG(quantity) FROM customer,orders,lineitem WHERE customer.custkey=orders.custkey AND orders.orderkey=lineitem.orderkey GROUP BY customer.custkey,customer.name; SELECT * FROM V_CustAvgOrder; 3.使用WITH CHECK OPTION,创建一个上海黎顺服装经营部供应商供应的零件视图V_DLMU_PartSupp2,要求列出供应零件的编号、可用数量和供应价格等信息。然后通过该视图分别增加、删除和修改一条“上海黎顺服装经营部”零件供应记录,验证WITH CHECK OPTION是否起作用。 CREATE VIEW V_DLMU_PartSupp2 AS SELECT partkey,suppkey,availqty,supplycost FROM partsupp WHERE suppkey= ( SELECT suppkey FROM supplier WHERE name='上海黎顺服装经营部' ) WITH CHECK OPTION; SELECT * FROM V_DLMU_PartSupp2; INSERT INTO V_DLMU_PartSupp2 VALUES(3,1,18,20); SELECT * FROM V_DLMU_PartSupp2; UPDATE V_DLMU_PartSupp2 SET supplycost=18 WHERE partkey=2; SELECT * FROM V_DLMU_PartSupp2; DELETE FROM V_DLMU_PartSupp2 WHERE supplycost=20; SELECT * FROM V_DLMU_PartSupp2; 4.创建一个上海黎顺服装经营部供应商供应的零件视图V_DLMU_PartSupp3,要求列出供应零件的编号、可用数量和供应价格等信息。然后通过该视图分别增加、删除和修改一条上海黎顺服装经营部零件供应记录,并比较题目3操作与本次异同。 CREATE VIEW V_DLMU_PartSupp3 AS SELECT partkey,suppkey,availqty,supplycost FROM partsupp WHERE suppkey= ( SELECT suppkey FROM supplier WHERE name='上海黎顺服装经营部' ); SELECT * FROM V_DLMU_PartSupp3; INSERT INTO V_DLMU_PartSupp3 VALUES(3,1,18,20); SELECT * FROM V_DLMU_PartSupp3 ; INSERT INTO V_DLMU_PartSupp3 VALUES(30007,4,18,20); SELECT * FROM partsupp WHERE partkey=30007; UPDATE V_DLMU_PartSupp3 SET supplycost=30 WHERE partkey=2; SELECT * FROM V_DLMU_PartSupp3; DELETE FROM V_DLMU_PartSupp3 WHERE supplycost=20; SELECT * FROM V_DLMU_PartSupp3; 5.验证题目2中定义的视图不可以更新 INSERT INTO V_CustAvgOrder VALUES(100000,'liuhui',20,20000); 6.创建顾客订单明细视图V_CustOrd,要求列出顾客编号、姓名、购买零件数量、金额,然后再该视图的基础上,再创建V_CustAvgOrder视图,然后使用RESTRICT选项删除视图V_CustOrd,观察现象并解释原因。使用CASCADE选项删除视图V_CustOrd,观察现象并检查V_CustAvgOrder是否存在并解释原因。 CREATE VIEW V_CustOrd(custkey,name,quantity,extendedprice) AS SELECT customer.custkey,customer.name,quantity,extendedprice FROM customer,orders,lineitem WHERE customer.custkey=orders.custkey AND orders.orderkey=lineitem.orderkey; SELECT * FROM V_CustOrd; CREATE VIEW V_CustAvgOrder(custkey,name,avgquantity,avgprice) AS SELECT custkey,name,AVG(quantity),AVG(extendedprice) FROM V_CustOrd GROUP BY custkey,name; SELECT * FROM V_CustAvgOrder; DROP VIEW V_CustOrd RESTRICT; DROP VIEW V_CustOrd ;

五、参考结果

1.创建该视图成功后查询结果

2.创建该视图成功以及查询该视图的结果

 

3.对视图V_DLMU_PartSupp2各项操作的结果

  3.1创建并查询该视图

  3.2执行插入操作并查询插入后的视图结果

  3.3执行修改操作并查询修改后的视图结果

  3.4执行删除操作并查询删除后的视图结果

4.对视图V_DLMU_PartSupp3各项操作结果

  4.1建立成功后查询结果

  4.2进行插入操作并查新插入后的视图结果

 

  4.3进行修改操作并查询修改后的视图结果

  4.4进行删除操作并查询删除后的视图结果

5.题目2中建立的视图更新操作结果

6. RESTRICT和CASCADE删除

六、注意

1.实例2中创建的视图V_CustAvgOrder不可更新的原因:因为所创建的视图对其属性值进行了计算的其他形式上的改变,而对视图的更改最终表现为对表的更改而表中不存在视图的某一属性,或属性的性质不相同,则无法更改,这是一种视图机制。V_CustAvgOrder定义了平均购买金额和平均购买零件数量,但是原来的表项中并没有,对它们的更改无法对应到基本表上,所以该视图不可以更新。

2. with check option  :在视图上的修改都要符合视图定义时的SELECT语句所指定的限制条件,这样可以确保数据修改后通过视图可以看到修改后的数据。

  3. RESTRICT删除和CASCAD删除:视图删除后视图的定义将从数据字典中删除,如果在该视图上还导出了其他视图,删除这些视图需要级联删除,遗憾的是,SQL Server2008并不支持级联删除,不过可以先删除视图 V_CustAvgOrder,然后再删除视图V_CustOrd。

 4. 视图的更新:一般行列子集视图是可以更新的,因为它只是去掉了基本表的某些行或者列,并且保留了主码,对视图的更新通过视图消解可以转化为对基本表的更新。

 



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭