mysql进阶语法(视图)

1、视图概念

是从一个或多个表中导出来的表,它是一种虚拟存在的表,表的结构和数据都依赖于基本表
应用场景:

  • 多个地方用到同样的查询结果
  • 该查询结果用到复杂的select语句

视图优点:

  • 简化查询语句:简化用户的查询操作,使查询更加快捷。
  • 安全性:更方便的进行权限控制。
  • 逻辑数据独立性:屏蔽真实表结构变化带来的影响。

2、创建视图

a、语法

mysql 复制代码
CREATE [OR REPLACE]
VIEW view_name [(column_list)]
AS select_statement

说明:

  • CREATE:表示创建视图的关键字。
  • OR REPLACE:可选,表示替换已有视图。
  • view_name:表示要创建的视图名称。
  • column_list:可选,用于指定视图中的各个列的名称。(省略则与SELECT语句查询的列相同)
  • AS:表示视图要执行的操作。
  • select_statement:一个完整的查询语句,表示从某些表或视图中查出某些满足条件的记录,将这些记录导入视图中。
    例:创建视图,用于查看未登记生日的员工姓名,职称,工资和地址

3、修改视图

a、使用create or place

例:修改view_showEmp,将列名修改为ename,rname,salary,addr

b、使用alter
语法:

c 复制代码
ALTER VIEW view_name [(column_list)]
AS SELECT_statement

例:修改view_showEmp,将列名修改为ename,rname,salary,addr

c 复制代码
ALTER VIEW view_showEmp(ename,rname,salary,addr)
AS SELECT empname,rankname,salary,address
FROM employee e,rank r
WHERE e.rankid=r.rankid
AND birthday is null;

4、使用视图

例:查询未登录生日的员工姓名(从view_showEmp视图中查询ename)

c 复制代码
SELECT ename -- 使用定义视图时重命名的列名,不能使用视图中未出现的列
from view_showemp;

例:使用视图数据更新表,将employee表中未登录生日的员工,生日更新为当天

5、删除视图

c 复制代码
DROP VIEW 视图名;
相关推荐
做运维的阿瑞9 小时前
一个 NULL 让整列姓名消失?MySQL 字符串与日期函数复盘
数据库·sql·mysql
程序猿乐锅9 小时前
【黑马点评 | 第十一篇】关注 Feed 流实现
java·数据库·redis·分布式·后端·缓存·maven
phltxy9 小时前
C 语言文件操作:让数据从内存走向持久化
c语言·网络·数据库
阳光九叶草LXGZXJ9 小时前
达梦数据库-学习-69-DM9主备集群部署
linux·运维·服务器·数据库·sql·学习
jnrjian9 小时前
Connect Microsoft Tools to Oracle Databases powerbi 之类的oracle 客户端
数据库·microsoft·oracle
北京恒星科通刘军10 小时前
灾害监测预警系统中,应急疏散广播的“应急叫应”实际送达率与有效性研究
网络·数据库·人工智能
ShineWinsu10 小时前
对于Redis:List类型的解析
数据库·c++·redis·链表·缓存·面试·list
问商十三载10 小时前
AI引擎生成式优化服务商怎么选?技术核验清单(附脚本)
数据库·人工智能·机器学习
TDengine (老段)10 小时前
集群从“能用“到“高可用“:副本、选主与故障切换到底怎么配
大数据·网络·数据库·物联网·oracle·时序数据库·tdengine
ly768910 小时前
ISR 收缩与 HW 推进:副本同步的边界条件与 UnderReplicated 排障
数据库·kafka·c#·linq·isr·hw·副本同步