mysql视图使用收藏

整理视图相关语法和样例,方便后续使用;
认识视图:
1、视图是一个虚拟表,其内容由查询定义。
2、视图是从一个、多个表或者视图中导出的表,包含一系列带有名称的数据列和若干条数据行。
3、视图具有如下优点:

  • 定制用户数据,聚焦特定的数据
  • 简化数据操作
  • 提高基表数据的安全性
  • 共享所需数据
  • 更改数据格式
  • 重用 SQL 语句

4、要区别视图和数据表的本质,即视图是基于真实表的一张虚拟的表,其数据来源均建立在真实表的基础上。

【创建视图】

语法格式:

CREATE VIEW <视图名> AS <SELECT语句>

语法说明:

  • <视图名>:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。
  • <SELECT语句>:指定创建视图的 SELECT 语句,可用于查询多个基础表或源视图。

验证样例:

-- 1、查询user表数据
SELECT * from user;
-- 2、创建视图view_user_info
-- 无法使用 IF NOT EXISTS关键词
CREATE VIEW  view_user_info as SELECT * from user;

-- 3、查询视图view_user_info 
select * from view_user_info

-- 4、创建视图view_user_info2
create view view_user_info2(id, u_name, u_city, u_area, u_score, u_datetime) 
as select id, username, city, area, score, datetime from user;
select * from view_user_info2;

-- 5、基于多表创建视图
CREATE view view_order_user(order_id, u_id, u_name, order_title, order_price)
as SELECT tb_order.id, user.id, user.username, tb_order.title, tb_order.price
from tb_order, user
where tb_order.user_id = user.id;

SELECT * from view_order_user;
【查看视图】
-- 查看指定视图结构;
describe view_order_user;

-- 查看创建视图信息
SHOW CREATE VIEW view_user_info2;

-- 7、查看所有视图列表
SHOW FULL TABLES WHERE Table_type = 'VIEW';
【修改视图】

语法格式:

ALTER VIEW <视图名> AS <SELECT语句>

语法说明:

  • <视图名>:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。
  • <SELECT 语句>:指定创建视图的 SELECT 语句,可用于查询多个基础表或源视图。

修改视图内容:

  1. 视图是一个虚拟表,实际的数据来自于基本表,所以通过插入、修改和删除操作更新视图中的数据,实质上是在更新视图所引用的基本表的数据。
  2. 对视图的修改就是对基本表的修改,因此在修改时,要满足基本表的数据定义。
  3. 对于可更新的视图,视图中的行和基本表的行之间必须具有一对一的关系。
-- 8、修改视图view_user_info
-- SELECT * from view_user_info;
-- 需求:只保留id, username, city, area 四列数据;
ALTER view view_user_info
as SELECT id, username, city, area from user;
SELECT * from view_user_info;

-- 通过update修改view_user_info数据
update view_user_info set area='大理' where id=1; #修改真实表中id=1 area字段值;

-- 修改视图字段与实际表字段一致情况
describe view_user_info2;
update view_user_info2 set u_city='福建' where id=1; #修改成功, 

-- 修改通过count统计的字段值 
create view view_user_count(u_count) as select count(*) from user;

select * from view_user_count;
-- 聚合函数 SUM()、MIN()、MAX()、COUNT()等值不能进行修改;
# update view_user_count set u_count = 10; #修改失败
#1288 - The target table view_user_count of the UPDATE is not updatable


-- 通过delte删除view_user_info数据
DELETE from view_user_info where id=7; #删除真实表数据
【删除视图】

语法格式:

DROP VIEW <视图名1> [ , <视图名2>]

其中: <视图名> 指定要删除的视图名。DROP VIEW 语句可以一次删除多个视图,但是必须在每个视图上拥有 DROP 权限。

DROP VIEW IF EXISTS view_user_info; 

参考文档:http://www.voidme.com/mysql/mysql-drop-view

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值