SQL的学习
  p8RyuvESu2pg 2023年11月02日 44 0

 MySQL数据库的应用技术---视图

什么是视图

英文: view ---看见得东西

为什么需要视图

存在问题

复杂得查询语句:每一次使用都需要编写,执行,能不能只写一次,后面可以重复调用--需要共享

希望表中的一些字段分享的时候不被其他用户看见,只让其他用户获取我想让他看见的数据

可不可将查询语句进行封装,简化子查询操作

最终的目的就是希望保存sql语句,简化调用执行过程,掩藏数据

解决问题

需要一个技术来实现功能,需要一个有名字的空间存储想要做的事情

需要的时候调用,MySQL中提供了视图

视图的概述

视图是一个存储数据库中虚表,视图表中没有数据,只有映射关系,真正的数据在视图关联的实际的表中

视图创建方法

create view 视图 as 查询语句

使用视图 和使用表是一样的

查看视图

desc 视图名字

select * from information_schema.VIEWS;

show create view 视图名字

删除视图

drop view 视图名

注意事项

因为视图存在数据中的映射关系,也是占用存储空间,不能随意创建视图

视图关联的表可能被删除,出现视图还在,表不在  

创建视图考虑复用性和使用性

主要的应用场景---【保护数据,选择性分享数据】 

DML语句【最核心 最重要】--- 操控数据

insert update delete  

select【难点重点】

投影查询

选择查询

连表查询

子查询

视图

有一个小问题的出现

原本: 数据库只负责数据存储 修改 获取 删除,数据的处理都交给了业务代码。

后来:后来随着我们的业务越来越大,越来越复杂数据也越来越大,数据库获取数据传输到代码中处理,输出传速度以及代码业务处理压力,但数据库很闲--- 将业务处理转换一部分到数据,常规处理,一次select,两次update,为了解决问题,要求数据库中可以编写业务---开发了一门语言--plsql(依赖数据库环境的语言)

plsql

一门类似c的语法的完整地数据库端地编程语言【完整度--数据库大小】  

探索---完整地plsql【Oracle 数据】

MySQL中plsql支持地比较晚,支持语法有所欠缺   

MySQL中支持俩种方式编写业务脚本

存储过程

自定义函数

MySQL中不能做的

离开这俩个载体自由编写业务代码块

MySQL中的存储过程

解释:存储类似函数的一种定义规范,或者封装代码规范

创建语法

create procedure 【if not exists】 存储名(【[in/out/inout] 参数名 参数类型...】)

备注

存储过程名:标识符的定语语法规范 要求--以pro_开头

参数:可以有0个或多个参数,是我们在调用存储过程的时候需要传入的数据,

参数前面可以加in/out/inout等标识,标识参数类型

in---调用者传入的信息

out--用户存储过程执行过程需要返回给调用者的数据,存储            

定义信息:编写注释信息

定义变量: 用户定义变量存储信息

存储过程业务:编写业务

创建一个简单的存储过程

存储过程业务内容以begin 开头 以end结束

数据库中 每一句语句都以;结束

遇到;就以为结束

为了解决分号的问题--提供方式就是临时将结束符号改成其他符号

语法: delimiter 临时结束符号-- //或者$$

调用存储过程

call 存储过程名字(实参列表);

删除存储过程

drop procedure【if exists】 存储过程名

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: Oracle内存 下一篇: mysql 物理备份xtrabackup
  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  xaeiTka4h8LY   2024年05月17日   42   0   0 数据库JavaSQL
  xaeiTka4h8LY   2024年05月17日   40   0   0 数据库SQL
  xaeiTka4h8LY   2024年05月17日   33   0   0 MySQL数据库
p8RyuvESu2pg
作者其他文章 更多