Db2创建视图

一、什么是视图

视图实际是一张虚拟表,储存在数据库里面,并没有真实的表结构,不包含数据。反之, 它提供了一种在数据库中存储常用复杂查询的方法。但是,您可以使用SQL SELECT语句SQL SELECT语句来访问视图数据,就像使用普通表或基表一样。

通过允许用户通过视图访问数据,而不是直接授予整个基表访问权限,视图也可以用作安全机制。

二、语法

使用CREATE VIEW语句创建视图。

CREATE VIEW view_name AS select_statement;

为了清楚说明这一点,我们来看下面这两张表employeesdepartments

假设您要检索雇员的ID和姓名以及他们的部门名称,那么您需要执行【左连接】操作,如下所示:

SELECT t1.emp_id, t1.emp_name, t2.dept_name
FROM employees AS t1 LEFT JOIN departments AS t2
ON t1.dept_id = t2.dept_id;

输出如下:

但是,无论何时要访问此记录,都需要再次键入整个查询。如果您经常执行此类操作,则将变得非常不便和烦人。

在这种情况下,您可以创建一个视图以使查询结果更易于访问,如下所示:

CREATE VIEW emp_dept_view AS
SELECT t1.emp_id, t1.emp_name, t2.dept_name
FROM employees AS t1 LEFT JOIN departments AS t2
ON t1.dept_id = t2.dept_id;

现在,您可以使用视图emp_dept_view访问相同的记录

SELECT * FROM emp_dept_view;

注意:视图始终显示最新数据!每次查询视图时,数据库引擎都会执行与视图关联的SQL查询并重新创建数据。

三、替换现有视图

如果要更新或替换现有视图,则可以删除该视图并创建一个新视图,

如果是MySql数据库也可以使用CREATE VIEW语句中的OR REPLACE子句,如下所示:

CREATE OR REPLACE VIEW emp_dept_view AS
SELECT t1.emp_id, t1.emp_name, t1.salary, t2.dept_name
FROM employees AS t1 LEFT JOIN departments AS t2
ON t1.dept_id = t2.dept_id;

四、删除视图

如果不再需要视图,则可以使用DROP VIEW语句将其从数据库中删除,如以下语法所示:

DROP VIEW view_name;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值