【MYSQL笔记】使用视图
视图:
将select的结果像表一样保留下来的虚表就是视图。
视图不是表,视图中没有保存记录或列中的数据。
视图是一种信息,用于查询记录。
视图的用途:
用户可以按照想要的条件手机某表某列的数据
从用户的角度来看,视图和表在使用上并没有什么区别。和表一样,视图也可以进行select和update。如果更新视图的记录,基表的记录也会更新。
另外,对于一些不能被修改的重要数据,我们可以只让管理员等具有特殊权限的人来操作相关的表,同时再准备了一个收集了无关紧要部分的视图,这样就比较安全。
此外,数据库高级用户可以为初学者创建容易理解的视图来代替不易理解的表,这也是视图的用途之一。
定义视图:
create view 视图名 as select 列名 from 表名 where 条件;
上述语句表示对select的记录create view。
例:员工信息表tb由员工号(id),姓名(name),年龄(age)组成,试着创建没有员工号,只包含姓名和年龄两个列的视图v1。
create view v1 as
select name,age from tb;
通过视图更新列的值:
视图只显示了基表的一部分。因此,如果更新了基表的值,收集并显示基表值的视图的值也会更新。然而,如果更新视图的值,基表的值也会随之更新。
例:将视图v1中姓名为'a'的姓名改为jake
update v1 set name='jake' where name='a';
设置条件创建视图:
例:销售信息表tb:id,sales,month 人员信息表tb1 id ,name ,age
在tb中提取销售额大于等于100万元的记录,创建由id,sales,和name构成的视图v2
create view v2 as
select tb.id,tb1.name,tb1.sales
from tb
join tb1
using (id)
where tb.sales>=100;
在符合视图设置条件的情况下,如果基表更新,视图中的记录也会随之更新。设置了条件的视图始终会显示与条件相匹配的记录。
确认视图:
show tables;
确认存在哪些视图。视图会和表交织在一起。
desc 视图名;//显示视图的列结构
限制通过视图写入:
对视图执行insert和update操作是 有限制的。例如,在使用union,join,子查询的视图中,不能执行insert和update。但是只是从一个表中提取子列,就可以insert和update。
通过设置条件创建基图的插入:
例:销售信息表id,sales,month、以销售额大于等于100万元为条件,创建仅包含销售信息表tb的列id和列salesd 的视图v3
create view v3 as
select id,sales
from tb
where sales>=100;
当向视图中插入不符合视图条件的记录:
insert into v3 values('a',50);
结果:
视图v3显示不出插入的记录,基表tb显示了记录。即当通过视图insert记录时,即使与where条件不匹配,数据也会直接输入到基表中。
但是,对于有条件限制的视图,无条件输入记录有时候会带来一定的麻烦。另外,从视图中输入的记录无法在该视图中确认也是一件很麻烦的事。
为了应对这些情况,可以将视图设置为不接受与条件不匹配的记录。
可以在使用create view 创建视图时,加上with check option
create view v4as
select id,sales
from tb
where sales>100with check option;
如果试图插入不符合条件的记录,就会发生错误。
替换视图:
create or replace view v1
as
select..;
or replace删除已经存在同名的视图,创建新的视图。
修改视图结构:
alter view 视图名 as select 列名 from 表名;
通过下面的操作,可以让当前的视图v1中包含表tb1的列和列age
alter view v1
as select name,age
from tb;
删除视图:
drop view 视图名;
【MYSQL笔记】使用视图相关推荐
- mysql view none,MySQL笔记之视图的使用详解
什么是视图 视图是从一个或多个表中导出来的表,是一种虚拟存在的表. 视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据. 这样,用户可以不用看到整个数据库中的数据,而之关心对自己有用的数据. 数 ...
- MySQL笔记之视图的使用详解
为什么80%的码农都做不了架构师?>>> 什么是视图 视图是从一个或多个表中导出来的表,是一种虚拟存在的表. 视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据. 这样, ...
- 【MySQL笔记】视图的创建与使用(VIEW)
视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图.比如,针对一个公司的销售人员,我们只想给他们看部分数据,而某些特殊的数据,比如采购的价格,则不会提供给 ...
- MySQL 笔记7 -- 权限操作与视图
MySQL 笔记7 – 权限操作与视图 MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 SQL 教程 一.权限 ...
- 朝花夕拾 Mysql笔记3
朝花夕拾 Mysql笔记3 欢迎扫码关注微信公众号 "野心与家" 点击此处回顾上一篇 : 朝花夕拾 Mysql笔记2 6.1 事务管理 > 6.1.1 事务的概念 所谓的事务 ...
- SQL MySQL 笔记
SQL与MySQL笔记 文章目录 SQL与MySQL笔记 环境配置&基础常识 RDMS相关概念 MySQL Workbench Navicat SQL基础语法 书写风格 SQL语句分类 SQL ...
- x509mysql_涂抹mysql笔记-数据库中的权限体系
涂抹mysql笔记-数据库中的权限体系 <>能不能连接,主机名是否匹配.登陆使用的用户名和密码是否正确. mysql验证用户需要检查3项值:用户名.密码和主机来源(user.passwor ...
- 六天带你玩转Mysql笔记--第五天
六天带你玩转Mysql笔记--第五天 1.外键 1.1增加外键 1.2修改外键&删除外键 1.3外键作用 1.4外键条件 1.5外键约束 2联合查询 2.1基本语法 2.2意义 2.3 ord ...
- 【MySQL笔记】正确的理解MySQL的MVCC及实现原理
MVCC多版本并发控制 如果觉得对你有帮助,能否点个赞或关个注,以示鼓励笔者呢?!博客目录 | 先点这里 !首先声明,MySQL 的测试环境是 5.7 前提概要 什么是 MVCC 什么是当前读和快照读 ...
- 基础+优化+架构一键搞定,华为大佬的“百万级”MySQL笔记
前言 MySQL不用多说,大家都知道它是目前最为活跃热门的开源数据库,由于成本低,操作简易的特点,所以在互联网企业中被广泛使用,即使是头部的BATJ.由此可见,想要在互联网行业混得风生水起,或者说想要 ...
最新文章
- 朴素贝叶斯分类器简介及C++实现(性别分类)
- 公众号接口,memcached缓存
- 帆软finereport实现动态切换分组和列表模式
- C++ Primer 5th笔记(9)chapter9 顺序容器 构造和赋值
- 认清SQL_Server_2005的基于行版本控制的两种隔离级别
- HDU 1525 Euclid's Game
- Java学习二:Javac Java的学习(原创)
- oracle sql语句 只读,Oracle_SQL语句
- Windows10桌面美化推荐之Dock栏
- 使用Instruments中的CoreAnimation分析动画
- 我眼中未来的人机交互
- python3处理大文件
- 视觉SLAM十四讲学习1 环境配置
- Importing the numpy c-extensions failed 解决方案
- FPGA与ASIC对比
- 使用FreeMarker导出固定格式word文档
- Python修改文件名
- 优酷路由器刷openwrt固件一
- 平衡树(splay)学习笔记(详细,从入门到精(bao)通(ling))(持续更新)
- OFDM学习笔记(一)(OFDM技术简介)