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. 兼容性强
    如果表结构被修改,通过视图保持原有的查询字段,不用去修改代码。
相关推荐
Gofarlic_oms114 小时前
构建可视化监控体系实现ANSYS许可证可观测管理
大数据·运维·网络·数据库·人工智能
weixin_5860614614 小时前
为什么Bootstrap的下拉菜单在Firefox下显示异常
jvm·数据库·python
qq_1898070314 小时前
如何导出特定分区_EXPDP TABLES=表名-分区名进行单区数据备份
jvm·数据库·python
Shorasul14 小时前
c++ 跨平台线程封装 c++如何封装pthread和std--thread
jvm·数据库·python
tingting011914 小时前
安全之-mysql 命令
数据库·mysql
2401_8326355814 小时前
CSS如何利用Sass简化CSS书写_通过嵌套与简写优化编码效率
jvm·数据库·python
2402_8548083714 小时前
如何处理MongoDB跨分片事务报错_4.2+分布式事务的限制与两阶段提交延迟
jvm·数据库·python
SPC的存折14 小时前
自用LNMP-Redis-NFS-Discuz5.0部署指南-脚本版
linux·运维·服务器·数据库·redis·mysql·缓存
vegetablec14 小时前
如何进行SQL数学计算_运用ROUND与CEIL处理数值精度
jvm·数据库·python
coderlin_15 小时前
Langgraph项目 一(mysql,es,qdrant,embedding模块)
mysql·elasticsearch·embedding