视图的操作
为什么使用视图
为了提高复杂SQL语句的复用性和表操作的安全性,MySQL数据库管理系统提供了视图特性。所谓试图,本质上是一种虚拟表,其内容与真实的表相似,包含一系列带有名称的列和行数据。但是,视图并不在数据库中以储存数据的形式存在。行和列数据来自定义属兔的查询所引用的基本表,并且在具体引用试图时动态生成。
视图使程序员只关心感兴趣的某些特定数据和他们所负责的特定任务。这样程序员只能看到视图中所定义的数据,而不是视图所引用表中的数据,从而提高数据库中的数据安全性。
视图特点如下:
- 视图中的列可以来自于不同的表,是表的抽象和在逻辑意义上建立的连接
- 视图是由基本表(实表)产生的表(虚表)
- 视图的建立和删除不影响基本表
- 对视图内容的更新(添加、删除和修改)直接影响基本表
- 当视图来自多个基本表时,不允许添加和修改
视图的操作包括创建视图,查看试图,删除试图,修改视图,进行操作前首先要确保具有CREATE TABLE的权限,并且同时确保对创建视图所引用的表也具有相应的权限
创建视图
创建视图的语法格式形式:> CREATE VIEW view_name AS 查询语句
和建表一样,视图名不能和表明重复、也不能和其他视图名重复,视图其实时封装了查询功能。
CREATE VIEW view_selectproduct
AS
SELECT id,name
FROM t_poduct;
#创建一个名为view_selectproduct的视图,把查询语句封装起来起了一个别名,以便以后重复使用
SELECT * from view_selectproduct;
除此之外,视图还可以封装其他各种各样的函数
查看视图
在使用MySQL数据库管理系统中查看视图可以使用SHOW TABLES、SHOW TABLE STAUS、SHOW CREATE VIEW等,要使用这些之前首先要确保具有SHOW VIEW的权限。
SHOW TABLEs;
删除视图
删除时可以同时删除多个视图
DROP VIEW view_name [,view_name1];
修改视图
使用CREATE OR REPLACVIEW语句修改视图
对于已经创建好的表,尤其是由大量数据时的表通过先删除,在按照新的表定义重新创建需要做许多额外步骤,但是视图由于时虚表,并没有储存数据,所以完全可以通过该方式来做。也可以使用CREATE OR REPLACE VIEW view_name 来实现替换的创建试图语法
CREATE OR REPALCE VIEW view_selectproduct as SELECT name FROM t_product;
使用ALTER语法修改视图
ALTER VIEW view_selectproduct AS SELECT name FROM t_product;
通过视图来修改基本表数据
添加数据操作
INSERT INTO view_product(id,name,price,order_id)VALUES(11,'PEAR4',12.3,2);
删除数据操作
DELETE FROM view_product WHERE name='apple';