关于视图

创建视图和索引

※视图常常被称为虚表。在视图被创建以后,你可以对视图采用如下命令:select,insert,

update,delete。
※索引是与磁盘上数据的存储方式不同的另外一种组织数据的方法。

◎使用视图

※视图并不占用数据库或表的物理空间。
※创建视图的语法如下:
CREATE VIEW <view_name></view_name>[(col1,col2...)]
AS SELECT <col_names></col_names>
FROM <table_names> </table_names> ;

※视图可以是多级的,也就是可以用视图来创建视图。但这会加大维护工作的复杂性。

1。列的重命名

注意:
当在视图中使用SQL的计算功能时,SQL会要求你给出一个虚字段的名字,这是可以理解,因为象

COUNT(*)或AVG(PAYMENT)是不能作为列名的。

2。SQL对视图的处理过程

※运行SELECT语句-->查找表-->未找到-->查找视图。

3。在SELECT语句中的使用约束

在视图的SELECT语句中:
※不能使用UNION操作。
※不能使用ORDER BY子句,但在视图中,使用GROUP BY子句可以有ORDER BY子句相同的功能。

4。在视图中修改数据

在视图创建以后,就可以用Insert,Update,Delete语句来更新,插入,删除视图中的数据。

5。在视图中修改数据的几个问题

※对于多表视图,不能使用DELETE语句。
※除非底层表的所有非空列都已经在视图中出现,否则,你不能使用Insert语句。有这个限制的原

因是SQL不知道该将什么数据插入到NOT NULL限制列中(没有在视图中出现的)。
※如果对一个归并的表格插入或更新记录,那么所有被更新的记录必须属于同一个物理表。
※如果你在创建视图时使用了DISTINCT语句,那么你就不能插入或更新这个视图中的记录。
※你不能更新视图中的虚拟列(它是用计算字段得到的)。

6。通用应用程序的视图

下面有几个视图需要完成的任务:
※提供了用户安全功能。
※可以进行单位换算。
※创建一个新的虚拟表格。
※简单的结构化复合查询。

-->视图与安全性
-->在单位换算中使用视图
-->在视图中使用简单的结构化复合查询

7。删除视图的语句

DROP VIEW view_name;

注意:该命令会使所有与DROP掉的视图相关联的视图不能正常运行。一些数据库系统甚至会将所有

与DROP掉的视图相关联的视图也删除掉。

 

### MySQL视图学习资源汇总 以下是针对MySQL视图的相关学习资料整理,帮助理解其概念、用途及实现方法: #### 1. 基础概念与入门 视图是一种虚拟表,基于SQL查询的结果集定义。它并不实际存储数据,而是通过底层基础表的数据动态生成[^1]。 视图的主要作用在于简化复杂的SQL查询逻辑,提供更高的安全性和抽象层次。 ```sql -- 创建视图示例 CREATE VIEW example_view AS SELECT column1, column2 FROM table_name WHERE condition; ``` 上述代码展示了如何创建一个简单的视图[^3]。 --- #### 2. 高级应用与场景分析 视图可以用于多种高级应用场景,例如权限控制、复杂查询封装等。对于需要频繁执行相同查询的情况,视图能够显著减少重复工作量[^2]。 此外,在多表联结的情况下,可以通过视图隐藏底层表结构的复杂性,使最终用户只需关注高层业务需求即可完成操作。 --- #### 3. 实际案例解析 假设有一个名为`orders`的订单表和一个名为`customers`的客户表,我们希望快速获取特定客户的订单详情,则可通过如下方式构建视图: ```sql -- 构建跨表联合查询视图 CREATE VIEW customer_orders AS SELECT c.customer_id, c.name, o.order_date, o.total_amount FROM customers c JOIN orders o ON c.customer_id = o.customer_id; ``` 此视图允许开发者无需每次都编写冗长的连接语句就能访问所需信息。 --- #### 4. 查看现有视图的方法 如果想知道当前数据库中的所有视图名称,可运行以下命令: ```sql SELECT TABLE_NAME FROM information_schema.VIEWS WHERE TABLE_SCHEMA = 'your_database_name'; ``` 这条语句会返回指定数据库下的全部视图列表。 --- #### 推荐参考资料清单 - **官方文档**: MySQL官方网站提供了详尽的技术手册,涵盖了从初学到精通各个阶段的知识点。 - **在线课程平台**: 如Coursera、Udemy上也有不少专注于关系型数据库管理系统的培训项目可供选择。 - **书籍推荐**:《High Performance MySQL》是一本非常经典的书目,深入探讨了包括视图在内的众多优化技巧。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值