数据库之视图
创始人
2024-11-11 12:09:39
0

目录

一、视图概述

二、创建视图

1.在单表上创建视图

2.在多表上创建视图

三、查看视图

1.查看视图基本信息

2.查看视图定义语句

3.通过views表查看视图详细信息

四、修改视图

1.使用CREATE OR REPLACE VIEW语句修改视图

2.使用ALTER语句修改视图

五、删除视图

六、操作视图中数据

1.修改视图中数据

2.删除视图中数据

3.向视图中插入数据


一、视图概述

视图是从数据库中的一张或多张表中导出的表。创建视图时所引用的表称为基表。视图中的数据并不是像表中那样存储在数据库中,它只是读取基表中的数据。对视图的操作与对表的操作一样,可以对其进行查询、修改和删除等操作。在对视图中的数据进行修改时,相应的基本表中的数据也会发生变化;同时,若基本表的数据发生变化,则这种变化也会反映到视图中。


与直接操作数据表相比,视图主要有以下优势:

简单:视图中看到的即是需要的,用户完全不需要考虑对应的表结构、关联条件和筛选条件。对于用户来说,经常使用的查询可以被定义为视图。

安全:视图可以作为一种安全机制。通过视图,用户只能查看和修改他们所看到的数据,数据库中的其他数据或表既看不见也不可以访问,这样的用户就被限制在了数据的不同子集上。

数据独立:视图可以使应用程序和数据表在一定程度上独立,创建视图之后,应用程序可以建立在视图之上,从而使程序与数据表分隔开来,这样就可以屏蔽表结构变化带来的影响。


二、创建视图

视图可以以一张表为基础创建,也可以以多张表为基础创建。创建视图使用CREATE VIEW语句,其基本语法格式如下:

CREATE [OP REPLACE] VIEW view_name [(column_list)]

AS SELECT_statement;

上述语句中,view_name表示视图的名称,column_list表示视图的字段列表,SELECT_statement表示SELECT语句。

创建视图时应注意以下几点:

定义中引用的任何表或视图都必须存在。如果在创建视图后,删除定义时应用的表或视图,则使用视图时将导致错误。

创建视图不能引用临时表。

SELECT语句中最大列名长度为64个字符。


1.在单表上创建视图

默认情况下,视图的字段名与基表的字段名相同。但是,为了增加数据安全性,也可以为视图字段指定不同的名称。

示例:

CREATE VIEW v_table2(goods_id,goods_name) AS SELECT id,name FROM goods;


2.在多表上创建视图

示例:

CREATE VIEW v_table3(o_id,name) AS SELECT orders.o_id,goods.name FROM goods

JOIN orders ON goods.id=orders.goods_id;


三、查看视图

1.查看视图基本信息

使用DESC语句可以查看视图的结构,其基本语法格式如下:

DESC 视图名;

视图中不存在主键,并且也不能在视图上创建索引,因为它实际上只是一个结果集。


2.查看视图定义语句

使用SHOW CREATE VIEW语句可以查看视图定义语句,其基本语法格式如下:

SHOW CREATE VIEW 视图名;


3.通过views表查看视图详细信息

在MySQL中,所有视图的详细信息都存储在系统数据库information_schema下的views表中。通过views表,可以查看数据库中所有视图的详细信息。

SQL语句如下:

SELECT * FROM information_schema.views \G

主要参数及其意义:

TABLE_CATALOG:表示视图的目录。

TABLE_SCHEMA:表示视图所属的数据库。

TABLE_NAME:表示视图名称。

VIEW_DEFINITION:表示视图定义语句。

IS_UPDATABLE:表示视图是否可以更新。

DEFINER:表示创建视图的用户。

SECURITY_TYPE:表示视图的安全类型。

CHARACTER_SET_CLIENT:表示视图的字符集。

COLLATION_CONNECTION:表示视图的排序规则。


四、修改视图

1.使用CREATE OR REPLACE VIEW语句修改视图

使用CREATE OR REPLACE VIEW语句修改视图的语法形式如下:

CREATE OR REPLACE VIEW view_name [(column_list)] AS SELECT_statement;


2.使用ALTER语句修改视图

使用ALTER语句修改视图的语法形式如下:

ALTER VIEW view_name [(column_list)] AS SELECT_statement;


五、删除视图

使用DROP VIEW语句可删除一个或多个视图。其基本语法格式如下:

DROP VIEW [IF EXISTS] 视图1,......视图n;

其中参数IF EXISTS表示当视图不存在时,系统不会报错;后面的视图名可以有多个,各视图之间用逗号隔开。


六、操作视图中数据

1.修改视图中数据

当视图中的数据被修改,基表中的数据会同时被修改。同样,当基表中的数据被修改,视图中的数据也会被修改。

示例:

UPDATE v_table2 SET goods_name=’雷伊’ WHERE goods_id=1;


2.删除视图中数据

删除视图中数据的方法与删除表中数据相同。

示例:

DELETE FROM v_table2 WHERE goods_id=10;


3.向视图中插入数据

向视图中插入数据的方法与向表中插入数据相同。

示例:

INSERT INTO v_table2 values(10,’红楼梦’,138);

在向视图中插入数据时,应注意视图中必须包含基表中不允许为NULL的所有列,否则在插入数据时将会报错。

相关内容

热门资讯

黑科技辅助!wpk辅助神器(透... 黑科技辅助!wpk辅助神器(透视)软件透明辅助挂(本来是真的有挂)-哔哩哔哩是一款可以让一直输的玩家...
5分钟了解“创思维正版辅助器下... 5分钟了解“创思维正版辅助器下载”详细透视开挂辅助安装-哔哩哔哩;一、创思维正版辅助器下载有挂的是的...
两分钟科普!wpk真吗,哈糖大... 两分钟科普!wpk真吗,哈糖大菠萝可以开挂吗,曝光教程(发现有挂)-哔哩哔哩哈糖大菠萝可以开挂吗辅助...
第一分钟了解(昆仑大厅)外挂辅... 第一分钟了解(昆仑大厅)外挂辅助插件(透视)详细教程(2022已更新)(哔哩哔哩);亲真的是有正版授...
黑科技辅助!wpk俱乐部长期盈... 黑科技辅助!wpk俱乐部长期盈利打法(透视)软件透明挂黑科技(切实存在有挂)-哔哩哔哩;1、让任何用...
第6分钟了解“功夫川嘛辅助器”... 第6分钟了解“功夫川嘛辅助器”详细透视开挂辅助器-哔哩哔哩;人气非常高,ai更新快且高清可以动的一个...
第五分钟辅助!xpoker辅助... 第五分钟辅助!xpoker辅助,德州透视插件,攻略教程(有挂方法)-哔哩哔哩德州透视插件辅助器中分为...
两分钟了解(皮皮跑胡子)外挂透... 两分钟了解(皮皮跑胡子)外挂透明挂辅助工具(辅助挂)透明挂教程(2020已更新)(哔哩哔哩);皮皮跑...
黑科技辅助!微扑克可以加入俱乐... 您好,微扑克可以加入俱乐部这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩...
8分钟了解“掌中乐游戏中心辅助... 8分钟了解“掌中乐游戏中心辅助器”详细透视开挂辅助脚本-哔哩哔哩;1、这是跨平台的掌中乐游戏中心辅助...