Mysql 视图是一个虚拟表,内容由 select 查询语句定义, 同真实的表数据一致, 但是视图并不在数据库中以存储的数据值形式存在。
试图引用自定义查询表的字段, 并且在引用试图时动态生成, 对其所引用的基础表来说 Mysql 视图的作用类似于筛选。
toc
定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。
视图查询没有任何限制,通过它们进行数据修改时的限制也很少。
视图是存储在数据库中的 SQL 查询语句,它主要出于两种原因:
安全原因, 视图可以隐藏一些敏感的信息。
简化查询, 使复杂的查询易于理解和使用
创建视图
创建单表视图环境准备
## 创建表
mysql> use test;
mysql> create table t2(
id int primary key AUTO_INCREMENT not null,
name varchar(30) not null,
sex enum('man','gril') default 'man' not null,
time date not null,
post varchar(50) not null,
job varchar(100),
salary double(15,2) not null,
dep_id int
);
## 插入数据
mysql> insert into t2(name,sex,time,post,job,salary,dep_id) values
('jack','man','20180202','it','teach',5000,100),
('tom','man','20180203','it','teach',5500,100),
('robin','man','20180202','it','teach',8000,100),
('alice','gril','20180202','it','teach',7200,100),
('lisi','man','20180202','hr','hrcc',600,101),
('harry','man','20180202','hr', NULL,6000,101),
('trf','gril','20180206','sale','salecc',20000,102),
('test','gril','20180205','sale','salecc',2200,102),
('dog','man','20180205','sale', NULL,2200,102),
('alex','man','20180205','sale'