当前位置: 首页 > news >正文

电商网站变化网站换域名有没有影响吗

电商网站变化,网站换域名有没有影响吗,杭州游戏软件开发公司,苏州网站建设设计公司哪家好文章目录什么是视图为什么会使用视图视图语法案例简单视图的创建更改数据基表,视图数据会变化么?更改视图数据,基表数据会变更么?带检查约束的视图结论创建只读视图(MySQL不支持)总结什么是视图 视图是一种…

文章目录

  • 什么是视图
  • 为什么会使用视图
  • 视图语法
  • 案例
    • 简单视图的创建
    • 更改数据基表,视图数据会变化么?
    • 更改视图数据,基表数据会变更么?
    • 带检查约束的视图
      • 结论
    • 创建只读视图(MySQL不支持)
      • 总结

什么是视图

视图是一种数据对象,是从一个或者多个数据表或视图中导出的虚拟表

视图中的数据,并不是真正的存储在视图中。视图的表结构与数据是对数据表查询的结果

说到底,视图就是对SQL语句的一种封装

为什么会使用视图

使用视图,会具有以下几种优点:

  • 1、简化数据操作。
    在平时开发中,可能存在关联多张表的查询,每次都需要写sql,过于繁琐。
    此时就可以将SQL语句,放入视图中,每次进来直接查询视图就能获取对应的数据信息。

  • 2、可以过滤敏感类数据,只展示需要的数据。
    业务表中存在很多的敏感数据信息,并不想直接暴露给开发者所见,此时就能创建视图,根据编写SQL语句,将想要显示的数据放置于虚拟表中。

  • 3、可以对视图设置只读等权限。
    视图提供了一个简单而有效的安全机制,可以定制不同用户对数据的访问权限。

  • 4、提供向后兼容性
    使用户能够在表的架构更改时,为表创建向后兼容接口。

视图语法

创建视图的语法如下:

CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view[(alias[, alias]...)]AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY [CONSTRAINT constraint]];

选项解释:

命令名命令含义
CREATE创建视图
OR REPLACE修改视图,若创建的视图已存在,则自动创建新的视图,否则会创建视图报错。
force不管基表是否存在,都会创建视图。建视图时,不会监测其中的SQL语句,以及from后的表是否存在。
subquery视图数据内容的sql语句,即被包装的sql
WITH CHECK OPTION插入或修改的数据行必须满足视图定义的某些约束。
WITH READ ONLY将视图设置为只读,无法进行DML(增删改)操作。

删除指定的视图:

drop view view_name

案例

简单视图的创建

视图中的SQL只是单表查询,并且没有聚合函数。

如下,有这么一张基表。(数据库中存在的表)
在这里插入图片描述
此时,将这个表中的所有数据,放入视图中,视图语句如下:

create or REPLACE VIEW view_test
as
select * from user

从视图中查询数据结果:

select * from view_test

在这里插入图片描述

更改数据基表,视图数据会变化么?

执行更改语句,再次查看视图数据:

update user set user_age = 22 where id = 1
SELECT * from user

在这里插入图片描述
再次查询视图,看数据是否变更:

select * from view_test

在这里插入图片描述
【结论:】更改基表的数据后,视图中的数据会发生变化!!

更改视图数据,基表数据会变更么?

在视图中进行 update 操作,再次查看基表,查看数据是否变更:

update view_test set user_age = 18 where id = 1

在这里插入图片描述
查看基表:
在这里插入图片描述
【结论:】视图中执行update操作语句后,基表中的数据也会同步变更!!

视图,只是数据库中的一个SQL语句,并不是一张真实的表!!

带检查约束的视图

WITH CHECK OPTION

【疑问:】什么叫检查约束?

比如在视图中的SQL,由于视图数据是根据某些条件 如 age = xxx 进行了筛选。
在上面的结论中,也说到了在对视图进行update操作时,也会刷新 原表 中的数据记录
此时,将要将视图中某条记录的age值,修改成其他值,如果加了WITH CHECK OPTION,则不会执行成功。

控制数据的某些值,只能是指定的值。必须符合视图中sql语句的条件,才能update执行成功。

约束还有一个是WITH READ ONLY

将视图设置为只读模式,也就是只允许select,不能进行update、delete等。

创建一个带检查约束的视图,SQL如下所示:

create or replace view vw_test2 as
select * from user WHERE user_age = '18'
with CHECK OPTION 

注意where 后的条件,等会会验证!

创建视图后,查询数据信息,如下所示:
在这里插入图片描述
对视图中的数据进行修改,先修改user_name属性值。

update vw_test2 set user_name = 'Jone1' where id = 1

在这里插入图片描述

再修改其user_age属性值,SQL如下所示:

update vw_test2 set user_age = '22' where id = 1

执行后,则出现了如下的现象:
在这里插入图片描述

检查约束修改失败!!

也就是说:
无法修改创建视图时,where条件语句后的设定值。

如果在创建视图时,where条件后跟的是数据的范围呢?

创建一个视图,视图中的数据根据user_age > 18进行筛选。

create or replace view vw_test3 as
select * from user WHERE user_age > '18'
with CHECK OPTION 

执行后,进行查询,如下:

select * from vw_test3;

在这里插入图片描述
修改id = 2的数据信息,将年龄修改为 20

update vw_test3 set user_age = '20' where id = 2

执行后,现象如下:
在这里插入图片描述

诶,执行成功了!

是不是说,检查约束无效了呢?!

那么就再验证一个修改语句,将user_age修改为10,如果说约束失效,那么就一定可以修改成功!

update vw_test3 set user_age = '10' where id = 2

在这里插入图片描述
发现:

修改失败了!

结论

增加视图的检查约束WITH CHECK OPTION后,如果对数据进行修改操作,那么修改 视图 where条件后的字段值不允许超出其范围

创建只读视图(MySQL不支持)

WITH READ ONLY

使用Oracle创建一个新的视图,必须保证是只读模式。

create or replace view vw_test4_readonly as
select * from user WHERE user_age > '18'
with read only

【扩展】如果是 必须创建mysql的只读视图,可以另辟蹊径:

间接方式创建只读视图:
创建对所有表具有SELECT权限的用户和CREATE VIEW权限,然后使用此用户创建视图并在CREATE VIEW语句中指定SQL
资料参考

创建好只读视图后,尝试进行修改操作:

update vw_test4_readonly set user_age = '10' where id = 2

当执行后,则会出现下列的报错信息:
在这里插入图片描述

总结

只读视图,只允许进行select操作。

http://www.yayakq.cn/news/113661/

相关文章:

  • 加快信用网站建设框架型网页布局图片
  • 做彩票网站模板制作表情包的微信小程序
  • 胶州网站建设培训WordPress链接有中文导致打不开
  • 多用户商城网站网站建设用什么软件有哪些
  • 营销网站建站开发互联网项目网
  • 企业网站图片上传网站升级改造建设方案
  • 宁波新亚建设内部网站wordpress怎么上传pdf
  • 中国建设银行钓鱼网站淘宝怎么下载视频
  • 潍坊正规网站建设公司淘宝买cdk自己做网站
  • 网站页面关键词都一样怎样在国外网站上做外贸广告
  • dw网站制作流程大伙房水库输水工程建设局网站
  • 地址 上海石门二路 网站建设网络营销培训学院
  • 网站开发需要准备什么公司代运营
  • 广州网站制作培训恩做网站动态页面好
  • 网站开发的教学视频全自动免费网页制作
  • 长宁区网站设计建设教育类网页设计代码
  • 做外贸网站需要什么卡岳阳网站开发公司推荐
  • 大连网站建设设计织梦 网站教程
  • 免费建站好不好程林街网站建设
  • 做淘宝网站要求与想法网页设计颜色搭配
  • 自己做的网站搜索引擎搜不到建购物网站 教程
  • 做特卖网站有哪些钢丝网片
  • 泗县做网站下载重庆人社app
  • 网投网站怎么做做一手房用什么网站
  • 网站开发软件工程师国外优秀企业网站设计
  • 网站开发工作好吗青岛网站制作seo
  • 建设好网站怎么付费推广建设网站的流程
  • 肇庆建设工程备案的网站龙象建设集团有限公司网站
  • 网站页面怎么优化网站建设制作设计平台
  • 做专门的表白网站地方门户网站域名