数据库之视图
创始人
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的所有列,否则在插入数据时将会报错。

相关内容

热门资讯

分享一款!吉安中至小程序微信辅... 分享一款!吉安中至小程序微信辅助(揭露辅助工具)本来有透视指引进入游戏-大厅左侧-新手福利-激活码辅...
记者揭秘!潮汕来物局开挂方法(... 记者揭秘!潮汕来物局开挂方法(详情辅助工具)一贯有透视方针潮汕来物局开挂方法破解侠是真的助透视。每个...
今日公布!湘竞技辅助(普及辅助... 今日公布!湘竞技辅助(普及辅助工具)一贯有透视妙招1、进入游戏-大厅左侧-新手福利-激活码辅助透视技...
实测必看!闲逸亲友圈辅助下载(... 实测必看!闲逸亲友圈辅助下载(必备辅助器)原来有透视烘培1、金币登录送、破产送、升级送、活动送。详细...
来一盘!上饶打炸漏洞(总结辅助... 来一盘!上饶打炸漏洞(总结辅助攻略)一直有透视法门1)上饶打炸漏洞有没有挂:进一步探索上饶打炸漏洞有...
安装程序教程!广西友乐免费辅助... 安装程序教程!广西友乐免费辅助使用视频(曝光辅助工具)真是有透视教材1、进入游戏-大厅左侧-新手福利...
今日焦点!福建兄弟十三水挂件去... 今日焦点!福建兄弟十三水挂件去那买(有挂辅助方法)其实有透视办法1、金币登录送、破产送、升级送、活动...
揭秘一下!情怀莆仙外挂(了解辅... 揭秘一下!情怀莆仙外挂(了解辅助技巧)切实有透视办法所有人都在同一条线上,像星星一样排成一排,每一代...
教程攻略!广东雀神智能插件辅助... 教程攻略!广东雀神智能插件辅助脚本(揭露辅助方法)竟然有透视资料1、全新机制【广东雀神智能插件辅助脚...
今日公布!同城游破解版下载(分... 今日公布!同城游破解版下载(分享辅助教程)竟然有透视模块1、完成同城游破解版下载辅助器v3.3的残局...