这三个我们称之为MSQL当中的存储对象, 还有一个叫做存储函数
视图,说白了创建的时候并不执行select语句,等使用视图的时候再将存储的select语句走一波。
一. 视图的定义
视图是一种虚拟存在的表, 视图当中的数据并不是在数据库中实际存在, 而是在实际的表中, 视图只是说, 我们查询到的一个数据的表现形式. 是动态生成的.
简而言之, 视图不保存数据, 而是保存了查询的SQL的逻辑, 数据的来源是基本表, 叫基表, 所以我们在创建视图的时候, 的主要的工作就是创建这条查询的SQL语句上.
1.创建视图
create [or replace] view 视图名称[(列名列表)] as select语句 [with [cascaded|local] check option]
CREATE VIEW
view_user_name_and_age
AS
SELECT
NAME , age
FROM
tb_user
WHERE
age > 50
2.查询视图
查看创建视图的语句
SHOW CREATE
VIEW
view_user_name_and_age
查看视图的数据
作为一张表去查
3.修改视图
有两种语法
CREATE OR REPLACE VIEW
view_user_name_and_age
AS
SELECT
NAME , age
FROM
tb_user
WHERE
age <= 50
和
ALTER VIEW
view_user_name_and_age
AS
SELECT
NAME , age
FROM
tb_user
WHERE
age <= 50
4.删除视图
DROP VIEW
IF EXISTS
view_user_name_and_age
5.检查选项:作用于往视图中添加数据之时
级联
避免往视图中插入数据时,插入和创建视图时定义的条件不相符的数据
本地
6.更新视图数据:必须满足条件才能更新视图的数据
这个条件就是视图和基表的元组必须是一对一的关系
也就是说
创建视图时,使用了
聚合函数
distinct去重关键字
group by
。。。
不满足于基表的元组一对一了
不能更新视图的数据
7.视图的作用
视图最好就是只用来查询,不要用来增删改
定义视图后,可以看成一张表来用去查询
那么就能用来储存复杂的DQL
二. 存储过程
1.什么是存储过程, 有什么用途
很明显,视图存储的是查询语句
当一个业务逻辑需要去进行多种sql操作时
就相当于多次请求
存储过程就可以做到一次请求中存储一套sql的操作
从而优化数据的访问压力
2.基本语法
创建
create