MySQL(6)—— 视图

本文主要讨论视图。

什么是视图?

视图是一个虚拟的表,它是基于一个或多个基础表或其他视图的查询的结果集;视图本身是不存储数据的

视图中存储的是一条命令,可以理解为用视图来替代一条指令。

下面我们来看一个例子:

sql 复制代码
-- 创建视图:查询一班的男生
CREATE VIEW boys_class1 AS
SELECT id, name, age 
FROM students 
WHERE class = '一班' AND gender = '男';

这样就创建了一个视图。后面如果还需要查询一班的男生,那么就可以直接使用:

sql 复制代码
SELECT * FROM boys_class1;

这就是视图的作用。它能减少重复代码的书写,提高效率。

创建使用和删除

视图的创建使用 create view关键字:

sql 复制代码
CREATE VIEW 视图名 AS
SELECT 列名 FROM 表名 WHERE 条件;

视图的使用和上面的相同,使用select * from:

sql 复制代码
CREATE VIEW 视图名 AS
SELECT 列名 FROM 表名 WHERE 条件;

最后删除视图使用drop view:

sql 复制代码
DROP VIEW 视图名;

总的来说,视图有以下的作用:

  1. 简化复杂查询
    可以让复杂的语句简化为一条简单的语句。
  2. 数据安全
    查询时只给视图的权限就能隐藏敏感字段(如密码身份证等)
  3. 统一数据口径
    在团队开发中,使用同一个视图,保证大家使用的规则一致,不会出现计算错误等情况。
  4. 兼容性强
    如果表结构被修改,通过视图保持原有的查询字段,不用去修改代码。
相关推荐
正儿八经的少年3 小时前
布隆过滤器(解决redis缓存穿透步骤之一)
数据库·redis·缓存
xrandzj4 小时前
MySQL8.0 从零通关核心操作手册(Ubuntu实战版)
数据库·mysql
我不会插花弄玉4 小时前
4.数据类型【由浅入深-MySQL】
数据库·mysql
denggun123454 小时前
yield
前端·数据库·python
ltl4 小时前
SQLite Rollback Journal:写前拷贝与提交点
数据库
ltl4 小时前
TiFlash Learner:Raft 日志如何进列存
数据库
ltl4 小时前
BM25 与 Lucene Similarity:公式如何落到 postings
数据库
ltl4 小时前
RocksDB Block Cache 与 Bloom Filter:读放大怎么裁
数据库
deli0070076 小时前
JSON 树形查看器:粘贴即解析,折叠展开一目了然
前端·数据库·json·ai编程
国科安芯6 小时前
轨道供电韧性:ASP4644四通道降压架构在低轨卫星平台电源管理中的适用性分析
运维·网络·数据库·嵌入式硬件·架构·状态模式·低轨卫星星座