数据库(30)——视图

介绍

视图是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图是动态形成的。

通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。

语法

创建视图

CREATE [OR REPLACE] VIEW 视图名称[(列名列表)] AS SELECT语句 [WITH[CASCADED|LOCAL] CHECK OPTION]

示例:

student表上创建视图stu_view,查询mathchinese字段并定义一个math+chinese成绩之和字段,值为两者之和;

sql 复制代码
CREATE VIEW stu_view AS  
SELECT   
    math,  
    chinese,  
    (math + chinese) AS 'math+chinese'  
FROM   
    student;

student表和stu_info表上,创建stu_classes视图,查询出stu_id、姓名和班级,查询条件为两表中的stu_id字段相同。

sql 复制代码
CREATE VIEW stu_classes AS  
SELECT   
    s.stu_id,  
    s.name AS name,  
    i.classes 
FROM   
    student s  
JOIN   
    stu_info i ON s.stu_id = i.stu_id;

查询视图

语法:

查看创建视图语句:SHOW CREATE VIEW 视图名称;

查看视图数据:SELECT * FROM 视图名称;

修改视图

语法:

CREATE [OR REPLACE] VIEW 视图名称[(列名列表)] AS SELECT语句 [WITH[CASCADED|LOCAL] CHECK OPTION];
ALTER VIEW 视图名称[(列中列表)] AS SELECT语句 [WITH[CASCADED | LOCAL] CHECK OPTION];

删除视图

语法:

DROP VIEW[IF EXISTS] 视图名称 [视图名称]...;

相关推荐
流星白龙7 小时前
【MySQL】6.MySQL基本查询(1)
数据库·windows·mysql
夕除7 小时前
Mysql--11
数据库·mysql
❀͜͡傀儡师7 小时前
docker部署WhoDB开源轻量级数据库管理工具
数据库·docker·开源
皙然7 小时前
Redis八大核心数据类型详解:从底层实现到实战落地
数据库·redis·bootstrap
时光追逐者8 小时前
一款免费、简单、高效的在线数据库设计工具
数据库·mysql·oracle·sql server
another heaven8 小时前
【软考 2026 最新版 NoSQL 数据库全分类】
数据库·nosql
满天星83035778 小时前
【MySQL】表的操作
linux·服务器·数据库·mysql
yashuk8 小时前
Ubuntu 系统下安装 Nginx
数据库·nginx·ubuntu
F1FJJ8 小时前
VS Code 里管理 PostgreSQL,有哪些选择?主流扩展横向对比
网络·数据库·postgresql·容器
Bdygsl8 小时前
MySQL(8)—— 事务
数据库·mysql