视图
? 视图只保存了查询的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 表名 ;
??