文章目录

  • 1、视图概念
  • 2、视图的使用
  • 微信公众号

1、视图概念

视图(View)是一种虚拟存在的表。视图并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。通俗的讲,视图就是一条SELECT语句执行后返回的结果集。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上

视图相对于普通的表的优势主要包括以下几项

  • 简单:使用视图的用户完全不需要关心后面对应的表的结构、关联条件和筛选条件,对用户来说已经是过滤好的复合条件的结果集
  • 安全:使用视图的用户只能访问他们被允许查询的结果集,对表的权限管理并不能限制到某个行某个列,但是通过视图就可以简单的实现
  • 数据独立:一旦视图的结构确定了,可以屏蔽表结构变化对用户的影响,源表增加列对视图没有影响;源表修改列名,则可以通过修改视图来解决,不会造成对访问者的影响

2、视图的使用

创建视图的语法为

CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
选项 : WITH [CASCADED | LOCAL] CHECK OPTION 决定了是否允许更新数据使记录不再满足视图的条件。LOCAL : 只要满足本视图的条件就可以更新。CASCADED : 必须满足所有针对该视图的所有视图的条件才可以更新。 默认值.

创建视图

create view view_city_country as select c.*, t.country_name from city c,country t where c.country_id = t.country_id;


查看视图数据

select * from view_city_country;


更新视图基础数据

 update view_city_country set city_name = '西安市' where city_id = 1;


更新成功后再查询视图


实际上这里更新的视图的基础数据,也就是说,原表的数据也被更改了


修改视图的语法为

ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]

和创建视图的一模一样,只是create关键字变为了alter

alter view view_city_country as select c.*, t.country_name from city c,country t where c.country_id = t.country_id;

MySQL5.1开始后,可以使用show tables查看所有表和视图名字


可以使用show create view view_name查看视图的创建语句


删除视图语法

DROP VIEW [IF EXISTS] view_name [, view_name] ...[RESTRICT | CASCADE]

微信公众号

【MySQL学习】3、MySQL视图相关推荐

  1. MySQL学习(二)——MySQL多表

    MySQL学习(二)--MySQL多表 分页操作:使用limit(参数1,参数2)起始位置(参数1)=(第几页-1)*每页显示的条数(参数2)1.分类表 create table category(c ...

  2. MySql 学习笔记-Mysql架构介绍与查询sql执行流程

    最近花了99元大洋在极客时间 买了 MySQL 实战45讲.学习的同时留下点笔记.该内容仅仅是个人总结笔记,如有涉及版权还请告知. MySql 的简介 MySQL是一个关系型数据库管理系统,由瑞典My ...

  3. MySQL学习之MySQL引擎

    MySQL 的几个重要特性 连通性 MySQL 是在假定的大部分应用都运行在TCP/IP协议的基础上而设计的. SQL 结构化查询语言 数据完整性 通过使用主键和外键约束,MySQL 支持引擎级的数据 ...

  4. mysql学习-初识mysql

    一.数据库的作用和分类 1 数据库的作用 数据存储 2 数据库的优势 规范.查询速度快 3 数据库的分类 关系型数据库:oracle.mysql.mysql server 非关系型数据库:mongo ...

  5. mysql学习笔记---mysql的安装--rpm安装

    安装mysql rpm安装(以mysql 5.7.29为例) 1,在mysql官方网站下载rpm包,将文件传输到linux里 [root@localhost ~]# ls anaconda-ks.cf ...

  6. Mysql学习笔记——mysql服务在win上安装与启动

    1.先去下载服务包 https://dev.mysql.com/downloads/mysql/ 2.下载完成后,解压在D盘 3.添加一个配置文件,先创建文本,填写内容后改名:my.ini 内容为: ...

  7. mysql创建全外连接的视图_「MySql学习」Mysql学习系列之常用数据库查询语句

    一.简单查询 简单的Transact-SQL查询只包括选择列表.FROM子句和WHERE子句.它们分别说明所查询列.查询的表或视图.以及搜索条件等.10.5pt;font-family:"A ...

  8. 【MySQL学习】使用视图、存储过程、游标和触发器

    视图.储存过程.游标和触发器 视图 利用视图简化复杂的联结 用视图重新格式化检索出的数据 用视图过滤不想要的数据 使用视图与计算字段 更新视图 存储过程 为什么要使用存储过程 使用存储过程 执行存储过 ...

  9. php mysql 学习,php+mysql完全学习手册源码

    [实例简介] <php+mysql完全学习手册>(黄桂金.于永军)源码 [实例截图] [核心代码] b82c182d-8fbd-4888-854f-5dc80db47e47 └── php ...

  10. MySQL学习(2)——MySQL表的增删查改(基础)

    1.CRUD CRUD 即增加(Create).查询(Retrieve).更新(Update).删除(Delete) 四个单词的首字母缩写 2.新增(Cteate) 语法: INSERT [INTO] ...

最新文章

  1. Shippable和Packet合作提供原生ARM CI/CD
  2. es获取最大时间的记录_ES查询一段时间内某一循环时间段的数据
  3. Elasticsearch官档翻译——2 2 在Linux上启动服务
  4. Java Socket实现WebSocket服务器
  5. GitHub的AI程序员“抄袭”算法大神代码,连原版注释都抄上了
  6. int0低电平触发c语言,单片机中断的解释.ppt
  7. Ubuntu下svn 版本管理客户端工具及常用方法
  8. rudesocket如何使用_c++ socket 客户端库 socks5 客户端 RudeSocket™ Open Source C++ Socket Library...
  9. Python3连接MySQL
  10. 初学者的React全家桶完整实例
  11. Coinbase在苹果应用商店前100免费应用中排名第30位
  12. 双剑携手良师益友,学习机行业破局在望
  13. 中南大学计算机学院羽毛球赛,我校第四届“四海一家亲”羽毛球邀请赛成功举行...
  14. 混动汽车HEV混合驱动的MPC控制
  15. C语言 Mkl 矩阵乘法,MKL库矩阵乘法
  16. 软件测试项目实战,适合大家练习的实战项目有。
  17. feedburner怎么用_新手RSS订阅使用指南
  18. 展锐哪些芯片支持伽利略Galileo定位系统
  19. 【TS】泛型 Generics
  20. CN-DBpedia备忘

热门文章

  1. python爬虫---拉勾网与前程无忧网招聘数据获取(多线程,数据库,反爬虫应对)
  2. 《郭论—捡史》郭德纲/著 读后得
  3. 用html写简单的座位表,html座位表,随机点名
  4. 网络编程之(转载自:https://www.cnblogs.com/clschao/articles/9593164.html)
  5. 计算机老提示安全证书到期,安全证书过期,教您怎么解决网站安全证书过期
  6. 【python--爬虫】彼岸图网高清壁纸爬虫
  7. ROS之launch文件解析
  8. 有赞实时数仓建设实践与经验
  9. 【JAVA-UT】13、什么是依赖?
  10. ASP.NET项目部署到阿里云服务器(IIS)