mysql 对视图的操作_MYSQL 中视图的操作

数据库中关于数据的查询有时候非常复杂,例如表连接,子查询等,这种查询会让程序员感到痛苦,因为它逻辑复杂、编写语句太多。当这种语句需要重复使用时则不会次次编写都正确,降低了数据库的实用性。

为了提高复杂sql语句的复用性和表操作的安全性,mysql数据库管理系统提供了视图的特性。所谓视图,本质上是一种虚拟表,其内容和真实表相似,包含了一系列带有名称的列和行的数据。但是视图并不是在数据库中以存储的数据值形式存在。行和列数据来自定义视图的查询所引用基本表,并且在具体引用视图时动态生成。

视图的特点:

1 视图的列可以来自不同的表,是表的抽象和逻辑意义上建立的关系。

2 视图是由基本表(实表)产生的表(虚表)。

3 视图的建立和删除不影响基本表。

4 对视图的内容更新(添加、删除、修改)直接影响基本表。

5 当视图来自多个基本表时,不允许添加和删除。

一:创建视图的语法形式

create view view_name AS 查询语句

和创建表一样,视图名不能和表名、也不能和其他视图重名。

例:先创建t_product 表,创建出隐藏价格字段price的视图view_prodect。

1 查询t_product表

431437.html

aca90d8d163feeb03de6f7cb13f5df0c.png

2 创建视图对象,具体创建语句如下:

CREATE VIEW view_product AS SELECT id,name FROM t_product;

032b2c4650b2944704c14f6601ff59e8.png

431437.html

3 查询:

SELECT *FROM view_product;

431437.html

1b8d49d76d2204ba27ba0a8013461188.png

二:创建各种视图

由于视图的功能实际上是封装查询语句,那么是不是任何形式的查询语句都可以封装在视图中呢?

例:分别创建学生和组的表t_student和t_group,如下:

431437.html

4b44ebd0a33247edca582efc8cab6ad8.png

9d9db40300250f3dc357692fa82169a1.png

1 封装实现查询常量语句的视图,(常量视图)

CREATE VIEW view_test1 AS SELECT  3.1415926;

SELECT *FROM view_test1;

431437.html

7f33cfa6ecc754ca67476f70778c9b00.png

2 封装使用聚合函数(SUM MIN MAX COUNT)

CREATE VIEW view_test2 AS SELECT COUNT(NAME) FROM t_student;

431437.html

9018206879e222e580b934c275c142ac.png

3 封装实现排序功能

CREATE VIEW view_test3 AS SELECT name from t_student  ORDER BY id DESC;

431437.html

361b44350fc6b1a017fc03583f85f0c9.png

4 封装内连接查询语句

CREATE VIEW view_test4 AS  SELECT s.name,s.id,s.group_id FROM t_student as s, t_group as g WHERE s.group_id=g.id and g.id=2;

b2056f0de1763394a9e90e33bf55ae34.png

三:查看视图

语法形式:

SHOW TABLES;

ff2404709d2d9f1d4e359ec924734d7b.png

四:删除视图

语法形式:

DROP VIEW view_name;

656474ac7b347ae2566e2b4659f0899f.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值