MySQL 视图

前言


视图的概念、特点及用法

MySQL视图是一种虚拟的表,它是基于查询结果定义的。通过使用视图,可以将复杂的查询和计算逻辑封装在一个虚拟表中,并以简化的方式从该视图中检索数据。

以下是视图的一些特点和用法:

  1. 视图并不实际存储数据,它只是一个查询的定义。每当从视图中检索数据时,MySQL会动态地执行视图查询并返回结果。
  2. 视图可以基于一个或多个表、其他视图以及内置函数进行定义。这使得视图能够组合和转换数据,并提供更方便的数据访问接口。
  3. 视图可以像表一样被查询和引用。可以使用SELECT语句从视图中检索数据,也可以在其他查询中将视图作为源表使用。
  4. 视图可以简化复杂的查询操作。如果有一些常见的查询模式或业务逻辑,可以将它们定义为视图,然后在需要时直接使用视图进行查询。
  5. 视图可以隐藏底层表的结构和复杂性。通过定义只包含特定列的视图,可以限制数据的可见性,并提供更安全的数据访问机制。
  6. 视图支持更新操作,但存在一些限制。根据视图的定义和底层表的结构,可以执行对视图的插入、更新和删除操作。但是,有一些情况下视图是不可更新的,例如包含聚合函数、子查询、关联子查询等的视图。

创建视图

语法:

create [or replace] view view_name [(column_list)] 
as select_statement;

其中,[ ]内为可选项

  • or replace:若指定则表示如果同名视图已存在,则替换该视图;
  • view_name:视图名称;
  • column_list:指定视图的列名列表,用括号括起来,并以逗号分隔。如果不指定,则列名将从查询语句的结果中自动推断;
  • select_statement:查询语句,用于定义视图的数据内容。

查询视图

语法:

select * from view_name;

查询视图结构

语法:

desc view_name;

修改视图

示例:

-- 创建视图
create view stu_view 
as select * from students s where s.stu_gender = '男';

-- 方法1
create or replace view stu_view 
as select * from students s where s.stu_gender = '男';

-- 方法2
alter view stu_view 
as select * from students s where s.stu_gender = '女';

删除视图

语法:

drop view view_name;

使用视图

数据准备:

-- 创建班级表
create table classes(
	class_id int primary key auto_increment,
	class_name varchar(20) not null unique,
	calss_remark varchar(200)
);

-- 创建学生表
create table students(
	stu_num char(8) primary key,
	stu_name varchar(10) not null,
	stu_gender char(2) not null,
	stu_age int not null,
	cid int,
	constraint FK_STUDENTS_CLASSES foreign key(cid) references classes(class_id) on update cascade on delete cascade;
);

--添加若干数据

示例:

-- 创建视图,查询班级编号为3的学生信息
create view view_test 
as select s.stu_num ,s.stu_name ,s.stu_gender ,s.stu_age ,c.class_name 
from students s left join classes c on s.cid=c.class_id 
where c.class_id =3;

-- 查询视图
select * from view_test;

stu_num |stu_name|stu_gender|stu_age|class_name|
--------+--------+----------+-------+----------+
20220014|赵六      |男         |     20|2022软件3   |
20220015|小文      |女         |     17|2022软件3   |
20220016|小莉      |女         |     19|2022软件3   |
20220017|小博      |男         |     18|2022软件3   |

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Indifferent-

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

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

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

打赏作者

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

抵扣说明:

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

余额充值