1、视图:(了解内容)
就是站在不同的角度去看待同一份数据。
视图是MySQL服务器中的一个对象,用于存储查询语句,目的的提高查询语句的使用效率,避免在多处地方重复性开发相同的查询语句。
- 将查询语句交给一个视图对象来管理:
create view 视图对象名 as 查询语句
例如:create view emp_view as select * from emp where empno = 7369;
- 通过视图对象调用管理查询语句:
select * from emp_view; #该语句调用了select * from emp where empno = 7369;
额外功能:
视图对象存储一个查询语句,同时视图对象拥有对当前查询语句所关联的表文件的操作能力也就是说:可以对所关联的表文件进行增删改的操作。
视图的作用:
* 提高了查询语句的复用性,避免了在多处地方重复进行查询语句的开发。
* 隐藏了业务中涉及到的表关系。增强了私密性。
2、创建与删除视图:
创建视图:
创建表student的视图对象名为student_view.
create view student_view as select * from student;
注意:as 后面只能跟select语句。 只有DQL语句才能以view的形式创建。
删除视图:
drop view student_view;
3、我们用视图来做什么?
我们可以面向视图对象进行增删改查,对视图对象的增删改,会导致原表被操作!
(视图的特点:通过对视图的操作,会影响到原表数据。)
例如:
查询原表:
mysql> select * from student;
创建视图对象:
create view student_view as select * from student;
向视图对象中插入数据
insert into student_view values(1003,'jack','jack@123.com',30);
再次查询原表:
mysql> select * from student;
面向视图删除:
delete from student_view where id = 1003;
4、视图对象在实际开发中到底有什么用?
假设有一条非常复杂的SQL语句,而这条SQL语句需要在不同的位置上反复使用,每次使用该语句的时候都需要重新编写,很长很麻烦。这时就可以把这条复杂的SQL语句以视图对象的形式创建,在需要编写这条SQL语句的位置直接使用视图对象,可以大大简化开发,并且有利于后期维护,因为需要修改的时候也只需要修改一个位置就行,只需要修改视图对象所映射的SQL语句。视图对象也是一个文件,在数据库中以文件的形式存在,存储在硬盘上,关机以后不会消失。我们以后面向视图开发的时候,使用视图就像使用table(表)一样,可以对其进行增删改查的操作。
【小插曲】:
增删改查又叫CRUD。CRUD是公司中程序员之间沟通的术语,一般我们很少说增删改查。都说CRUD
C:create
R:Retrive
U:update
D:delete