-
视图:为了提高复杂SQL语句的复用性和表操作的安全性,在具体操作表前,有时候要求操作者只能操作部分字段,而不是全部字段,mysql数据库管理系统提供了视图特性。所谓视图,本质上是一张虚拟表,其内容与真实表相似,包含一系列带有名称的列和行数据。但是,视图并不在数据库中已存储数据值得形式存在。行和列数据来自定义视图的查询所引用的基本表,并在具体引用视图时动态生成。
-
视图使程序员只关心感兴趣的某些特定数据和它们所负责的特定任务。这样程序员只能看到视图中所定义的数据,而不是试图所引用表的数据,从而提高数据库中数据的安全性。
-
视图的特点:
- 视图的列可以来自不同的表,是表的抽象和逻辑意义上建立的新关系。
- 视图是由基本表(实表)产生的表(虚表)。
- 视图的建立和删除不影响基本表。
- 对视图内容的更新(添加、删除和修改)直接影响基本表。
- 当视图来自多个基本表时,不允许添加和删除数据。
-
创建视图:虽然试图可以看成是一种虚拟表,但是其在物理上是不存在的,即数据库管理系统没有专门的位置为视图存储数据。则根据视图的概念可以发现其数据来源于查询语句,因此,创建视图的语法为:CREATE VIEW view_name AS 查询语句,例如:CREATE VIEW view_select AS SELECT id,name FROM users;视图创建成功后即可进行查询视图操作:SELECT *FROM view_select;执行此操作后就会在视图中显示users表中的id和name字段的所有信息。可以创建多种形式的视图,如:
- (1)封装实现查询常量的视图:CREATE VIEW view_name SELECT number(常量);
- (2)封装使用聚合函数(SUM、MIN、MAX、COUNT)查询语句的视图:CREATE VIEW view_name AS SELECT COUNT(name) FROM users;
- (3)封装了实现排序功能(ORDER BY)查询语句的视图:CREATE VIEW view_name AS SELECT name FROM users ORDER BY id DESC;
- (4)封装了实现表内连接查询的语句。
- (5)封装了实现表外连接(LEFT JOIN和RIGHT JOIN)查询语句的视图。
- (6)封装了实现子查询相关查询语句的视图。
- (7)封装了实现记录联合(UNION和UNION ALL)查询语句的视图。
-
查看视图
- SHOW TABLES;可以查看表明和视图名;
- SHOW TABLES STATUS FROM VIEW;查看数view据库里视图和表的详细信息。
- SHOW CREATE VIEW view_name;查看关于视图的定义信息。
-
删除视图:DROP VIEW view_name;
-
修改视图
- 在先要修改视图的一些信息时我们可以先将原先的视图进行删除,然后在创建一个满足要求的新的视图,这样是完全可行的,但这样也是繁琐的。于是,mysql为了便于用户修改视图,提供了可替换的创建视图语法:CREATE OR REPLACE VIEW view_name AS SELECT name FROMR users;把原先在users表上创建的视图修改。
- 通过ALTER语句修改视图:ALTER VIEW view_name AS SELECT name FROM users;
-
通过视图操作基本表
- 查询:SELECT *FROM view_name;
- 插入:INSERT INTO view_name (id,name,price) VALUES(11, ‘pear4’, 12);
- 删除:DELETE view_name WHERE name =‘apple’;
- 更新:UPDATE view_name SET price=3.5 WHERE name = ‘pear1’;
mysql中的视图
最新推荐文章于 2022-02-10 21:28:27 发布