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 视图名;
相关推荐
-指短琴长-5 分钟前
MySQL快速入门——基本查询(下)
android·mysql·adb
刘一说36 分钟前
深入理解 Spring Boot 中的数据库迁移:Flyway 与 Liquibase 实战指南
数据库·spring boot·oracle
August_._1 小时前
【MySQL】SQL语法详细总结
java·数据库·后端·sql·mysql·oracle
升鲜宝供应链及收银系统源代码服务2 小时前
升鲜宝生鲜配送供应链管理系统---PMS--商品品牌多语言存储与 Redis 缓存同步实现
java·开发语言·数据库·redis·缓存·开源·供应链系统
苦学编程的谢3 小时前
Redis_8_List
数据库·redis·缓存
曹天骄3 小时前
阿里云 DCDN → CDN 无缝切换教程(以 example.com 为例)
数据库·阿里云·云计算
林北北的霸霸4 小时前
django初识与安装
android·mysql·adb
workflower4 小时前
软件工程-练习
数据库·需求分析·个人开发·极限编程·结对编程
想睡hhh5 小时前
mysql内置函数——了解常用的函数
mysql
扶尔魔ocy5 小时前
【QT自定义2D控件】QGraphics绘制仪表盘
数据库·qt·microsoft