九、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 = '张无忌’;
注:
视图的可更新性和视图中查询的定义有关系,以下类型的视图是不能更新的。
- 包含以下关键字的sql语句:分组函数、distinct、group by、having、union或者union all
- 常量视图
- select中包含子查询
- join
- from一个不能更新的视图
- where子句的子查询引用了from子句中的表
🤷♂️视图和表的对比
创建语法的关键字 | 是否实际占用物理空间 | 使用 | |
---|---|---|---|
视图 | create view | 只是保存了sql逻辑 | 增删改查,一般不能增删改 |
表 | create table | 保存了数据 | 增删改查 |
来源地址:https://blog.csdn.net/qq_43499848/article/details/126571867
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341