数据库-视图

"""
视图:
select goods.name,goods_cates.name,goods_brands.name from goods,goods_cates,goods_brands where goods.cate_id=goods_cates.id and goods_brands.id=goods.brand_id

太tm的长了.

视图就把这些复杂操作封装起来了,底层给我们进行三张表的合并查询操作.

1.>创建视图:  create view 视图名称 as select 语句<多张表的操作>;

意义:封装了对多张表的复杂操作.

示例:
create view v_goods_info as
 select goods.name gname,goods_cates.name cname,goods_brands.name bname
 from goods,goods_cates,goods_brands 
 where goods.cate_id=goods_cates.id 
 and goods_brands.id=goods.brand_id;

技巧:sql语句很长的时候记得以关键字断句.

注意:字段名不可以重复,有重名的情况下必须起别名

查看:show tables;
所以建议视图以v开头 区别基本表和视图
使用:select 字段 from 视图 where ...;
连接查询也可以,和基本表的操作完全一致

视图只是一个表结构,没有保存任何基本表的表数据.只是一个虚表,不占数据库内存.
在用户需要查询视图的时候,再去基本表中取出对应的数据
只给用户展示指定字段,屏蔽了其他字段,从而显得更安全.

2.>删除视图:
drop view 视图名;
不建议通过视图表去修改基本表的数据
需要修改基本表,直接对基本表进行修改操作即可

"""
# ------------------------------------创建视图:------------------------------->
"""
# create view v_goods_info as select goods.name gname,goods_cates.name cname,goods_brands.name bname 
from goods,goods_cates,goods_brands where goods.cate_id=goods_cates.id and goods_brands.id=goods.brand_id;
show tables;
+--------------+
| Tables_in_jd |
+--------------+
| gongfu       |
| goods        |
| goods_brands |
| goods_cates  |
| hero         |
| v_goods_info |
+--------------+
"""

"""查询视图:

select * from v_goods_info;
+---------------------------------+---------------+-------+
| gname                           | cname         | bname |
+---------------------------------+---------------+-------+
| r510vc 15.6英寸笔记本           | 笔记本        | 华硕  |
| y400n 14.0英寸笔记本电脑        | 笔记本        | 联想  |
| g150th 15.6英寸游戏本           | 游戏本        | 雷神  |
| x550cc 15.6英寸笔记本           | 笔记本        | 华硕  |
| x240 超极本                     | 超级本        | 联想  |
| u330p 13.3英寸超极本            | 超级本        | 联想  |
| svp13226scb 触控超极本          | 超级本        | 索尼  |
| ipad mini 7.9英寸平板电脑       | 平板电脑      | 苹果  |
| ipad air 9.7英寸平板电脑        | 平板电脑      | 苹果  |
| ipad mini 配备 retina 显示屏    | 平板电脑      | 苹果  |
| ideacentre c340 20英寸一体电脑  | 台式机        | 联想  |
| vostro 3800-r1206 台式电脑      | 台式机        | 戴尔  |
| imac me086ch/a 21.5英寸一体电脑 | 台式机        | 苹果  |
| at7-7414lp 台式电脑 linux )    | 台式机        | 宏碁  |
| z220sff f4f06pa工作站           | 服务器/工作站 | 惠普  |
| poweredge ii服务器              | 服务器/工作站 | 戴尔  |
| mac pro专业级台式电脑           | 服务器/工作站 | 苹果  |
| hmz-t3w 头戴显示设备            | 笔记本配件    | 索尼  |
| 商务双肩背包                    | 笔记本配件    | 索尼  |
| x3250 m4机架式服务器            | 服务器/工作站 | ibm   |
| 商务双肩背包                    | 笔记本配件    | 索尼  |
+---------------------------------+---------------+-------+

"""
"""
验证视图是否保存数据:不保存数据,只是在使用的时候直接去基本表获取数据.
在基本表 表中修改了数据之后,在视图中可以查看到,说明视图是依赖于基本表的.
也说明只有在使用视图的时候视图会去调用基本表的数据
# update goods set name='LV包' where id =1;
Query OK, 1 row affected
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from v_goods_info;
+---------------------------------+---------------+-------+
| gname                           | cname         | bname |
+---------------------------------+---------------+-------+
| LV包                            | 笔记本        | 华硕  |
| y400n 14.0英寸笔记本电脑        | 笔记本        | 联想  |
| g150th 15.6英寸游戏本           | 游戏本        | 雷神  |
| x550cc 15.6英寸笔记本           | 笔记本        | 华硕  |
| x240 超极本                     | 超级本        | 联想  |
| u330p 13.3英寸超极本            | 超级本        | 联想  |
| svp13226scb 触控超极本          | 超级本        | 索尼  |
| ipad mini 7.9英寸平板电脑       | 平板电脑      | 苹果  |
| ipad air 9.7英寸平板电脑        | 平板电脑      | 苹果  |
| ipad mini 配备 retina 显示屏    | 平板电脑      | 苹果  |
| ideacentre c340 20英寸一体电脑  | 台式机        | 联想  |
| vostro 3800-r1206 台式电脑      | 台式机        | 戴尔  |
| imac me086ch/a 21.5英寸一体电脑 | 台式机        | 苹果  |
| at7-7414lp 台式电脑 linux )    | 台式机        | 宏碁  |
| z220sff f4f06pa工作站           | 服务器/工作站 | 惠普  |
| poweredge ii服务器              | 服务器/工作站 | 戴尔  |
| mac pro专业级台式电脑           | 服务器/工作站 | 苹果  |
| hmz-t3w 头戴显示设备            | 笔记本配件    | 索尼  |
| 商务双肩背包                    | 笔记本配件    | 索尼  |
| x3250 m4机架式服务器            | 服务器/工作站 | ibm   |
| 商务双肩背包                    | 笔记本配件    | 索尼  |
+---------------------------------+---------------+-------+

"""
posted @ 2019-12-26 10:11  砚台是黑的  阅读(211)  评论(0编辑  收藏  举报