数据库之——视图(学习笔记)

1.什么是视图

      1.视图是一种虚拟的表,是从数据库中一个或者多个表中导出来的表。

      2.数据库中只存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中。

      3.使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。

2.视图的作用

    1.使操作简单化

    2.增加数据的安全性

    3.提高表的逻辑独立性

3.创建视图

            

CREATE[ALGORITHM={UNDEFIEND |MERGE |TEMPTABLE }] VIEW 视图名 [( 属性清单) ] ASSELECT 语句 [WITH[ CASCADED|LOCAL]CHECKOPTION ];
ALGORITHM 是可选参数,表示视图选择的算法; “视图名”参数表示要创建的视图的名称; “属性清单”是可选参数,其指定了视图中各种属性的名词,默认情况下与 SELECT 语句中查询的属性相同; SELECT 语句参数是一个完整的查询语句,标识从某个表查出某些满足条件的记录,将这些记录导入视图中; WITH CHECK OPTION 是可选参数,表似乎更新视图时要保证在该视图的权限范围之内;


ALGORITHM 包括 3 个选项 UNDEFINED、MERGE 和 TEMPTABLE。其中,UNDEFINED 选项表示 MySQL 将 自动选择所要使用的算法;MERGE 选项表示将使用视图的语句与视图定义合并起来,使得视图定义的某一部分 取代语句的对应部分;TEMPTABLE 选项表示将视图的结果存入临时表,然后使用临时表执行语句;CASCADED 是可选参数,表示更新视图时要满足所有相关视图和表的条件,该参数为默认值;LOCAL 表示更新视图时,要 满足该视图本身的定义条件即可;

视图是一张虚表,只能查询

3.1在单表上创建视图:

t_product原表:

创建视图v1:CREATE VIEW v1 AS SELECT name,price FROM t_product

查询视图v1:SELECT * FROM v1

结果:

可对视图字段重新命名

创建视图v2:CREATE VIEW v2(n,p) AS SELECT name,price FROM t_product

查询视图v2:SELECT * FROM v2

查询结果:

3.1在多表上创建视图:

在多表上创建视图就是把多张表关联起来当作一张表来查询

创建视图:create view v3 as select bookName,bookTypeName from t_book,t_booktype where t_book.bookTypeId=t_booktype.id

查询视图:select * form v3

4.查看视图

   4.1 DESCRIBE  语句查看视图基本信息

        语句:DESC v1  

        结果下图:

        

   4.2 SHOW TABLE STATUS 语句查看视图基本信息

       语句:show table status like 'v1'

       结果:如下图,除了name和comment字段外其它都是空的,说明是一张虚表,原表查询基本都又数据

 

 

 4.3 SHOW CREATE VIEW 语句查看视图详细信息

show create view v1

 4.4 在views表中查看视图详细信息

4.修改视图

4.1 CREATEORREPLACEVIEW 语句修改视图

create or replace view v1(bookName,price) as select bookName,price form t_book

4.2 ALTER 语句修改视图

5.更新视图

更新视图是指通过视图来插入(INSERT)、更新(UPDATE)和删除(DELETE)表中的数据。因为视图是一个虚 拟的表,其中没有数据。通过视图更新时,都是转换基本表来更新。更新视图时,只能更新权限范围内的数据。 超出了范围,就不能更新。

5.1 插入(INSERT) 

插入数据跟正常表一样,

INSERT INTO v1 VALUES('测试111','9999')

结果:

5.2 更新(UPDATE)

UPDATE v5 SET NAME='测试222',price='200' WHERE id = '12'

5.3 删除(DELETE)
删除视图是指删除数据库中已存在的视图。删除视图时,只能删除视图的定义,不会删除数据;

DROP VIEW [ IF EXISTS ] 视图名列表 [ RESTRICT|CASCADE]

DROP VIEW IF EXISTS v1

猜你喜欢

转载自blog.csdn.net/weixin_39941298/article/details/81050506
今日推荐