MySql教程

MySQL视图

本文主要是介绍MySQL视图,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

视图 (view)  视图 view(保存sql逻辑)   表 table(占用)

  1. 虚拟表: 和普通表一样 mysql5.1版本出现的新特性,通过表动态生成的数据,只保存sql逻辑,不保存查询结果
  2. 应用场景:
    1. 多个地方用到同样的查询结果
    2. 该查询结果使用的sql语句较复杂
    3.  示例:
      CREATE VIEW v1                               创建一个v1的view视图表AS
      select stuname ,majorName
      from stu.stuinfo s
      inner join major m on s.majorid = m.id;
      SELECT * FROM v1 WHERE stuname LIKE '%三'      调用v1的视图表
    4. # 查找job表,employees,department表中员工名包含a的
      use myemployees;
      create view myv1
      as
      select  last_name,department_name,job_title
      from employees e
      join departments d on d.department_id = e.department_id
      join jobs j on j.job_id = e.job_id;
      # 使用
      select * from myv1 where last_name like '%a%';
  3.  创建视图:
    •  create view 视图名
    •     as
    •     查询语句;
  4.  特点:
    1. 重用sql语句
    2. 简化复杂的sql操作,不必知道它的查询细节
    3. 保护数据,提高安全性
  5.  视图的修改
      • create or repacle view 视图名     方式一
      • as
      • 查询语句;
      • alter view 视图名
      • as
      • 查询语句;
  6.  删除视图
    • drop view 视图名,视图名;
  7.  查看视图
    • desc 视图名;
      show create view 视图名
  8.  视图的更新:
    •  insert 可以在视图中使用,也可以对原始表进行更新
    •  update 可以子啊视图中使用,原始表也随之更改
  9.  具备一下特点的视图不允许更新
    • 分组函数 ,distinct,group by,having,union 或者 union all
    • 常量视图 
    • select中包含子查询
    • 含有join语句的连接其他表的
    • from 一个不能更新的视图
    • where子句的子查询引用了from子句中的表
  10.  delete 和 truncate 在事务中使用的区别
    • truncate 在事务中进行了rollback 回滚但是我在回滚之前的truncate操作会永久性的生效,不会受rollback影响。
    • delete 在事务中进行操作,rollback回滚之后回恢复delete之前的状态

变量

  1. 分类
    • 系统变量
      • 全局变量
      • 会话变量
    • 自定义变量
      • 用户变量
      • 局部变量

 

这篇关于MySQL视图的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!