九、MySQL之视图的介绍

🙌作者简介:数学与计算机科学学院学生、分享学习经验、生活、 努力成为像代码一样有逻辑的人
🌙个人主页:阿芒的主页
👉推荐一款刷题、找工作神器 牛客网注册即可免费刷题

🌅前言

这一节介绍MySQL中的视图,内容主要包括视图的创建、修改、查看和删除、更新以及视图与表的对比等内容。

🧑视图的介绍

👉含义:mysql5.1版本开始出现的新特性。是一种虚拟存在的表,行和列的数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果。
例如:舞蹈班和普通班级的对比
👉应用场景:
① 多个地方用到同样的查询结果
②该查询结果使用的sql语句较复杂
③示例:

CREATEVIEW my_v1
AS
SELECT studentname,majorname
FROM students
INNERJOIN major m
ON s.majorid=m.majorid
WHERE s.majorid=1;

👦创建视图

语法:
create view 视图名
as
查询语句;

🔶例:查询姓名中包含a字符的员工名、部门名和工种信息
①创建

CREATE VIEW myv1
AS
SELETE last_name, department_name, job_title
FROM employees e
JOIN departments d ON e.department_id = d.department_id
JOIN jobs j ON j.job_id = e.job_id;

②使用

SELECT * FROM myv1 WHERE last_name LIKE ‘%a%’;


🔵视图的好处

  • 重用sql语句
  • 简化复杂的sql操作,不必知道它的查询细节
  • 保护数据,提高安全性

👨修改视图

👍方式一:

语法:
create or replace view 视图名
as
查询语句;

👍方式二:

语法:
alter view 视图名
as
查询语句

😃删除视图

语法:
drop view 视图名,视图名,…;

😊查看视图

语法:
desc 视图名;

😉更新视图

👍插入:

INSERT INTO myv1 VALUES(‘张飞‘,’zf@qq.com’);

👍修改:

UPDATE myv1 SET last_name = '张无忌‘ WHERE last_name='张飞“;

👍删除:

DELETE FROM myv1 WHERE last_name = '张无忌’;


注:视图的可更新性和视图中查询的定义有关系,以下类型的视图是不能更新的。

  1. 包含以下关键字的sql语句:分组函数、distinct、group by、having、union或者union all
  2. 常量视图
  3. select中包含子查询
  4. join
  5. from一个不能更新的视图
  6. where子句的子查询引用了from子句中的表

🤷‍♂️视图和表的对比

创建语法的关键字是否实际占用物理空间使用
视图create view只是保存了sql逻辑增删改查,一般不能增删改
create table保存了数据增删改查
评论 57
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是阿芒阿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值