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. 兼容性强
    如果表结构被修改,通过视图保持原有的查询字段,不用去修改代码。
相关推荐
oradh1 小时前
数据库入门概述
数据库·oracle·数据库基础·数据库入门
BullSmall2 小时前
一套定制化高级 payload 合集
数据库·安全性测试
zbdx不知名菜鸡2 小时前
postgre sql 数据库查询优化
数据库·postgresql
9稳2 小时前
基于PLC的生产线自动升降机设计
开发语言·网络·数据库·嵌入式硬件·plc
四七伵2 小时前
Spring Boot项目中varchar字段为什么不用NULL?告别空指针从建表开始
数据库·后端
Mr.45672 小时前
JDK17+Druid+SpringBoot3+ShardingSphere5 多表分库分表完整实践(MySQL+PostgreSQL)
java·数据库·spring boot·mysql·postgresql
Elastic 中国社区官方博客3 小时前
使用 ES|QL 变量控件将仪表板转变为调查工具
大数据·运维·服务器·数据库·elasticsearch·搜索引擎·全文检索
feng68_3 小时前
Ansible还原数据库节点
linux·运维·数据库·ansible
乐hh3 小时前
清理MySQL数据
数据库·mysql