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

妖狐艹你老母 2022-05-20 07:42 461阅读 0赞

1.什么是视图

  1. 1.视图是一种虚拟的表,是从数据库中一个或者多个表中导出来的表。
  2. 2.数据库中只存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中。
  3. 3.使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。

2.视图的作用

  1. 1.使操作简单化
  2. 2.增加数据的安全性
  3. 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原表:

70

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

查询视图v1:SELECT * FROM v1

结果:

70 1

可对视图字段重新命名

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

查询视图v2:SELECT * FROM v2

查询结果:

70 2

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 语句查看视图基本信息

  1. 语句:DESC v1
  2. 结果下图:
  3. ![70 3][]

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

  1. 语句:show table status like 'v1'
  2. 结果:如下图,除了namecomment字段外其它都是空的,说明是一张虚表,原表查询基本都又数据

70 4

70 5

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

show create view v1

70 6

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

4.修改视图

4.1 CREATEORREPLACEVIEW 语句修改视图
70 7

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

4.2 ALTER 语句修改视图
70 8

5.更新视图

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

5.1 插入(INSERT)

插入数据跟正常表一样,

INSERT INTO v1 VALUES(‘测试111’,’9999’)

结果:

70 9

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

发表评论

表情:
评论列表 (有 0 条评论,461人围观)

还没有评论,来说两句吧...

相关阅读

    相关 mysql数据库视图

    视图(view)是一种虚拟的存在,视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。 通俗的讲,视图之保存了查询的sq

    相关 数据库视图

    数据库之索引 1、索引是对数据库表中的一个或者多个列的值进行排序的结构,索引有助于更快的获取信息。 2、索引是经过某种算法优化的,因而查找次数要少的多,索引是用来定位的

    相关 OpenGL学习笔记——视图

    顶点变换的步骤: 视图与模型变换一起组成了模型视图矩阵,这个矩阵作用于物体坐标,产生视觉坐标。紧接着,如果指定了其他的裁剪平面,用于从场景中删除某些物体或者提供物体的裁剪视

    相关 数据库视图

    1、以一个具体需求展开: 跨用户访问另外一个 用户的表?希望得到雇员的全部信息和部门名称?但是hr用户不希望把薪水这一列提供给scott用户? 在这里插入图片描述 --...