索引与视图--视图

什么是视图
视图与表有很多类似的地方,视图也是由若干个字段以及若干条记录构成,视图也可以作为select语句的数据源
甚至在某些特定条件下,可以通过视图对表进行更新操作
视图中保存的仅仅是一条select语句,视图中的源数据都来自于数据库表,数据库表称为基本表或者基表,视图称为虚表

视图的概念
视图于表不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,对视图的数据进行操作时,系统根据视图的定义去操作于视图相关联的基本表

视图一经定义,就可以像表一样被查询、修改、删除、和更新。

视图的优点
1.为用户集中数据,简化用户的数据查询和处理
2.屏蔽数据库的复杂性
3.简化用户权限的管理
4.便于数据共享
5.可以重新组织数据以便输出到其他应用程序中

创建视图
视图在数据库中是作为一个对象来存储的

语法格式:
CREATE VIEW 视图名 [(视图字段列表)]
AS
SELECT 语句
创建视图v1,查询邮箱种包含w字符的员工名,部门名和工种信息

CREATE or replace view v1
AS
SELECT last_name,department_name,job_title
from employees e
join departments d on e.department_id=d.department_id
join jobs j on e.job_id=j.job_id
WHERE email LIKE '%w%';


创建视图v2,查询各部门的平均工资级别
CREATE OR REPLACE VIEW v2
AS
SELECT AVG(salary) avgsal,department_id
FROM employees
GROUP BY department_id;
SELECT * FROM v2;

SELECT v2.avgsal,grade_level
FROM v2
JOIN job_grades j
ON v2.avgsal BETWEEN lowest_sal AND highest_sal;

通过视图v2,查询平均工资级别最低的部门信息
SELECT * FROM v2 ORDER BY  avgsal  LIMIT  1;

创建视图v3,查询平均工资最低的部门和工资
CREATE OR REPLACE VIEW v3
AS
SELECT * FROM v2
ORDER BY avgsal LIMIT 1;

SELECT * FROM v3;

SELECT v3.*,department_name
from v3
join departments d
on v3.department_id=d.department_id;
创建视图v4,查询电话号码以011开头的员工姓名和工资、邮箱
CREATE OR REPLACE VIEW v4
AS
SELECT last_name,salary,email
FROM employees
WHERE phone_number LIKE '011%';
SELECT * FROM v4;
创建视图v5,查询最高工资高于12000的部门信息及工资
CREATE OR REPLACE VIEW v5
AS
SELECT  max(salary),department_id
FROM employees
GROUP BY department_id DESC
HAVING max(salary)>12000;
SELECT * FROM v5;
创建视图v6,
-- 查询employees表中last_name,salary和邮箱。
-- 通过视图v6向表中插入记录(‘jie’,39999,’jie@edg.com’),
-- 再将jie的last_name修改为‘赵礼杰’,
-- 最后删除employees表中last_name包含w的员工。

CREATE OR REPLACE VIEW v6
AS
SELECT last_name,salary,email
FROM employees;

INSERT INTO v6 VALUES ('jie',39999,'jie@edg.com');

UPDATE v6 SET last_name='赵礼杰' WHERE last_name='jie';

DELETE from v6 where last_name like '%w%';

SELECT * FROM v6;
更新视图v4,更新后的视图用来查询电话号码515开头的员工。
CREATE OR REPLACE VIEW v4
AS
SELECT last_name,salary,email,phone_number
FROM employees
WHERE phone_number LIKE '515%';

SELECT * FROM v4;

删除视图

删除视图v2。
DROP VIEW v2;
使用DROP VIEW一次可以删除多个视图。例如:
drop view cs_kc,xs_kc_avg;
将删除视图cs_kc和xs_kc_avg
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值