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 视图名;
相关推荐
IndulgeCui11 分钟前
金仓数据库(KINGBASEES)敏感数据物理级销毁功能:配置、实操与验证全指南
数据库
Bat U20 分钟前
MySQL数据库|建库&建表&数据类型
数据库·mysql
短剑重铸之日23 分钟前
《ShardingSphere解读》16 改写引擎:如何理解装饰器模式下的 SQL 改写实现机制?
java·数据库·后端·sql·shardingsphere·分库分表·装饰器模式
m0_5879589525 分钟前
机器学习与人工智能
jvm·数据库·python
2401_8846621025 分钟前
计算机的基本概念
mysql
2501_9083298527 分钟前
Python入门:从零到一的第一个程序
jvm·数据库·python
Liu6288838 分钟前
Web开发与API
jvm·数据库·python
m0_7434703742 分钟前
Python字典与集合:高效数据管理的艺术
jvm·数据库·python
2501_9454235442 分钟前
使用Scrapy框架构建分布式爬虫
jvm·数据库·python
yhole44 分钟前
MySQL无法连接到本地localhost的解决办法2024.11.8
数据库·mysql·adb