mysql ---- 视图

本文围绕SQL视图展开,介绍了视图是虚拟表,存储SQL语句并从真实表取数据。详细说明了视图的创建、修改、删除、查询结构和更新的方法,还指出了不允许更新的视图特点,并给出了相关实操案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

视图: 虚拟表存储的是SQL语句,从真实数据表中获取数据。

创建视图:

create view  view_name  as  查询语句;

 

create view my_v1  as

select  last_name,department_name,job_title

from employess e

join departments d on e.department_id = d.epartment_id

join jobs j on j.job_id = e.job_id;

使用视图my_v1

select * from my_v1 where last_name like '%a%';

 

案例2:

查询各部门的平均工资级别

创建视图

create view my_v2 as 

select avg(salary) ag,department_id

from employees

group by department_id;

使用视图

select * from my_v2.ag, g.grade_level

from my_v2 join job_grades g

on my_v2.ag between lowest_sal and g.highest_sal;

 

二,视图的修改

create or replace view view_name as  查询语句;

方式一:

create OR replace  view my_v2 as 

select avg(salary) ,job_id from employees

group by job_id;

方式二:

alter view view_name as 查询语句;

alter view my_v2 as select * from employees;

 

三、 删除视图

drop view view_name,view_name2,......................;

 

四、查询视图结构

desc view_name;

show  create view view_name;

五、视图的更新

create or replace view my_v5  as

select last_name.email,salary*12*(1+ifnull(commission_pct,0)) ""

1、插入

insert into my_v5 values('张三丰',’zsf@123.com'); U原始表也进行了更新)

2、修改 (原始表也进行了更新)

update my_v5 set

3、删除

delete  from my_v5 where

六、具备以下特点的视图是不允许更新:

  • 包含以下关键字的sql语句: 分组函数、distinct、group by、 having 、union 或union all
  • 常量视图
  • select 中包含子查询
  • 包含连接查询(或关联查询)join 或where a.id=b.id
  • from 一个不能更新的视图;
  • where字句的子查询引用了from字句中的表

      create or replace view myv6 as

      select last_name,email,salary

      from employees

      where employee_id in ( select manage_id from employees where manager_id is not null);

 

 

 

 

八、实操

create or replace view view_v2  as   select last_name,salary,email from 

employees where phone_num like '129%';

 

2、

create or replace view emp_v4  as

select d.max(salary), department_id from employees

group by department_id

having max(salary) > 12000;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值