概念
什么是视图?
其实视图就是相当于一个虚拟表,它并不是真实存在数据的一张数据表,而是作为一个查询语句保存在数据库中的
作用
视图可以帮助我们在使用大量重复编写sql的时候可以使用视图来代替,比如编程中封装一个方法来让多个地方都可以直接调用,降低了开发成本,而且相对来说更加安全
语法
单表
首先我们需要创建一个视图
CREATE VIEW emp AS SELECT * FROM employees;
上面这行sql代表我们创建了一个名字叫emp的视图
那么我们怎么使用这个视图呢?
很简单!只需要和普通查询一样即可:
SELECT * FROM emp;
多表关联
那么我们来演示一下关联查询,其实和之前我们写普通的关联查询没啥区别:
CREATE VIEW emp2 AS
SELECT d.*, e.last_name as `name`, e.salary as salary
FROM employees e LEFT JOIN departments d
ON e.department_id = d.department_id;
然后使用也是一样的:
SELECT * from emp2;
条件查询
那么我们肯定不是简简单单的查询一下表中的全部数据而已,我们肯定是需要去查询某一些特定条件该怎么办呢?
比如我们之前使用的条件查询为:
SELECT * FROM employees e WHERE e.salary = 7000; // 原使用普通sql语法
那么怎么去根据条件查询视图中的数据呢? 其实一模一样!!!
SELECT * from emp2 e WHERE e.salary = 7000;
修改视图的查询语句
那么修改视图我们可以使用CREATE OR REPLACE或者ALTER
直接安排:
CREATE OR REPLACE
这个关键字使用可以修改视图,如果该视图不存在,则创建!而我们上面写的创建视图的CREATE VIEW则是不存在就创建,存在则报错!
CREATE OR REPLACE VIEW emp2 AS SELECT * FROM employees;
ALTER
而使用ALTER时,如果视图不存在,则会报错!并且一般使用ALTER来更新字段使用
ALTER VIEW emp2 AS SELECT * FROM departments;
总结
视图的使用语法其实和平常我们写sql并没有太大区别,但是视图可以帮助我们减少复杂且重复的sql语句编写,更方便管理,同时视图也可以进行对基表的插入更新等操作,但是我们不建议这样使用,一般我们只用来查询操作