25、MySQL的视图

MySQL 8.0.25 图书馆管理系统:7张核心表与15个存储过程实战解析 本文详细解析了MySQL 8.0.25在图书馆管理系统中的实战应用,包括7张核心表的设计与15个存储过程的实现。通过范式化设计和业务逻辑封装,展示了如何构建高效、安全的数据库系统,适用于课程设计和实际开发场景。 阅读详情

好处:
1、简化sql语句,实现代码的重用,隐藏业务逻辑
2、保护数据
3、改变数据格式
案例1:创建视图

mysql> select cust_name, cust_contact from customers c, orders o, orderitems oi where c.cust_id = o.cust_id and o.order_num = oi.order_num and cust_contact = 'Y Sam';
+----------------+--------------+
| cust_name      | cust_contact |
+----------------+--------------+
| Yosemite Place | Y Sam        |
+----------------+--------------+
1 row in set (0.08 sec)

创建视图

mysql> create view vcust as select cust_name, cust_contact from customers c, orders o, orderitems oi where c.cust_id = o.cust_id and o.order_num = oi.order_num;
Query OK, 0 rows affected (0.03 sec)

mysql> select * from vcust;
+----------------+--------------+
| cust_name      | cust_contact |
+----------------+--------------+
| Coyote Inc.    | Y Lee        |
| Coyote Inc.    | Y Lee        |
| Coyote Inc.    | Y Lee        |
| Coyote Inc.    | Y Lee        |
| Coyote Inc.    | Y Lee        |
| Coyote Inc.    | Y Lee        |
| Coyote Inc.    | Y Lee        |
| Coyote Inc.    | Y Lee        |
| Wascals        | Jim Jones    |
| Yosemite Place | Y Sam        |
| E Fudd         | E Fudd       |
+----------------+--------------+
11 rows in set (0.09 sec)

查看如何创建视图

mysql> show create view vcust;
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+
| View  | Create View                                                                                                                                                                                                                                                                                                      | character_set_client | collation_connection |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+
| vcust | CREATE ALGORITHM=UNDEFINED DEFINER=`ding`@`%` SQL SECURITY DEFINER VIEW `vcust` AS select `c`.`cust_name` AS `cust_name`,`c`.`cust_contact` AS `cust_contact` from ((`customers` `c` join `orders` `o`) join `orderitems` `oi`) where ((`c`.`cust_id` = `o`.`cust_id`) and (`o`.`order_num` = `oi`.`order_num`)) | utf8mb4              | utf8mb4_general_ci   |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+
1 row in set (0.09 sec)

删除视图

drop view vcust;

视图内容的格式化

mysql> create view v_vendor as select concat(ltrim(vend_name), ' (', vend_country, ')') from vendors;
Query OK, 0 rows affected (0.17 sec)

mysql> select * from v_vendor;
+---------------------------------------------------+
| concat(ltrim(vend_name), ' (', vend_country, ')') |
+---------------------------------------------------+
| Anvils R Us (USA)                                 |
| LT Supplies (USA)                                 |
| ACME (USA)                                        |
| Furball Inc. (USA)                                |
| Jet Set (England)                                 |
| Jouets Et Ours (France)                           |
+---------------------------------------------------+
6 rows in set (0.07 sec)

视图过滤功能,同上
计算字段视图,非动态的计算字段

mysql> create view orderprice as select prod_id, quantity, item_price, (quantity * item_price) as totle from orderitems;
Query OK, 0 rows affected (0.03 sec)

mysql> select * from orderprice;
+---------+----------+------------+---------+
| prod_id | quantity | item_price | totle   |
+---------+----------+------------+---------+
| ANV01   |       10 | 5.99       | 59.90   |
| ANV02   |        3 | 9.99       | 29.97   |
| TNT2    |        5 | 10.00      | 50.00   |
| FB      |        1 | 10.00      | 10.00   |
| JP2000  |        1 | 55.00      | 55.00   |
| TNT2    |      100 | 10.00      | 1000.00 |
| FC      |       50 | 2.50       | 125.00  |
| FB      |        1 | 10.00      | 10.00   |
| OL1     |        1 | 8.99       | 8.99    |
| SLING   |        1 | 4.49       | 4.49    |
| ANV03   |        1 | 14.99      | 14.99   |
+---------+----------+------------+---------+
11 rows in set (0.09 sec)

视图是虚拟表,速度相同
6、视图是否可以更新? 可以,但有条件
不可以包含个group by 信息
不可以包含子查询
不可以包含max min avg sum
不可以包含计算字段
不可以包含distinct唯一值

MySQL查看视图 查看视图是查看数据库中已存在的视图的定义。查看视图必须要有SHOW VIEW权限,MySQL数据库下的user表中保存着这个信息。查看视图的方法包括DESCRIBE、SHOW TABLE STATUS和SHOW CREATE VIEW,本节将介绍查看视图的各种方法。 阅读详情

相关推荐

MySQL操作之视图

一、概念 二、视图管理 2.1、创建视图语法格式 2.2 创建视图 2.3 查看视图 2.4 修改视图 2.5 更新视图 2.6 删除视图

lydms的博客 2367

MySQL 第22章、第23章、第24章 、第25章 使用视图、使用存储过程、使用游标、使用触发器

MySQL 第22章、第23章、第24章 、第25章 使用视图、使用存储过程、使用游标、使用触发器使用视图视图为什么使用视图视图的规则和限制使用视图利用视图简化复杂的联结用视图重新格式化检索出的数据用视图过滤不想要的数据使用视图与计算字段更新视图使用存储过程存储过程为什么要使用存储过程使用存储过程执行存储过程创建存储过程删除存储过程使用参数建立智能存储过程检查存储过程使用游标游标使用游标创建游标打...

Avery123123的博客 383

25.11 MySQL 视图

在MySQL中, 视图(View)是一个虚拟的表, 其内容由查询定义.视图并不存储数据, 它只包含定义视图的SQL语句, 也因此视图占用的内存空间相对较少.当查询视图时, MySQL会执行这些SQL语句并返回结果.视图在多种场景下都非常有用, 以下是一些建议何时使用视图的情形:* 1. 简化复杂的SQL查询: 当你有一个复杂的SQL查询, 并且这个查询被多个地方重复使用, 你可以将这个查询定义为一个视图.这样, 每次需要这个查询的结果时, 只需要简单地查询这个视图即可.

清风 797

MySQL一次大量内存消耗的跟踪

*GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。线上使用MySQL8.0.25的数据库,通过监控发现数据库在查询一个视图(80张表的union all)时内存和cpu均明显上升。在8.0.25 MySQL Community Server官方版本测试发现:只能在视图上进行数据过滤,不能将视图上的过滤条件下推到视图内的表上进行数据过滤。8.0.29以后的版本已解决该问...

老叶茶馆 239

Modelsim安装教程以及管理员身份运行patch_dll.bat时找不到文件mgls.dll的解决

Modesim安装教程 Modesim版本有很多,但是安装方式大都相同,我们以modesim.10.5为例,电脑使用的是win10 64位,讲一下安装过程中的步骤以及出现问题的解决方法 一 安装 1.首先解压安装包,在解压的安装包内选择应用程序,右键选择管理员运行。 2.稍等一会,有的电脑会弹出是否允许modesim进行更改,选择 是 即可,然后出现下面的界面,点击下一步。 3.弹出此界面选择安装路径,选择安装路径,我是在D盘新建的文件夹,直接把文件夹中的路径复制在框内。文件夹名称切记不要带中文 4.

weixin_48564372的博客 1万+

从分立到集成:深入解析Buck电路的核心模块与设计权衡

本文深入解析Buck电路的核心模块与设计权衡,从分立到集成方案的优缺点对比。详细探讨Buck电路的高效能量转换、小型化设计及灵活电压调节能力,并结合实际案例分享分立方案中的PWM生成、反馈环路设计及保护电路优化经验,为工程师提供实用设计参考。

weixin_29306317的博客 225

django使用MySQL的视图

环境 django:2.1.7 python:3.7.0 MySQL:5.7.25 MySQL可视工具navicat 1.创建数据表 classroom表 student表 late表 然后在navicat创建视图 然后在models.py同级目录下创建一个.py文件 代码示例,记得要添加一个主键,django规定每个表必须有一个主键。其他的视图都可以放在...

一个小白的求知路 1664

(project generation have a problem)STM32CubeMX生成工程一直报错项目生成有问题[玄学三步解]

解决办法 第一步,检查自己是不是真的配置的不对,JAVA安装没,pack路径设置的对不对,这里有一位前辈的博文写的非常好,附加链接https://blog.youkuaiyun.com/ybhuangfugui/article/details/52225736#commentBox 第二步,如果按照前辈的博文设置的都一模一样,还是不对,想我下图这样。 那你来对地方了 方法很简单,你把你生成工程文件的路径彻底的...

展桑博客-BenjieBlog 2925

MySQL一次大量内存消耗跟踪

社群推送的这篇文章《MySQL一次大量内存消耗的跟踪》介绍一个和视图检索相关的SQL调优的案例,学习借鉴一下。线上使用MySQL8.0.25的数据库,通过监控发现数据库在查询一个视图(80张表的union all)时内存和cpu均明显上升。在8.0.25 MySQL Community Server官方版本测试发现:只能在视图上进行数据过滤,不能将视图上的过滤条件下推到视图内的表上进行数据过滤。8...

bisal的专栏 203

SpringBoot+Vue实现图片上传

SpringBoot+Vue实现图片上传

叶♥璃 2731

Dify智能体开发:Dify文件上传

相较于聊天文本,文档文件能够承载大量的信息,例如学术报告、法律合同。受限于 LLM 自身仅能够支持文件或图片,难以获取文件内更加丰富的上下文信息,应用的使用者不得不手动复制粘贴大量信息与 LLM 对话,增加了许多不必要的使用成本。

王国平的博客 2591

由mysql将视图数据导入Spss,发现别名字段数据不准确

工具: mysql8.0.19 spss25.0.0 表结构: 创建视图: DEFINER VIEW `db2020`.`prime_gap` AS SELECT `p`.`id` AS `id`, `p`.`val` AS `val`, (`p1`.`val` - `p`.`val`) AS `gap` FROM (`db2020`.`prime` `p` LEFT JOIN `db2020`.`prime` `p1` ON (((`p`.`id` + 1

u012632105的博客 534

基于Spring Security 6的OAuth2 系列之二 - 客户端--非代码演示授权码模式

至此,我们就使用浏览器+postman工具演示了通过授权码模式去获取Gitee的用户信息。这过程中,我们只是遵循OAuth2的流程,就能够实现授权方法。那么接下来,我们采用代码方式来实现这个流程。

代码让AI扣 1813

mysql基础知识

1,(以5.5.25版本为例) 安装(确保系统上没有安装过mysql,如有先卸载)wget http://mirror.services.wisc.edu/mysql/Downloads/MySQL-5.5/MySQL-devel-5.5.25a-1.el6.x86_64.rpmwget http://mirror.services.wisc.edu/mysql/Dow...

weixin_34138139的博客 77

AI智算-K8s+vLLM & Ray:DeepSeek-r1 671B 满血版分布式推理部署实践

自从上次发布 【AI-智算】K8s+SGLang实战:DeepSeek-r1:671b满血版多机多卡私有化部署全攻略] 文章后,本次将演示另一个主流推理引擎工具——vLLM,结合K8s、LWS、Ray、Volcano等技术栈,部署DeepSeek-r1 671b 满血版分布式推理集群,并对比其与SGLang推理引擎的性能表现。

Kason_iWiki 1826

【DaVinci Developer工具实战】03 -导入xml文件

本文档描述了 DaVinci Developer 导入数据的的具体功能 ,它适用于导入AUTOSAR SWC 模板【AUTOSAR XML 文件】 文件。

1991

Windows7 上安装 MySQL 5.7.25 及 数据库基础知识

Windows7 上安装 MySQL 5.7.25 及 数据库基础知识 基础环境:windows7 旗舰版 、mysql5.7.25 mysql软件安装 1、下载安装包:mysql官网,选择需要的版本。 2、解压安装包到相应的目录,我解压到了 E:\software\mysql-5.7.25,其余安装流程参考: 文档1,文档2 3 、初始化过程中,出现 缺失MSVCR120.DLL问题,解决方法参...

qq_40102852的博客 286

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

计算机二级MySQL大题系列03-基础操作必考题

做了很多套二级MySQL大题,要进行一个总结。这一部分是第一道大题,一般五个问题。25分到手!

深竹清风的博客 1151

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

TiDB 与MySQL的兼容性

截止版本:TiDB 2.1.5版本 比对的版本:MySQL 5.7.25版本 1.SQL语法 1.create table tablename as select * from t; (CTAS不支持) 2. Savepoints 3.LOCK TABLE 4.CHECK TABLE 5.CHECKSUM TABLE 2.对象: 1.不支持view 2.不支持...

vkingnew 的技术博客 2895

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'information_schema'

在处理这个问题(https://www.cnblogs.com/abclife/p/11038660.html)的时候,开发同学在最后修改视图的definer的时候又遇到了以下的报错信息: ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'information_schema'   ...

weixin_30877755的博客 6243

阿里愚公支持mysql到mysql吗_阿里数据库迁移项目yugong

摘要: 阿里数据库迁移项目yugong开源啦!yugong解决了单机Oracle无法满足的扩展性问题,当时也掀起一股去IOE项目的浪潮,愚公这项目因此而诞生,其要解决的目标就是帮助用户完成从Oracle数据迁移到MySQL上,完成去IOE的第一步。DBA的小伙伴们赶快来围观!项目简介yugong(意译:愚公)项目是阿里的开源项目,该项目使用纯Java开发,主要作用是进行数据库迁移,目前该项目主要支...

weixin_42107561的博客 427

数据库课程设计-图书馆管理系统(2.数据库实现-基于mysql)

好像有读者说现在不要积分的资源也要vip才能下,如果下不了可以留邮箱到评论区或者私聊,我也把资源放到github了,地址如下:如果对你有帮助不妨点个star 拜谢数据库选用mysql 8.0.25 64位, 配合使用navicatmysql可以在主页下载安装包,或者网上自己搜索数据库安装配置可以参考网上的教程,有很多人都做了教程,例如这篇博文navicat的安装可参考这篇博文安装好navicat和mysql后先启动mysql服务,然后使用navicat进行连接,连接成功后点击新建查询。

web15117360223的博客 1167

MySQL 8.0 学生选课系统:3表设计与20+经典SQL查询实战

本文详细介绍了基于MySQL 8.0的学生选课系统三表设计(学生表、课程表、学生选课表)与25个经典SQL查询实战。从基础查询到多表连接、聚合函数、子查询等高级技巧,全面覆盖数据库应用场景,帮助开发者掌握MySQL数据库设计与查询优化。

weixin_30718391的博客 323

MySQL 视图(详解)

文章目录一,视图概念使用视图的原因二,创建视图(1)基本语法(2)创建基于单表的视图【实例 1】【实例 2】(3)创建基于多表的视图【实例 3】(4)查询视图【实例 4】三,查看视图1、查询表(包括view)2、查询视图四,修改视图(1)基本语法(2)修改视图内容【实例 1】【实例 2】(3)修改视图名称五,删除视图(1)基本语法(2)删除视图【实例】六,通过视图更新基本表数据(1)INSERT语句通过视图添加数据基本格式【实例1】(2)DELETE语句通过视图删除数据基本格式【实例2】(3)UPDATE语

梁辰兴的博客 5万+

MySQL 视图(详解)& navicat如何创建视图

CREATE VIEW view_tr_student AS (查询语句)其中是视图名字,“查询语句”对应的是要创建视图的表数据。

qq_43842093的博客 6068
上一篇: 24、MySQL的更新和删除
下一篇: 26、MySQL存储过程
dingpython
博客等级 码龄6年 5粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值