MySQL----视图

序言: 致每一位读者:你们好! 我叫 Changlon [昌龙] ; 是和各位一样奔跑在编程道路上,期望 用编程改变世界,改善生活的奔跑者。

写文章的初心: 方便以后复习,方便未来面试,结交更多道友,交流心得经验…

如果你也对 前端 , Java , C/C++, 算法, 人工智能 感兴趣那就关注我吧!我们一起学习进步!

相关文章
点击查看 MySQL系列文章

变量

一、含义

mysql5.1版本出现的新特性,本身是一个虚拟表,它的数据来自于表,通过执行时 动态生成,只保存了sql逻辑,不保存查询结果。

好处:

  • 简化sql语句
  • 提高了sql的重用性
  • 保护基表的数据,提高了安全性

应用场景:

  • 多个地方用到同样的查询结果
  • 该查询结果使用的sql语句较复杂
    示例:
CREATE VIEW my_v1
AS
SELECT studentname,majorname
FROM student s
INNER JOIN major m
ON s.majorid=m.majorid
WHERE s.majorid=1;

二、创建

create view 视图名 as 查询语句;

三、修改

  1. 方式一:
    create or replace view 视图名 as 查询语句;
  2. 方式二:
    alter view 视图名 as 查询语句

四、删除

drop view 视图1,视图2,...;

五、查看

desc 视图名;

show create view 视图名;

六、使用

设有表 employees如下:
在这里插入图片描述

1.插入 (insert)

CREATE OR REPLACE VIEW myv1
AS
SELECT last_name,email
FROM employees;
SELECT * FROM myv1;
SELECT * FROM employees;
#1.插入
INSERT INTO myv1 VALUES('张飞','zf@qq.com');

此时视图中的数据和表中的数据都发生了变化

myv1视图
在这里插入图片描述
employees表
在这里插入图片描述

2.修改 (update)

#2.修改
UPDATE myv1 SET last_name = '张无忌' WHERE last_name='张飞';
#视图和表中的数据都会发生修改

3.删除 (delete)

#3.删除
DELETE FROM myv1 WHERE last_name = '张无忌';

4.查看 (select)

SELECT * FROM myv1;

注意:视图一般用于查询的,而不是更新的,所以具备以下特点的视图都不允许更新

①包含分组函数、group by、distinct、having、union、
②join
③常量视图
④where后的子查询用到了from中的表
⑤用到了不可更新的视图

七、视图和表的对比

关键字是否占用物理空间使用
视图view占用较小,只保存sql逻辑一般用于查询
table保存实际的数据增删改查

八、案例习题

#1.查询姓名中包含a字符的员工名、部门名和工种信息
#①创建
CREATE VIEW myv1
AS
SELECT 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%';

由于本人技术水平有限,博客中难免出现的一些错误,有纰漏之处恳请各位大佬不吝赐教!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

智者_若愚

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

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

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

打赏作者

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

抵扣说明:

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

余额充值