mysql视图学习

作者: StrongZhao | 来源:发表于2017-05-06 17:04 被阅读215次

视图

  视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。视图具有表结构文件,但不存在数据文件。
  对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。
  视图是存储在数据库中的查询的sql语句,它主要出于两种原因:安全原因,视图可以隐藏一些数据,如:用户银行卡信息,可以用视图只显示姓名,用户手机号,而不显示银行卡账号、金额等,另一原因是可使复杂的查询易于理解和使用。

  • 创建视图

命令格式:create [or replace] [algorithm = {undefined | merge | temptable}] [definer = {用户名| current_user}] [sql security {definer | invoker }] view 视图名称 [(column_list)] as select_statment [with [cascaded | local] check option];

ex:

#登录mysql
mysql -uroot -proot
#使用数据库
use demo;
#为student表创建名为student_view的视图
create algorithm = temptable definer=current_user sql security definer view sudent_view(name,age,gender) as select name,age,gender from student;
#查看student_view视图结构
show create view student_view;

ps:视图名必须唯一,同时不能与表重名。 视图可以使用select语句查询到的列名,也可以自己指定相应的列名。可以指定视图执行的算法,通过algorithm指定。column_list如果存在,则数目必须等于select语句检索的列数

  • 查看视图结构

    命令格式: show create view 视图名称

ex:

#查看student_view结构
show create view student_view;
#查看数据库中有哪些视图,table_type中类型是view
show full tables;
  • 删除视图

命令格式: drop view [if exists] 视图名称,.....

  删除视图后,数据依然存在。可同时删除多个视图。

#删除student_view,teacher_view
drop view if exists student_view,teacher_view;
  • 修改视图结构

命令格式: alter view 视图名称 [(字段列表)] as select_statement;

ex:

#创建student视图
create view student_view as select * from student;
#修改视图结构
alter view student_view as select id,name,age,gender from student;

ps: 一般不修改视图,因为不是所有的更新视图都会映射到表上。

  • 视图作用

    1. 简化业务逻辑
    2. 对客户端隐藏真实的表结构
  • 视图算法(algorithm)

算法 名称 解释
merge 合并 将视图的查询语句,与外部查询需要先合并再执行!
temptable 临时表 将视图执行完毕后,形成临时表,再做外层查询!
undefined 未定义(默认) 指的是MySQL自主去选择相应的算法。

相关文章

  • mysql视图学习

    视图 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据...

  • MySQL之视图

    SQL语言之视图 前言 本章我们将学习MySQL中的视图,视图是数据库中的重要组件,本文将从视图是什么,视图的作用...

  • 【MYSQL】-1 使用视图

    本周学习了,本文对于之前还未掌握的视图操作进行总结。 视图是什么? 视图是用于查看存储在别...

  • MySQL学习 5 视图

    1. 视图 视图(view)可以看做一张虚拟表,是表通过某种运算得到的一个投影。 既然视图只是表的某种查询的投影,...

  • MySQL学习之视图

    一、视图的概念 MySQL从5.0.1版本开始提供视图功能。一种虚拟存在的表,行和列的数据来自定义视图的查询中使用...

  • MySQL笔记

    MySQL学习笔记 [toc] 登录和退出MySQL服务器 基本语法 正则表达式 字段拼接 分组 全文搜索 视图 ...

  • mysql高级:视图、事务、索引

    # mysql高级:视图、事务、索引 * 视图 * 事务 * 索引 * 账户管理 * 主从 ## 1.视图 动态抽...

  • MySQL--索引

    MySQL索引 查看索引 创建索引 创建唯一索引 创建主键索引 删除索引 删除主键 MySQL视图 创建视图 删除...

  • mysql视图,触发器,存储过程优缺点及应用分析

    mysql视图,触发器,存储过程优缺点及应用分析 视图 mysql使用较少,是sql server和orcale使...

  • 数据库

    一、MySQL中视图与表的区别 1.1 MySQL中视图和表的区别以及联系 视图是已经编译好的SQL语句,是基于S...

网友评论

    本文标题:mysql视图学习

    本文链接:https://www.haomeiwen.com/subject/qyzetxtx.html