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】 存储过程名
标签:---,存储,--,数据库,MySQL,视图,学习,SQL From: https://blog.51cto.com/u_16220922/7835466