mysql学习-视图简单实现

本文深入解析了SQL视图的基本概念,包括视图的创建、使用、修改和删除的方法。介绍了视图的优点,如简化查询、增强数据安全性及逻辑独立性,同时也指出了其可能存在的性能问题和修改限制。

基本概念

视图是一个虚拟表,是sql的查询结果,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据,在使用视图时动态生成。视图的数据变化会影响到基表,基表的数据变化也会影响到视图[insert update delete ] ; 创建视图需要create view 权限,并且对于查询涉及的列有select权限;使用create or replace 或者 alter修改视图,那么还需要改视图的drop权限。

优点

1.简单化,所见即所得
2.安全性,用户只查询修改能见到得到的数据
3.逻辑独立性,屏蔽真实结构变化带来的影响

缺点

1.性能较差,简单查询也变得稍显复杂
2.修改不方便,特别是复杂的聚合视图基本无法修改

视图的创建

CREATE VIEW shitu1 AS SELECT 姓名,年龄,工作 FROM mytable1;

视图的使用

SELECT * FROM shitu1

视图的修改

有两种方式

CREATE OR REPLACE VIEW shitu1 AS SELECT 工作,姓名,年龄 FROM mytable1 WHERE 工作 IS NOT NULL;
ALTER VIEW shitu1 AS SELECT 工作,姓名,年龄 FROM mytable1 WHERE 工作 IS NOT NULL;

视图的删除

DROP VIEW shitu1;
### 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
发出的红包

打赏作者

静安书以沫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值