视图
视图只保存了查询的SQL逻辑,不保存查询结果。
#1.创建视图
CREATE [OR REPLACE] VIEW 视图名称[(列名列表)] AS SELECT语句 [ WITH [ CASCADED | LOCAL ] CHECK OPTION ]
#2.查看创建视图语句:
SHOW CREATE VIEW 视图名称;
#3.查看视图数据:
SELECT * FROM 视图名称 ...... ;
#4.修改视图
ALTER VIEW 视图名称[(列名列表)] AS SELECT语句 [ WITH [ CASCADED | LOCAL ] CHECK OPTION ]
#5.删除视图
DROP VIEW [IF EXISTS] 视图名称 [,视图名称] ...
检查选项:
**CASCADED 级联**
v2视图是基于v1视图的,如果在v2视图创建的时候指定了检查选项为 cascaded,
但是v1视图创建时未指定检查选项。 则在执行检查时,**不仅会检查v2,还会级联检查v2的关联视图v1**。
**LOCAL 本地**。
比如,v2视图是基于v1视图的,如果在v2视图创建的时候指定了检查选项为 local ,
但是v1视图创建时未指定检查选项。 则在执行检查时,知会检查v2,不会检查v2的关联视图v1。
*存储过程
存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合。
优点:
- 封装,复用 -----------------------> 可以把某一业务SQL封装在存储过程中,需要用到的时候直接调用即可。
- 可以接收参数,也可以返回数据 --------> 再存储过程中,可以传递参数,也可以接收返回值。
- 减少网络交互,效率提升 -------------> 如果涉及到多条SQL,每执行一次都是一次网络传输。 而如果封装在存储过程中,我们只需要网络交互一次可能就可以了
-- 创建
DELIMITER $$
CREATE PROCEDURE 存储过程名称 ([ IN/OUT/INOUT 参数名 参数类型 ])
BEGIN
-- SQL语句
END ;
DELIMITER ;
-- 调用存储过程
CALL 存储过程名称(参数)
--查看存储过程
show create procedure 存储过程名称;
--删除存储过程
drop procedure if exists 存储过程名称;
*索引(Index)
索引(index)是帮助MySQL**高效获取数据的数据结构**(有序)
--1.创建索引
CREATE [ UNIQUE | FULLTEXT ] INDEX 索引名称 ON 表名 (索引列名称列表) ;
--2.查看索引
SHOW INDEX FROM 表名 ;
--3.删除所有
DROP INDEX 索引名称 ON 表名 ;