为什么使用视图
为了提高SQL语句的复用性和表操作的安全性,MySQL提高了视图特性。所谓视图,本质就是一种虚拟表,其内容与真实的表相似,包含一系列带有名称的列和行数据。但是视图并不在数据库中以存储的数据值形式存在。行和列的数据来自定义视图的查询所引用基本表,并且在具体引用视图时动态生成。
视图使程序员只关心感兴趣的某些特定数据和他们所负责的特定任务。这样程序员只能看到视图所定义的数据,而不是视图所引用表中的数据。从而提高了数据库中数据的安全性。
视图的特点:
- 视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系。
- 视图是由基本表(实表)产生的表(虚表)。
- 视图的建立和删除不影响基本表。
- 对视图内容的更新(添加,删除和修改)直接影响基本表。
- 当视图来自多个基本表时,不允许添加和删除数据。
创建视图
在创建视图时,需要保证拥有create view的权限,并且同时确保对创建视图所引用的表也具有相应的权限。
1.创建视图
create view view_name
as
查询语句;
2.用show tables;
查看会发现多了一个视图
3.利用视图进行查询
这样可以实现信息的隐藏,提高表的安全性,而且如果想在多个地方使用该查询功能,只需要使用该视图即可。
查看视图
查看视图名
show tables;
查看视图详细信息
show table status from dbname \G
查看视图定义信息
show create view viewname
查看视图设计信息
desc viewname
删除视图
drop view view_name;
修改视图
create or replace view 修改视图
create or replace view view_name
as
查询语句
查看设计信息并执行
alter修改视图
alter view viewname
as
查询语句
查看设计信息并执行
利用视图操作基本表
通过视图查询数据,与通过表查询数据完全相同,只不过通过视图查询更安全,更简单
创建view_product视图
利用视图添加数据
利用视图修改数据
利用视图删除数据