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 视图名;
相关推荐
炸炸鱼.31 分钟前
Python 操作 MySQL 数据库
android·数据库·python·adb
Ronaldinho Gaúch1 小时前
MySQL基础
数据库·mysql
不剪发的Tony老师1 小时前
Noir:一款键盘驱动的现代化数据库管理工具
数据库·sql
.柒宇.3 小时前
MySQL双主同步
linux·数据库·mysql·docker
Trouvaille ~3 小时前
【MySQL篇】数据类型:存储数据的基础
android·数据库·mysql·adb·字符集·数据类型·基础入门
一 乐3 小时前
酒店预订|基于springboot + vue酒店预订系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·酒店预订系统
光泽雨4 小时前
UNION 和 UNION ALL 作用
数据库·sql
heimeiyingwang4 小时前
【架构实战】SQL调优实战:从执行计划到索引优化
数据库·sql·架构
恼书:-(空寄4 小时前
分库分表风险应对手册(生产实战版)
数据库·分库分表
XDHCOM5 小时前
ORA-06521: PL/SQL映射函数错误,权威解析Oracle报错故障修复与远程处理方案
数据库·sql·oracle