公司产品网站应该怎么做,大气宏伟wordpress企业主题,汕头公众号建设网站,公司网站优化软件视图语法基本操作
创建 -- [ ]表示可选
create [or replace] view 视图名称[(列名列表)] as
select语句
[ with [cascaded | local ] check option ]; 添加#xff08;虽然视图是虚拟表#xff0c;但是向视图操作的数据实际上会影响到实际关联的表数据#xff09; -- 视图添…视图语法基本操作
创建 -- [ ]表示可选
create [or replace] view 视图名称[(列名列表)] as
select语句
[ with [cascaded | local ] check option ]; 添加虽然视图是虚拟表但是向视图操作的数据实际上会影响到实际关联的表数据 -- 视图添加一条数据实际的表也会多一条数据 insert into 视图名称 values(数据列表); 修改 -- 方式一:和创建视图一样create 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 exsts] 视图名称; 查询 -- 查询视图数据 select * from 视图名称; -- 查看创建视图语句 show create view 视图名称; 视图检查选项介绍with [ cascaded | local ] check option
当创建视图时使用 with check option 可以限制插入或更新视图数据的条件 -- 创建视图(查询语句条件 where order_total 1000)添加检查选项 create view highvalue as select order_id, customer_id, order_total from orders where order_total 1000 with check option; -- 操作数据 insert into highvalue (order_id, customer_id, order_total) values (1, 123, 800); 由于插入的订单总额不符合视图的条件order_total 1000操作将被拒绝并抛出错误。 关于选项cascaded默认值 和 local介绍 假设有两个视图viewA和viewBviewA依赖viewB并且查询语句都有条件 -- create viewA as select * from viewB where 条件; viewA使用with cascaded check option viewB使用with local check option 1、当向viewA插入数据时MySQL不仅会检查ViewA的视图条件还是检查viewB的条件,二者都满足才能成功插入数据 2、当向viewB插入数据时MySQL只会检查viewB的视图条件不管viewA条件如果满足就能成功插入数据 视图的更新问题
一般的视图都会随着关联表数据变化而更新
有一些情况下视图是不会更新的如果视图包含以下任何一项则该视图不可更新 1. 视图使用了聚合函数或窗口函数sum()、 min()、 max()、 count()等 2. distinct 3. group by 4. having 5. union 或者 union all 6.视图包含子查询 7.联接join 8.存储过程和触发器
上一篇MySQL了解视图View 视图篇 一