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

网站wap转换西安网站建设多少钱

网站wap转换,西安网站建设多少钱,长春网页推广有哪些公司,杭州ui设计公司视图View 1、视图的基础语法2、检查选项3、视图的更新4、视图的作用 视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。 通俗的讲&…

视图View

  • 1、视图的基础语法
  • 2、检查选项
  • 3、视图的更新
  • 4、视图的作用

视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。

通俗的讲,视图只保存了查询的 SQL 逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条 SQL 查询语句上。

1、视图的基础语法

创建:

-- 创建视图
create [or replace] view 视图名称[(列名列表)] as select语句 [with [cascaded | local] check option];

查询:

-- 查看创建视图语句
show create view 视图名称;-- 查看视图数据
select * from 视图名称 [where ...];

修改:

-- 方式一:和创建视图语法相同,但是主要关注的是 or replace 部分,因为是要修改
create or replace view 视图名称[(列名列表)] as select语句 [with [cascaded | local] check option];-- 方式二
alter view 视图名称[(列名列表)] as select语句 [with [cascaded | local] check option];

删除:

drop view [if exists] 视图名称 [, 视图名称...];

2、检查选项

检查选项有两种:cascaded 和 local。下面通过一个案例来分析检查选项的用处。

假设现在有一个 user 表。里面有两个字段,id 和 name。存储了三条数据
id----------name
1-----------张三
2-----------李四
3-----------王五
现在给这个表创建一个视图

-- 给表 user 创建一个视图,select 语句为查询 id < 10 的所有数据
create view user_v as select * from user where id < 10;

这时操作 user_v 视图,插入一条 id 为4的数据。

-- 插入一条 id 为4的数据
insert into user_v values(4, '李六');
-- 再通过查询语句查询视图 user_v 数据,能够查询到所有数据
select * from user_v;
-- 通过查询语句查询表 user 的数据,发现数据也成功插入到表中
select * from user;

再向视图 user_v 中插入一条 id 为11的数据。

-- 向视图 user_v 插入一条 id 为11的数据
insert into user_v values(11, '王麻子');
-- 通过查询语句查询视图 user_v 数据,发现查询不到 id 为11的数据。
-- 这是因为在创建视图 user_v 时,select 语句指定了过滤条件 where id < 10,因此,id 为11的数据并不会出现在视图 user_v 中
select * from user_v;
-- 但是数据还是会成功插入到 user 表中。通过查询语句可以查看到
select * from user;

通过上面的案例可以发现,通过向视图插入数据,发现视图中没有成功插入,但是原表中成功插入了。为了避免这种现象,MySQL 在创建视图时提供了 cascaded 检查选项,可以将创建视图的 sql 修改为:

create view user_v as select * from user where id < 10 with cascaded check option;

在上面的案例中,检查选项 cascaded 的作用是,在向视图插入数据时,满足创建视图条件的数据才能被成功插入,而不满足条件的数据插入时会报错。在上述案例中创建的视图只允许 id < 10 的数据,增加了检查选项 cascaded 后,再向视图插入 id 大于10的数据则会报错,无法成功插入。

视图检查选项的作用:
当使用 with check option 子句创建视图时,MySQL 会通过视图检查正在更改的每个行,例如插入、更新、删除,以使其符合视图的定义。MySQL 允许基于另一个视图创建视图,它还会检查依赖视图中的规则以保持一致性。为了确定检查的范围, MySQL 提供了两个选项:cascaded 和 local,默认值为 cascaded。
cascaded:当前视图及其依赖的视图的创建条件都要满足

-- 创建视图 user_1,此视图没加检查选项,那么在操作该视图时,是不会去检查是否满足 id < 20
create view user_1 as select * from user where id < 20;
-- 基于视图 user_1 再创建一个视图 user-2
-- 给视图 user_2 增加了检查选项 cascaded。此时再要操作视图 user_2,不仅要满足 user_2 的创建条件,还要满足 user_1 的创建条件
create view user_2 as select * from user_1 where id > 10 with cascaded check option;

local:需满足当前视图的创建条件,同时会递归查看所依赖的视图是否有检查选项,如果有检查选项也需要满足依赖的视图的创建条件,如果没有检查选项则忽略。

3、视图的更新

要使视图可更新,视图中的行与基础表中的行之间必须存在一对一的关系。如果视图包含以下任何一项,则该视图不可更新:

  1. 聚合函数或窗口函数(sum()、min()、max()、count()等)
  2. distinct
  3. group by
  4. having
  5. union 或者 union all

4、视图的作用

  1. 简单
    视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后得操作每次指定全部的条件。
  2. 安全
    数据库可以授权、但不能授权到数据库特定行和特定的列上。通过视图用户只能查询和修改他们所能见到的数据。
  3. 数据独立
    视图可帮助用户屏蔽真实表结构变化带来的影响。
http://www.yayakq.cn/news/131393/

相关文章:

  • 使用 私有云 做视频网站云南专业网站建设
  • 城口自助建站万维网网站
  • 做的网站怎么发网上石家庄做网站哪家公司好
  • 阿虎手机站网站推广营销步骤
  • 北京seo网站开发淘宝的网络营销模式
  • 网页制作网站首页设计石家庄网站设计工作室
  • 孝仙洪高速公路建设指挥部网站长沙网络域名注册
  • 壁纸公司网站源码wordpress代码打包
  • 门户网站建设存在问题与不足vi设计主要做什么
  • 网站培训公司网站网页设计专业公司
  • 遂川网站建设您提交的网站域名无备案
  • 营销型网站设计特点小红书营销策划方案
  • 昆明seo建站网页qq属于
  • 多个网站集成在一个页面谷歌网站推广优化
  • 江苏省建设人才网站phpcms v9 网站建设设计制作网络科技模板
  • name域名的网站中国建筑工程网校
  • 如何挖掘和布局网站关键词做牙厂的网站
  • flashfxp上传了网站wordpress主机xampp
  • 南昌网站建设模板服务商卖衣服的网站排名
  • thinkphp网站开发技术购物商城起名
  • 做电销要在哪个网站上找资源淄博团购网站建设
  • 个人业余做网站怎么弄好看的单页
  • 网站的可用性网站模块怎么恢复
  • 海淘网站建设学软件工程有前途吗
  • 做品牌网站wordpress 帝国cms速度
  • 网上电影网站怎么做的网站架构招聘
  • 工信部网站备案验证码aspnet网站开发教程
  • 那些网站能够做推广做衣服网站
  • 网站开发流程丽江搜狐酒业峰会
  • 为企业进行网站建设方案永久免费高配云服务器