一部分数据库基础视图课件.pdfVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

PART

视图:虚拟的表,只包含使用时动态检索数据的查询

检索销量为25的产品对应的供应商及其地址

SELECTvendors.name,vendors.address

FROMvendors,products,sale

WHEREvendors.vendor_id=products.vendor_id

ANDproducts.product_id=sale.product_id

ANDsale.number=25;

用此查询来检索某特定销量产品对应的供应商及其地址时,任何需要这个数据的人都必须

理解相关表的结构,并且知道如何创建查询和对表进行联结;为了检索其他产品的相同数

据还必须修改最后的WHERE子句

将查询包装成vendoraddress的虚拟表,即视图

SELECTvendors.name,vendors.address

FROMvendoraddress

WHEREsale.number=25;

视图的常见应用

•重用SQL语句

•简化复杂的SQL操作

•使用表的组成部分而不是整个表

•保护数据

•更改数据格式和表示

视图仅仅是用来查看在别处的数据的一种设施

视图本身不包含数据,他们返回的是从其他表中检索出来的数据

在添加或更改表中数据时,视图将返回改变过的数据

视图的规则和限制

•视图必须唯一命名

•对于可以创建的视图数目没有限制

•为了创建视图,必须具有足够的权限

•视图可以嵌套

•ORDERBY可以用在视图中,但如果从该视图检索数据SELECT中也含有ORDERBY,那么

该视图中的ORDERBY将被覆盖

•视图可以和表一起使用

PART

创建视图:CREATEVIEW

查看视图:DESCRIBE|DESCviewname或SHOWCREATEVIEWviewname

删除视图:DROPVIEWviewname

更新视图:CREATEORREPLACEVIEW或先用DROP再用CREATE

利用视图简化复杂的联结

创建检索供应商及其地址的视图vendoraddress

CREATEVIEWvendoraddressAS

SELECTproducts.product_id,vendors.name,vendors.address,sale.number

FROMvendors,products,sale

WHEREvendors.vendor_id=products.vendor_id

ANDproducts.product_id=sale.product_id;

联结了vendors,products,sale三个表

返回产品编号、供应商名称、地址和产品销量

SELECTname,address

FROMvendoraddress

WHEREnumber=25;

利用视图重新格式化检索出的数据

在单个列中返回供应商名和地址

SELECTConcat(name,(,address,))ASVENDORS

FROMvendors;

若经常需要使用这个格式的结果,可创建一个视图,每次需要时直接使用,不必在每次需

要时执行联结

CREATEVIEWvendorlocationsAS

SELECTConcat(name,(,address,))ASVENDORS

FROMvendors;

SELECT*

FROMvendorlocations;

利用视图过滤不想要的数据

使用视图与计算字段:简化计算字段的使用

查看视图

删除视图

DROPVIEWvendoraddress;

DROPVIEWIFEXISTSvendoraddress;

EXISTS语句在查询中也有所应用

SELECT*FROMAWHEREEXISTS(SELECT1FROMBWHEREB.id=A.id);

首先执行一次外部查询,并缓存结果集,如SELECT*FROMA

遍历外部查询结果集的每一行记录R,代入子查询中作为条件进行查询,如SELECT1FROM

BWHEREB.id=A.id

文档评论(0)

lzjbook118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档