数据库视图:数据安全与查询利器

1.视图的基本概念

视图是一种常用的数据库对象,为用户以多种角度观察数据库中的数据提供方便。为了保护数据安全,常为不同的用户创建不同的视图。

视图同真实的表一样,视图也是由若干个字段以及若干条记录构成。但是,视图并不保存数据,保存的仅仅是一条select语句,视图中的源数据都来自于数据库表,数据库表称为基本表或者基表,视图称为虚表。视图所引用的表由行和列数据自由定义,并且在引用视图时动态生成。

对视图所引用的基础表来说,视图的作用类似于筛选。定义视图可以来自当前或其他数据库的一个或多个表,或者其他视图。

视图也可以作为select语句的数据源。甚至在某些特定条件下,可以通过视图对表进行更新操作。

视图常见的示例有:

(1)基表的行和列的子集。

(2)两个或多个基表的连接。

(3)两个或多个基表的联合。

(4)基表和另一个视图或视图的子集的结合。

(5)基表的统计概要。

2. 视图的作用

1.使操作变得简单

2.避免数据冗余

3.增强数据安全性

4.提高数据的逻辑独立性
语法格式:

create view 视图名 [ (视图字段列表) ]

as

select语句

【例1】创建学生的学号、姓名、年龄的视图

sql 复制代码
-- 先删除已存在的视图(如果存在)
DROP VIEW IF EXISTS v1;

-- 创建视图
CREATE VIEW v1(学号, 姓名, 年龄)  -- ✅ 英文逗号
AS
SELECT 
    学号,
    姓名,
    YEAR(NOW()) - YEAR(出生日期) AS 年龄
FROM 学生;

-- 查看视图结构
DESCRIBE v1;

-- 查询视图数据
SELECT * FROM v1 LIMIT 5;

使用视图查看数据 Select * from v1;

3.使用视图修改数据

更新视图包括插入(INSERT)、删除(DELETE)、修改(UPDATE)三类操作。 由于视图不是实际存储的虚表,因此对视图的更新最终要转换为对基表的更新。

注意:无法通过视图 s1 执行 INSERT 插入操作,原因是视图 s1 基于带条件筛选的查询(WHERE 成绩 < 60),这类视图在 MySQL 中默认不支持写入操作。

4.检查视图

  1. 视图分为普通视图与检查视图。
  2. 通过检查视图更新基表数据时,只有满足检查条件的更新语句才能成功执行。
  3. 创建检查视图的语法格式如下。
sql 复制代码
#创建级联检查视图3
reate view 视图3
As 
Select c,f,h from 视图1
Where c >50
With cascaded check option;

5.删除视图

查看视图定义:

SHOW CREATE VIEW视图名称,如: SHOW CREATE VIEW score_sum_view;

视图是一个虚表,可以使用查看表结构的方式查看视图的定义,如:

DESC choose_view1

SHOW TABLES命令不仅显示当前数据库中所有的数据表,也可以显示数据库中所有视图。

MySQL系统数据库INFORMATION_SCHEMA的VIEWS表存储了所有视图的定义,使用下面的SELECT语句查询该表的所有记录,也可以查看所有视图的详细信息。

6.查看视图的定义

如果某个视图不再使用,可以使用drop view语句将该视图删除,语法格式如下。

drop view 视图名

相关推荐
m0_613856294 小时前
mysql如何利用事务隔离级别解决特定业务冲突_mysql隔离方案选型
jvm·数据库·python
Adios7944 小时前
VPR:Pitts50K和Norland数据集下载
数据库
东风破1375 小时前
DM用户权限、表、约束等对象的基本操作,SQL日志的开启介绍
数据库·sql·dm达梦数据库
收获不止数据库5 小时前
达梦9发布会归来:AI 时代,我们需要一款什么样的数据库?
数据库·人工智能·ai·语言模型·数据分析
小宇的天下5 小时前
Virtuoso GUI 界面中的关键模块定义
数据库
bqq198610265 小时前
MySQL 5.7 与 MySQL 8.0 的主要区别
数据库·mysql
juniperhan5 小时前
Flink 系列第21篇:Flink SQL 函数与 UDF 全解读:类型推导、开发要点与 Module 扩展
java·大数据·数据仓库·分布式·sql·flink
Elastic 中国社区官方博客6 小时前
Elastic-caveman : 在不损失 Elastic 最佳效果的情况下,将 AI 响应 tokens 减少64%
大数据·运维·数据库·人工智能·elasticsearch·搜索引擎·全文检索
互联网推荐官6 小时前
上海软件定制开发全流程拆解:需求分析、技术选型与交付管理的工程实践
大数据·数据库·需求分析
专注API从业者6 小时前
Open Claw 京东商品监控选品实战:一键抓取、实时监控、高效选品
java·服务器·数据库