视图就是自己创建的一张虚表,使人方便查询
视图的使用规则和限制条件
- 和数据表一样,视图也必须拥有一个唯一不重复的名字(一般是在库的范围内)
- 对于视图的创建是没有数量限制
- 创建视图的时候,必须有对应的权限,权限一般由数据库管理员授予
- 视图和视图之间是可以实现连表查询和嵌套查询的
- order by 的排序语句可以在视图中使用,如果创建视图的查询语句中存在order by 针对视图查 询结果排除的语句将被覆盖
- 视图中不可以使用索引、触发器、设置默认值
视图使用
- CREATE VIEW 创建视图
- SHOW CREATE VIEW 视图名 查看视图创建的语句
- DROP VIEW 视图名 删除视图
- 更新一个视图的数据,可以先使用DROP删除视图,然后使用create 创建视图,简化版使用 CREATE OR REPLACE VIEW 如视图存在就先删除,再创建,如果视图不存在则直接创建
导致视图更新数据失败的操作
一般是在创建视图的时候,使用了一些可能导致数据无法写入对应底层数据表的语句
- group by having
- 连表 JOIN子查询(select )
- UNION 联合查询
- 聚合函数
- distinct
- 列之间的计算 concact() 计算总价的例子
查询库中的视图
select table_name from information_schema.TABLES where table_type='VIEW' andTABLE_SCHEMA =' 库命 ' ;
存储过程
MySQL
对于存储过程的使用也叫作调用。调用的意思就是直接使用存储过程名称以及相关参数.
调用
CALL
存储过程名(
@
单个语句调用的名称);
创建
CREATE PROCEDURE 名字
BEGIN // 开始
SQL 语句 最好使用 as 对这个SQL语句命名,方便后期调用
END // 结束
DELIMITER // # 设置语句结尾为 //
删除
DROP PROCEDURE 名字
查看存储过程的参数
SHOW CREATE PROCEDURE 名字
查看指定库中的存储程序
show procedure status where db=' 数据库名 ';